Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/trinadh465/linux-4.1.15_cve-2017-1000371
تحليل الثغرات الأمنيةالاستغلالالأوراق والأبحاثالتعلم والتعليماستغلال الملفات الثنائية
GitHubtrinadh465/linux-4.1.15_cve-2017-1000371

linux-4.1.15_CVE-2017-1000371

شجرة مصدر نواة Linux 4.1.15 مع تعديلات متعلقة بـ CVE-2017-1000371، وهي ثغرة تصعيد امتيازات محلية. توفر أساسًا لتحليل وفهم الخلل.

عرض المستودع
2منذ 3 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

إصدار نواة لينكس 4.x http://kernel.org/

هذه هي ملاحظات إصدار لينكس 4. اقرأها بعناية، فهي تخبرك ما هو هذا النظام، وتشرح كيفية تثبيت النواة، وماذا تفعل إذا حدث خطأ ما.

ما هو لينكس؟

لينكس هو نسخة طبق الأصل من نظام التشغيل يونكس، كُتب من الصفر بواسطة لينوس تورفالدس بمساعدة فريق غير مترابط من المبرمجين عبر الشبكة. وهو يهدف إلى الامتثال لمعيار POSIX ومواصفة يونكس الموحدة.

يتمتع بجميع الميزات التي تتوقعها في نظام يونكس حديث ومتكامل، بما في ذلك تعدد المهام الحقيقي، والذاكرة الافتراضية، والمكتبات المشتركة، والتحميل عند الطلب، والملفات التنفيذية المشتركة بنسخ عند الكتابة، وإدارة الذاكرة السليمة، والشبكات متعددة الحزم البروتوكولية بما في ذلك IPv4 وIPv6.

يُوزَّع بموجب رخصة جنو العمومية العامة - راجع ملف COPYING المرفق لمزيد من التفاصيل.

على أي عتاد يعمل؟

على الرغم من أنه طُوّر في الأصل لأجهزة الكمبيوتر الشخصية 32-بت القائمة على x86 (386 أو أعلى)، إلا أن لينكس يعمل اليوم أيضًا على (على الأقل) بنى Compaq Alpha AXP وSun SPARC و UltraSPARC وMotorola 68000 وPowerPC وPowerPC64 وARM وHitachi SuperH وCell و IBM S/390 وMIPS وHP PA-RISC وIntel IA-64 وDEC VAX وAMD x86-64 وAXIS CRIS و Xtensa وTilera TILE وAVR32 وRenesas M32R.

يمكن نقل لينكس بسهولة إلى معظم البنى العامة 32-بت أو 64-بت طالما أنها تحتوي على وحدة إدارة ذاكرة مقسمة لصفحات (PMMU) ومنفذ لمترجم GNU C (gcc) (جزء من مجموعة مترجمات GNU، GCC). كما تم نقل لينكس إلى عدد من البنى بدون PMMU، على الرغم من أن الوظائف تكون محدودة إلى حد ما بطبيعة الحال في تلك الحالة. كما تم نقل لينكس إلى نفسه. يمكنك الآن تشغيل النواة كتطبيق في مساحة المستخدم - وهذا يُسمى UserMode Linux (UML).

التوثيق:

  • هناك الكثير من التوثيق المتاح سواء في شكل إلكتروني على الإنترنت أو في الكتب، سواءً كان خاصًا بلينكس أو متعلقًا بأسئلة يونكس العامة. أوصي بالاطلاع على الدلائل الفرعية للتوثيق في أي موقع FTP للينكس للحصول على كتب LDP (مشروع توثيق لينكس). هذا الملف README ليس المقصود منه أن يكون توثيقًا للنظام: فهناك مصادر أفضل بكثير متاحة.

  • توجد ملفات README مختلفة في الدليل الفرعي Documentation/: وهي تحتوي عادةً على ملاحظات تثبيت خاصة بالنواة لبعض برامج التشغيل على سبيل المثال. راجع Documentation/00-INDEX للحصول على قائمة بما يحتويه كل ملف. يرجى قراءة ملف Changes، لأنه يحتوي على معلومات حول المشكلات التي قد تنتج عن ترقية نواتك.

  • يحتوي الدليل الفرعي Documentation/DocBook/ على عدة أدلة لمطوري ومستخدمي النواة. يمكن عرض هذه الأدلة بعدة صيغ: PostScript (.ps) وPDF وHTML وصفحات الرجل (man-pages)، من بين صيغ أخرى. بعد التثبيت، سيعرض "make psdocs" أو "make pdfdocs" أو "make htmldocs" أو "make mandocs" التوثيق بالصيغة المطلوبة.

