
DirtyPipe (CVE-2022-0847) استغلال مكتوب بلغة Rust
إخلاء مسؤولية
هذا الرمز لأغراض تعليمية وبحثية فقط.
لا تستخدمه على أنظمة لا تملكها أو ليس لديك إذن لاختبارها.
المؤلف غير مسؤول عن أي إساءة استخدام أو ضرر أو عواقب قانونية تنجم عن استخدام هذا الرمز.
اطلع على الشرح الكامل لهذا الاستغلال على مدونتي. هذا تطبيق لاستغلال DirtyPipe (CVE-2022-0847) كتبته بلغة Rust بناءً على شرح Max Kellermann. يسمح لك البرنامج بالكتابة فوق ملفات محددة أو الكتابة فوق ملف SUID لرفع الامتيازات.
passwd) للحصول على صلاحيات الجذر/tmp قبل الاستغلالأولاً، أنشئ ملف إدخال. سيتم استخدام البيانات الموجودة في هذا الملف للكتابة فوق الهدف. ثم قم بتشغيل الأمر التالي:
./dirtypipe_exploit -m overwrite -i input.txt -o target_file -b offset
حيث offset هو الإزاحة بالبايت لبدء الكتابة في الملف. يجب ألا تكون الإزاحة على حدود الصفحة ويجب ألا تعبر الكتابة حدود الصفحة، بسبب طبيعة الثغرة.
يقوم وضع SUID باستبدال ملف SUID محدد بحمولة ELF معينة. يتم توفير ملف suid ELF في الإصدار على هذا المستودع وسيتم استخدامه بواسطة الاستغلال ما لم يتم تحديد خيار آخر.
بالإضافة إلى ذلك، يمكنك إنشاء هذا بنفسك، أو تعديل الحمولة باستخدام سكربت gen_suid.py pwntools وملف loader.asm. سيتم مناقشة هذا الخيار أدناه.
يقوم الاستغلال بتعيين الهدف إلى /usr/bin/passwd بشكل افتراضي.
قم بتشغيل الأمر التالي لاستبدال /usr/bin/passwd بالحمولة المقدمة (تفتح شيل كجذر):
./dirtypipe_exploit -m suid
ثم قم بتشغيل /usr/bin/passwd للحصول على شيل جذر.
لإنشاء حمولتك الخاصة، اتبع هذه الخطوات:
gen_suid.py، الذي يستخدم pwntools لإنشاء حمولة (shellcode.bin) تفتح شيل جذر. قم بتعديلها كما تراه مناسبًا.nasm -f bin -o [PAYLOAD_NAME] loader.asm. سيؤدي ذلك إلى تحويل ملف shellcode.bin إلى ملف قابل للتنفيذ../dirtypipe_exploit -m suid -i [PAYLOAD_NAME] -o [TARGET_FILE].شكرًا لمؤلف مدونة STALKR على رأس ELF الصغير جدًا 64 بت (هنا).