/* yara_eternal.yar - Règle YARA pour détecter le shellcode EternalRomance * À utiliser UNIQUEMENT dans un lab sécurisé (article 323-1 CP) * Par Platon-Y pour PCtamalou.fr */ /* Cette règle YARA identifie le shellcode d'EternalRomance (CVE-2017-0144) dans : - Binaires (ex. : fichiers .bin exportés de Ghidra) - Dumps mémoire (ex. : via Volatility) Elle recherche des motifs typiques : NOP sled, breakpoint (int3), et chaînes SMB. */ rule EternalRomance_Shellcode { meta: description = "Détecte le shellcode d'EternalRomance (CVE-2017-0144)" author = "Platon-Y" reference = "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0144" date = "2025-05-27" severity = "CRITICAL" strings: // Motif 1 : NOP sled (séquence de 0x90) suivi d'un breakpoint (0xCC) $shellcode = { 90 90 90 CC CC CC } // Motif 2 : Chaîne SMB typique dans les paquets malveillants $smb_trans = "NT Trans" ascii // Motif 3 : Champ vulnérable dans EternalRomance $param_count = "MaxParameterCount" ascii condition: // Déclenche si le shellcode ET l'un des motifs SMB est présent $shellcode and ($smb_trans or $param_count) } /* 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 2. Installe YARA : sudo apt install yara 3. Exporte un shellcode suspect (ex. : via Ghidra, Étape 3) : - shellcode.bin (depuis DoublePulsar.dll ou eternalromance.py) 4. Lance YARA : yara yara_eternal.yar shellcode.bin 5. Ou scanne un dump mémoire : volatility -f memdump.vmem --profile=Win7SP1x64 yara -r yara_eternal.yar 6. Vérifie les détections : - Sortie console : Liste les correspondances - Fichier : Redirige vers un log si besoin (ex. : yara ... > results.txt) */ /* Dépannage : - Pas de détection ? - Vérifie que le shellcode contient bien un NOP sled (0x90) ou int3 (0xCC). - Confirme la présence des chaînes SMB : strings shellcode.bin | grep "NT Trans" - Teste avec un autre binaire : génère un nouveau shellcode via eternalromance.py - Erreur YARA ? - Vérifie la syntaxe : yara -C yara_eternal.yar - Assure-toi que YARA est installé : yara --version */ /* Avertissement éthique : Cette règle 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 */