تثبيت مصدر النواة:

  • إذا كنت تثبت المصادر الكاملة، ضع الأرشيف المضغوط للنواة في دليل لديك فيه صلاحيات (مثل دليل منزلك) وقم بفك ضغطه:

    xz -cd linux-4.X.tar.xz | tar xvf -

    استبدل "X" برقم إصدار أحدث نواة.

    لا تستخدم منطقة /usr/src/linux! تحتوي هذه المنطقة على مجموعة (غير مكتملة عادةً) من ترويسات النواة التي تستخدمها ملفات ترويسة المكتبات. يجب أن تتطابق مع المكتبة، وألا تفسد بسبب أياً كانت النواة السائدة في ذلك الوقت.

  • يمكنك أيضًا الترقية بين إصدارات 4.x عن طريق الترقيع. تُوزَّع الترقيعات بصيغة xz. للتثبيت عن طريق الترقيع، احصل على جميع ملفات الترقيع الأحدث، وادخل إلى الدليل الأعلى لمصدر النواة (linux-4.X) ونفّذ:

    xz -cd ../patch-4.x.xz | patch -p1

    استبدل "x" لجميع الإصدارات الأكبر من الإصدار "X" لشجرة المصدر الحالية لديك، بالترتيب، وستكون بخير. قد ترغب في إزالة ملفات النسخ الاحتياطي (some-file-name~ أو some-file-name.orig)، والتأكد من عدم وجود ترقيعات فاشلة (some-file-name# أو some-file-name.rej). إذا وجدت، فإما أنك ارتكبت خطأً أو أنا.

    على عكس ترقيعات نوى 4.x، فإن ترقيعات نوى 4.x.y (المعروفة أيضًا بنوى -stable) ليست تراكمية بل تُطبق مباشرة على النواة الأساسية 4.x. على سبيل المثال، إذا كانت نواتك الأساسية هي 4.0 وتريد تطبيق ترقيع 4.0.3، يجب ألا تطبق أولاً ترقيعي 4.0.1 و4.0.2. وبالمثل، إذا كنت تشغل إصدار النواة 4.0.2 وتريد الانتقال إلى 4.0.3، يجب أولاً عكس ترقيع 4.0.2 (أي patch -R) قبل تطبيق ترقيع 4.0.3. يمكنك قراءة المزيد حول هذا في Documentation/applying-patches.txt

    بدلاً من ذلك، يمكن استخدام السكربت patch-kernel لأتمتة هذه العملية. فهو يحدد إصدار النواة الحالي ويطبق أي ترقيعات موجودة.

    linux/scripts/patch-kernel linux

    الوسيطة الأولى في الأمر أعلاه هي موقع مصدر النواة. تُطبق الترقيعات من الدليل الحالي، ولكن يمكن تحديد دليل بديل كوسيطة ثانية.

  • تأكد من عدم وجود ملفات .o قديمة وتبعيات متناثرة:

    cd linux make mrproper

    يجب أن تكون المصادر مثبتة بشكل صحيح الآن.

متطلبات البرمجيات

يتطلب تجميع وتشغيل نوى 4.x إصدارات محدّثة من حزم برمجية مختلفة. راجع Documentation/Changes لمعرفة أرقام الإصدارات الدنيا المطلوبة وكيفية الحصول على تحديثات لهذه الحزم. احذر من أن استخدام إصدارات قديمة جدًا من هذه الحزم يمكن أن يسبب أخطاء غير مباشرة يصعب جدًا تتبعها، لذلك لا تفترض أنه يمكنك فقط تحديث الحزم عند ظهور مشكلات واضحة أثناء البناء أو التشغيل.

دليل البناء للنواة:

عند تجميع النواة، سيتم تخزين جميع ملفات الإخراج افتراضيًا مع كود مصدر النواة. يتيح لك استخدام الخيار "make O=output/dir" تحديد مكان بديل لملفات الإخراج (بما في ذلك .config). مثال:

root@kitploit:~
 كود مصدر النواة: /usr/src/linux-4.X
 دليل البناء:    /home/name/build/kernel

لتكوين النواة وبنائها، استخدم:

root@kitploit:~
 cd /usr/src/linux-4.X
 make O=/home/name/build/kernel menuconfig
 make O=/home/name/build/kernel
 sudo make O=/home/name/build/kernel modules_install install

يرجى ملاحظة: إذا تم استخدام خيار 'O=output/dir'، فيجب استخدامه لجميع استدعاءات make.

تكوين النواة:

لا تتخط هذه الخطوة حتى لو كنت تقوم فقط بترقية إصدار ثانوي واحد. تُضاف خيارات تكوين جديدة في كل إصدار، وستظهر مشكلات غريبة إذا لم تكن ملفات التكوين مُعدة كما هو متوقع. إذا كنت تريد نقل تكوينك الحالي إلى إصدار جديد بأقل جهد ممكن، استخدم "make oldconfig"، الذي لن يسألك إلا عن إجابات الأسئلة الجديدة.

  • أوامر التكوين البديلة هي:

    "make config" واجهة نصية عادية.

    "make menuconfig" قوائم ملونة مبنية على النص وقوائم اختيار راديوية وحوارات.

    "make nconfig" قوائم ملونة محسّنة مبنية على النص.

    "make xconfig" أداة تكوين مبنية على نظام النوافذ X (Qt).

    "make gconfig" أداة تكوين مبنية على نظام النوافذ X (Gtk).

    "make oldconfig" يحدد افتراضيًا جميع الأسئلة بناءً على محتويات ملف ./.config الموجود لديك ويسأل عن رموز التكوين الجديدة.

    "make silentoldconfig" مثل ما سبق، لكنه يتجنب إرباك الشاشة بأسئلة تمت الإجابة عنها بالفعل. بالإضافة إلى ذلك يقوم بتحديث التبعيات.

    "make olddefconfig" مثل ما سبق، لكنه يضبط الرموز الجديدة على قيمها الافتراضية دون مطالبة.

    "make defconfig" ينشئ ملف ./.config باستخدام قيم الرموز الافتراضية إما من arch/$ARCH/defconfig أو arch/$ARCH/configs/${PLATFORM}_defconfig، اعتمادًا على البنية.

    "make ${PLATFORM}_defconfig" ينشئ ملف ./.config باستخدام قيم الرموز الافتراضية من arch/$ARCH/configs/${PLATFORM}_defconfig. استخدم "make help" للحصول على قائمة بجميع المنصات المتاحة لبنيتك.

    "make allyesconfig" ينشئ ملف ./.config عن طريق ضبط قيم الرموز على 'y' قدر الإمكان.

    "make allmodconfig" ينشئ ملف ./.config عن طريق ضبط قيم الرموز على 'm' قدر الإمكان.

    "make allnoconfig" ينشئ ملف ./.config عن طريق ضبط قيم الرموز على 'n' قدر الإمكان.

    "make randconfig" ينشئ ملف ./.config عن طريق ضبط قيم الرموز على قيم عشوائية.

    "make localmodconfig" ينشئ تكوينًا بناءً على التكوين الحالي والوحدات المحملة (lsmod). ويعطل أي خيار وحدة غير مطلوب للوحدات المحملة.

    root@kitploit:~
                        لإنشاء localmodconfig لجهاز آخر،
                        احفظ مخرجات lsmod لذلك الجهاز في ملف
                        ومررها كمعامل LSMOD.
    
                target$ lsmod > /tmp/mylsmod
                target$ scp /tmp/mylsmod host:/tmp
    
                host$ make LSMOD=/tmp/mylsmod localmodconfig
    
                        ما سبق يعمل أيضًا عند التجميع المتقاطع.
    

    "make localyesconfig" مشابه لـ localmodconfig، باستثناء أنه سيحول جميع خيارات الوحدات إلى خيارات مدمجة (=y).

    يمكنك العثور على مزيد من المعلومات حول استخدام أدوات تكوين نواة لينكس في Documentation/kbuild/kconfig.txt

  • ملاحظات حول "make config":

    • وجود برامج تشغيل غير ضرورية سيجعل النواة أكبر، ويمكن أن يؤدي في بعض الظروف إلى مشاكل: فحص بطاقة تحكم غير موجودة قد يربك وحدات التحكم الأخرى لديك

    • تجميع النواة مع تعيين "نوع المعالج" (Processor type) على قيمة أعلى من 386 سينتج نواة لن تعمل على أجهزة 386. ستكتشف النواة ذلك عند الإقلاع، وتستسلم.

    • النواة المُجمَّعة مع محاكاة الرياضيات (math-emulation) ستظل تستخدم المعالج المساعد إذا كان موجودًا: محاكاة الرياضيات لن تُستخدم أبدًا في تلك الحالة. ستكون النواة أكبر قليلاً، لكنها ستعمل على أجهزة مختلفة سواء كان لديها معالج مساعد رياضي أم لا.

    • تفاصيل تكوين "kernel hacking" تؤدي عادةً إلى نواة أكبر أو أبطأ (أو كليهما)، ويمكن أن تجعل النواة أقل استقرارًا من خلال تكوين بعض الإجراءات التي تحاول بنشاط كسر الكود السيئ للعثور على مشاكل النواة (kmalloc()). لذلك يجب عليك على الأرجح الإجابة بـ 'n' على أسئلة ميزات "التطوير" (development) أو "التجريبية" (experimental) أو "التصحيح" (debugging).

تجميع النواة:

  • تأكد من توفر gcc 3.2 على الأقل. لمزيد من المعلومات، راجع Documentation/Changes.

    يرجى ملاحظة أنه لا يزال بإمكانك تشغيل برامج المستخدم بصيغة a.out مع هذه النواة.

  • نفّذ "make" لإنشاء صورة نواة مضغوطة. من الممكن أيضًا تنفيذ "make install" إذا كان لديك lilo مثبتًا بما يناسب ملفات make للنواة، ولكن قد ترغب في التحقق من إعداد lilo الخاص بك أولاً.

    لإجراء التثبيت الفعلي، يجب أن تكون مستخدم root، ولكن لا ينبغي أن يتطلب أي من عمليات البناء العادية ذلك. لا تستخدم اسم root دون داعٍ.

  • إذا قمت بتكوين أي جزء من أجزاء النواة كـ `modules'، فسيتعين عليك أيضًا تنفيذ "make modules_install".

  • مخرجات التجميع/البناء التفصيلية للنواة:

    عادةً، يعمل نظام بناء النواة في وضع هادئ إلى حد ما (وليس صامتًا تمامًا). ومع ذلك، في بعض الأحيان تحتاج أنت أو مطورو النواة الآخرون إلى رؤية أوامر التجميع أو الربط أو غيرها تمامًا كما تُنفذ. لهذا، استخدم وضع البناء "التفصيلي" (verbose). ويتم ذلك بإدراج "V=1" في أمر "make". مثال:

    make V=1 all

    لجعل نظام البناء يخبرك أيضًا بسبب إعادة بناء كل هدف، استخدم "V=2". الافتراضي هو "V=0".

  • احتفظ بنواة احتياطية في متناول اليد في حال حدث خطأ ما. هذا مهم بشكل خاص لإصدارات التطوير، لأن كل إصدار جديد يحتوي على كود جديد لم يتم تصحيح أخطاؤه. تأكد أيضًا من الاحتفاظ بنسخة احتياطية من الوحدات المقابلة لتلك النواة. إذا كنت تثبت نواة جديدة بنفس رقم إصدار النواة العاملة لديك، فقم بعمل نسخة احتياطية من دليل الوحدات قبل تنفيذ "make modules_install".

    بدلاً من ذلك، قبل التجميع، استخدم خيار تكوين النواة "LOCALVERSION" لإلحاق لاحقة فريدة برقم إصدار النواة العادي. يمكن ضبط LOCALVERSION في قائمة "الإعداد العام" (General Setup).

  • من أجل إقلاع نواتك الجديدة، ستحتاج إلى نسخ صورة النواة (مثل .../linux/arch/i386/boot/bzImage بعد التجميع) إلى المكان الذي توجد فيه النواة القابلة للإقلاع المعتادة لديك.

  • لم يعد إقلاع نواة مباشرة من قرص مرن بدون مساعدة محمل إقلاع مثل LILO مدعومًا.

    إذا كنت تقوم بإقلاع لينكس من القرص الصلب، فمن المرجح أنك تستخدم LILO، الذي يستخدم صورة النواة المحددة في الملف /etc/lilo.conf. ملف صورة النواة عادةً ما يكون /vmlinuz أو /boot/vmlinuz أو /bzImage أو /boot/bzImage. لاستخدام النواة الجديدة، احفظ نسخة من الصورة القديمة وانسخ الصورة الجديدة فوق القديمة. ثم، يجب عليك إعادة تشغيل LILO لتحديث خريطة التحميل!! إذا لم تفعل، فلن تتمكن من إقلاع صورة النواة الجديدة.

    إعادة تثبيت LILO عادةً ما تكون مسألة تشغيل /sbin/lilo. قد ترغب في تعديل /etc/lilo.conf لتحديد إدخال لصورة نواتك القديمة (مثل /vmlinux.old) في حال لم تعمل الجديدة. راجع وثائق LILO لمزيد من المعلومات.

    بعد إعادة تثبيت LILO، يجب أن يكون كل شيء جاهزًا. أغلق النظام، وأعد الإقلاع، واستمتع!

    إذا احتجت في أي وقت إلى تغيير جهاز root الافتراضي أو وضع الفيديو أو حجم ramdisk وما إلى ذلك في صورة النواة، استخدم برنامج 'rdev' (أو بدلاً من ذلك خيارات إقلاع LILO عند الاقتضاء). لا حاجة لإعادة تجميع النواة لتغيير هذه المعاملات.

  • أعد الإقلاع مع النواة الجديدة واستمتع.

إذا حدث خطأ ما:

  • إذا كانت لديك مشاكل تبدو وكأنها ناتجة عن أخطاء في النواة، يرجى التحقق من الملف MAINTAINERS لمعرفة ما إذا كان هناك شخص معين مرتبط بالجزء من النواة الذي تواجه مشكلة معه. إذا لم يكن هناك أي شخص مدرج هناك، فإن ثاني أفضل شيء هو إرسالها إليّ ([email protected])، وربما إلى أي قائمة بريدية أخرى ذات صلة أو إلى مجموعة الأخبار.

  • في جميع تقارير الأخطاء، من فضلك أخبرني عن أي نواة تتحدث، وكيفية تكرار المشكلة، وما هو إعدادك (استخدم حسك السليم). إذا كانت المشكلة جديدة، أخبرني بذلك، وإذا كانت قديمة، يرجى محاولة إخباري متى لاحظتها لأول مرة.

  • إذا أدى الخطأ إلى رسالة مثل

    unable to handle kernel paging request at address C0000010 Oops: 0002 EIP: 0010:XXXXXXXX eax: xxxxxxxx ebx: xxxxxxxx ecx: xxxxxxxx edx: xxxxxxxx esi: xxxxxxxx edi: xxxxxxxx ebp: xxxxxxxx ds: xxxx es: xxxx fs: xxxx gs: xxxx Pid: xx, process nr: xx xx xx xx xx xx xx xx xx xx xx

    أو معلومات تصحيح أخطاء نواة مماثلة على شاشتك أو في سجل النظام لديك، يرجى تكرارها بالضبط. قد يبدو التفريغ غير مفهوم لك، لكنه يحتوي على معلومات قد تساعد في تصحيح المشكلة. النص الموجود أعلى التفريغ مهم أيضًا: فهو يخبر شيئًا عن سبب قيام النواة بتفريغ الكود (في المثال أعلاه، يعود السبب إلى مؤشر نواة خاطئ). مزيد من المعلومات حول فهم التفريغ موجود في Documentation/oops-tracing.txt

  • إذا قمت بتجميع النواة مع CONFIG_KALLSYMS، يمكنك إرسال التفريغ كما هو، وإلا فسيتعين عليك استخدام برنامج "ksymoops" لفهم التفريغ (ولكن التجميع مع CONFIG_KALLSYMS عادةً ما يكون مفضلاً). يمكن تنزيل هذه الأداة من ftp://ftp..kernel.org/pub/linux/utils/kernel/ksymoops/ . بدلاً من ذلك، يمكنك البحث في التفريغ يدويًا:

  • عند تصحيح تفريغات مثل ما سبق، يساعد بشكل كبير إذا كان بإمكانك معرفة ما تعنيه قيمة EIP. القيمة السداسية العشرية في حد ذاتها لا تساعدني أو تساعد أي شخص آخر كثيرًا: فهي تعتمد على إعداد نواتك الخاص. ما يجب عليك فعله هو أخذ القيمة السداسية العشرية من سطر EIP (تجاهل "001

تنزيل الأداة