SMB : protocole réseau, attaques et détection
Comprendre SMB
Définition
SMB (Server Message Block) est un protocole réseau de partage de fichiers, d'imprimantes et de ressources inter-processus, opérant majoritairement sur le port TCP 445. SMB est présent dans tous les environnements Windows depuis Windows NT. Il a connu trois versions majeures : SMBv1, vulnérable et désormais obsolète ; SMBv2, introduit avec Vista ; SMBv3, qui apporte le chiffrement natif des flux. Sa pertinence en cybersécurité est directe : SMB est un vecteur d'attaque historique et actuel. EternalBlue exploite une faille de SMBv1 pour exécuter du code à distance sans authentification. Le protocole repose sur l'authentification NTLM ou Kerberos, ce qui en fait une cible privilégiée pour les attaques Pass-the-Hash, NTLM Relay et les mouvements latéraux. Sa présence quasi universelle dans les domaines Active Directory en fait un composant incontournable de toute analyse de surface d'attaque interne.
Détection (Blue Team / SOC)
La détection d'activités malveillantes sur SMB s'appuie sur plusieurs sources de logs. Côté événements Windows, l'Event ID 5140 (accès à un partage réseau) et l'Event ID 5145 (accès à un objet dans un partage) sont les indicateurs de premier niveau. Un volume anormal d'Event ID 4625 (échec d'authentification) sur des partages distincts trahit une attaque de type credential stuffing ou énumération SMB. L'Event ID 7045 couplé à une connexion SMB entrante indique une possible installation de service distant via PsExec ou des outils similaires. Côté réseau, des connexions multiples et rapides vers le port 445 sur plusieurs hôtes constituent un signal fort de mouvement latéral ou de propagation de vers (WannaCry, NotPetya). Les outils de supervision comme Zeek génèrent des logs SMB détaillés (smb_files.log, smb_mapping.log) permettant de corréler les accès fichiers avec des IOC connus. Wazuh et Elastic SIEM disposent de règles prêtes à l'emploi pour détecter les patterns EternalBlue et les sessions SMB anonymes. La présence de sessions NULL (authentification sans identifiant) est un indicateur de reconnaissance active.
Exploitation & contre-mesures (Red Team)
Côté Red Team, SMB offre plusieurs primitives d'attaque majeures. Impacket (smbclient.py, psexec.py, smbexec.py, wmiexec.py) permet l'exécution de commandes distantes via SMB en réutilisant des hachages NTLM capturés, sans connaître le mot de passe en clair. Responder combiné à ntlmrelayx.py permet d'intercepter des authentifications NTLM sur le réseau local et de les relayer vers d'autres hôtes SMB pour obtenir une session authentifiée. CrackMapExec automatise l'énumération des partages, la vérification de credentials et l'exécution de commandes sur des plages d'adresses entières. Pour le durcissement, les contre-mesures essentielles sont : désactiver SMBv1 via PowerShell (Set-SmbServerConfiguration -EnableSMB1Protocol $false), bloquer le port 445 en entrée sur tous les hôtes sauf les serveurs de fichiers dédiés, activer la signature SMB obligatoire (RequireSecuritySignature) pour neutraliser les attaques NTLM Relay, et segmenter le réseau pour limiter la portée des mouvements latéraux. L'activation du SMB Encryption (SMBv3) sur les partages sensibles protège les flux contre l'interception. Ces mesures réduisent drastiquement la surface d'attaque SMB sans impacter les usages légitimes.
Articles sur SMB
Sans signature SMB et LDAP, un attaquant peut enchaîner un relais NTLM jusqu'à la prise de contrôle totale d'Active Directory.