# doublepulsar_detect.py - Détection de la backdoor DoublePulsar # Sniffe les paquets SMB pour repérer le ping codé de DoublePulsar # À utiliser UNIQUEMENT dans un lab sécurisé (article 323-1 CP) # Par Platon-Y pour PCtamalou.fr """ Ce script détecte la backdoor DoublePulsar sur une cible Windows (ex. : 192.168.56.101). Il écoute le trafic SMB (port 445) et cherche un paquet Trans2 (opcode 0x0B) avec le ping codé 0x01 (knock). C'est une preuve que DoublePulsar est actif. """ from scapy.all import * import logging # Configure le logging pour enregistrer les détections logging.basicConfig( filename='doublepulsar.log', level=logging.INFO, format='%(asctime)s - %(message)s' ) # Fonction de détection def detect_doublepulsar(pkt): """ Analyse chaque paquet réseau pour identifier DoublePulsar. Args: pkt: Paquet réseau capturé par Scapy """ try: # Vérifie si le paquet est SMB et a une commande Trans2 (0x0B) if pkt.haslayer(SMB) and pkt[SMB].Command == 0x0B: # Vérifie le ping codé (0x01 00 00 00) if pkt[Trans2].Parameters == b"\x01\x00\x00\x00": message = f"[ALERTE] DoublePulsar détecté de {pkt[IP].src}" print(message) logging.info(message) return True except Exception as e: logging.error(f"Erreur lors de l'analyse : {e}") return False # Sniffe le trafic SMB def start_sniffing(): """ Lance le sniffer sur le port SMB (445). """ print("[*] Démarrage du sniffer DoublePulsar sur tcp/445...") try: sniff( filter="tcp port 445", # Filtre SMB prn=detect_doublepulsar, # Appelle detect_doublepulsar pour chaque paquet store=0 # Ne stocke pas les paquets en mémoire ) except Exception as e: print(f"[!] Erreur de sniffing : {e}") logging.error(f"Erreur de sniffing : {e}") # Point d'entrée if __name__ == "__main__": print("[+] Détecteur DoublePulsar par Platon-Y") print("[*] Assure-toi que la cible (ex. : 192.168.56.101) a DoublePulsar actif") print("[*] Lab sécurisé requis (voir index.html #labsetup)") # Lance le sniffer start_sniffing() # 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 (avec DoublePulsar installé, ex. : via EternalRomance) 2. Installe Scapy : pip3 install scapy 3. Lance le script : python3 doublepulsar_detect.py 4. Simule DoublePulsar (ex. : via Metasploit ou eternalromance.py) 5. Vérifie les détections : - Console : Affiche les alertes - Fichier : doublepulsar.log 6. Analyse le trafic : wireshark -i eth0 -f "tcp port 445" """ # Dépannage """ - Pas de détection ? - Vérifie SMBv1 sur la cible : sc.exe query lanmanworkstation - Relance le service : net start lanmanserver - Confirme que DoublePulsar est actif (ex. : via ms17_010_eternalromance) - Erreur Scapy ? - Installe Scapy : pip3 install scapy - Vérifie les privilèges : sudo python3 doublepulsar_detect.py """ # 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