NetExec (nxc) : que prouvent réellement les résultats ?
NetExec (successeur direct et activement maintenu de CrackMapExec) est un outil d’automatisation d’évaluation et de mouvement latéral en réseau Active Directory. Il permet de scanner rapidement des sous-réseaux entiers à travers de multiples protocoles (SMB, WMI, WinRM, LDAP, MSSQL, RDP, SSH, FTP).
Lorsqu’un analyste DFIR examine les artefacts d’une machine d’attaque retrouvée sur un réseau ou consulte les rapports d’un test d’intrusion, il est confronté à des sorties standardisées de NetExec telles que :
[-] SMB 10.0.1.15:445 STATUS_LOGON_FAILURE[+] SMB 10.0.1.20:445 CORP\alice:Password123[+] SMB 10.0.1.25:445 CORP\bob:Password123 (Pwn3d!)
Pourquoi c’est important en DFIR
Section intitulée « Pourquoi c’est important en DFIR »NetExec est l’outil de prédilection de la majorité des affiliés ransomwares et des red teams :
- Confusion entre capacité théorique et action réelle : voir une ligne
(Pwn3d!)dans les logs d’une machine d’attaque amène souvent les équipes sécurité à déclarer prématurément que la machine cible a été « piratée ». En DFIR, il faut impérativement chercher la trace d’une action effective (création de service, exécution de binaire, dumping SAM/LSA). - Distinction des protocoles utilisés : netExec peut tester des identifiants en SMB (
--shares), en WMI (-x whoami), en WinRM (-X), ou en LDAP. Chaque protocole laisse des traces d’audit radicalement différentes. - Comportement par défaut par IP : netExec contacte quasi-exclusivement les cibles par leur adresse IP, forçant ainsi l’usage de NTLM au lieu de Kerberos. Cela génère des cascades d’échecs (Event 4625) et de succès (Event 4624 Type 3) caractérisés par des noms de machines d’origine spécifiques.
Comment ça fonctionne
Section intitulée « Comment ça fonctionne »Comment NetExec détermine le statut (Pwn3d!)
Section intitulée « Comment NetExec détermine le statut (Pwn3d!) »Sur le protocole SMB, NetExec effectue la séquence exacte suivante :
- Négociation SMB et envoi de la requête
SESSION_SETUPavec les identifiants fournis. - Si le mot de passe est faux : affiche
[-] STATUS_LOGON_FAILURE. - Si le mot de passe est juste : affiche
[+]. - Pour tester le statut administrateur (
Pwn3d!) :- NetExec tente d’ouvrir une connexion en arborescence (
TREE_CONNECT) sur le partage administratif caché\\TARGET\ADMIN$ou\\TARGET\C$. - Si la cible répond
STATUS_ACCESS_DENIED, l’utilisateur est un utilisateur standard valide ([+]). - Si la cible autorise l’accès au partage administratif (Code
STATUS_SUCCESS), NetExec en déduit que l’utilisateur est administrateur local et ajoute la mention(Pwn3d!). - Aucun code malveillant n’a été injecté. Aucun processus n’a été créé. Seule la connexion au partage
ADMIN$a été validée.
- NetExec tente d’ouvrir une connexion en arborescence (
NetExec (Attaquant) Serveur Cible │ │ │ 1. SMB Negotiate & Session Setup │ ├──────────────────────────────────────────►│ │◄──────────────────────────────────────────┤ 2. SUCCESS (Event 4624 Type 3) │ │ │ 3. Tree Connect: \\TARGET\ADMIN$ │ ├──────────────────────────────────────────►│ │◄──────────────────────────────────────────┤ 4. STATUS_SUCCESS (Event 5140) │ │ ▼ ▼Affiche: (Pwn3d!) AUCUN processus créé !Ce qui est possible
Section intitulée « Ce qui est possible »- Distinguer un spray de mot de passe d’une exécution : netExec sans arguments d’exécution (
-x,-X,--sam,--lsa) ne fait que de la vérification de credentials en lecture seule. - Identifier la présence d’outils NetExec par la signature réseau : netExec utilise par défaut des chaînes et des noms d’arbres SMB standardisés dérivés de la bibliothèque Impacket (
*SMBSERVER, connexions répétitives àIPC$,ADMIN$). - Identifier l’exécution réelle de commandes : si l’attaquant ajoute
-x "commande", NetExec déploiewmiexecousmbexec, créant des artefacts concrets (services distants temporaires, fichiers.batsousC:\Windows\Temp).
Ce qui n’est pas possible
Section intitulée « Ce qui n’est pas possible »- Conclure à une exécution de malware sur la seule base d’un affichage
(Pwn3d!): l’affichage(Pwn3d!)ne garantit en rien qu’une charge utile ait été déposée. - Utiliser Kerberos avec NetExec si une adresse IP est fournie en argument cible : la saisie d’un sous-réseau
192.168.1.0/24contraint NetExec à employer NTLM, sauf si le flag-k(Kerberos) est explicitement utilisé avec des noms d’hôtes FQDN. - **Accéder à
ADMINAccéder à avec un compte local siLocalAccountTokenFilterPolicy = 0(sauf RID 500) :** les comptes locaux subissent le filtrage UAC distant et n'obtiennent pas(Pwn3d!)`, même si leur mot de passe est correct.
Confusions fréquentes en DFIR
Section intitulée « Confusions fréquentes en DFIR »| Sortie / Indicateur NetExec | Ce que cela prouve techniquement | Ce que cela NE prouve PAS |
|---|---|---|
[-] STATUS_LOGON_FAILURE | Le mot de passe testé est invalide pour ce compte. | Ne prouve pas que le compte n’existe pas. |
[+] User:Pass | Le compte existe et le mot de passe est valide. | Ne prouve pas que le compte a accès aux données de la machine. |
[+] User:Pass (Pwn3d!) | Le compte peut ouvrir une session SMB sur ADMIN$ ou C$. | Ne prouve pas que du code OU un ransomware a été exécuté. |
[+] SMB ... Signing:False | Le serveur n’impose pas la signature SMB (vulnérable au relais). | Ne prouve pas qu’une attaque par relais a eu lieu. |
Exemple concret d’investigation
Section intitulée « Exemple concret d’investigation »Dans une enquête post-intrusion, les analystes retrouvent un fichier texte output_nxc.txt sur une machine d’attaque :
SMB 192.168.10.50 445 SRV-APP [+] CORP\helpdesk:Summer2026! (Pwn3d!)Le management s’inquiète immédiatement d’une compromission complète du serveur applicatif SRV-APP.
L’équipe DFIR analyse le serveur SRV-APP aux horodatages correspondants :
- Event ID 4624 (logon type 3) : authentification réussie pour
CORP\helpdeskà 14:02:11 viaNtLmSsp. - Event ID 5140 (network share object was accessed) : accès au partage
ADMIN$à 14:02:12 avec succès. - Event ID 7045 (new service installed) : Aucun service créé.
- Event ID 4688 / Sysmon 1 (process creation) : Aucun processus anormal créé.
- Dossier
C:\Windows\Temp: aucun fichier exécutable ou script temporaire déposé. - Conclusion DFIR : l’attaquant a validé que le compte
helpdeskétait administrateur local, mais n’a exécuté aucune action offensive sur cette machine à cet instant.
Artefacts et traces forensiques
Section intitulée « Artefacts et traces forensiques »- Journaux de sécurité Windows sur la cible :
- Event ID 4624 (type 3) : connexion réseau SMB (
LogonProcessName: NtLmSsp),Workstation Namecontenant le nom NetBIOS du poste de l’attaquant. - Event ID 5140 : accès au partage
ShareName: \\*\ADMIN$ou\\*\IPC$. - Event ID 5145 : vérification détaillée des droits d’accès sur le partage avec un
AccessMaskélevé (0x12019F).
- Event ID 4624 (type 3) : connexion réseau SMB (
- Artefacts en cas d’exécution réelle de commande (
-x/wmiexec/smbexec) :- Smbexec : création d’un service temporaire (Event ID 7045) exécutant
cmd.exe /Q /c ... > \\127.0.0.1\C$\__output 2>&1. - Wmiexec : exécution de commandes via
WmiPrvSE.exeengendrant des processus filscmd.exeoupowershell.exeavec redirection de sortie dansC:\Windows\Temp.
- Smbexec : création d’un service temporaire (Event ID 7045) exécutant
Méthodes d’investigation
Section intitulée « Méthodes d’investigation »- Rechercher les accès consécutifs à
IPCRechercher les accès consécutifs à puisADMINRechercher les accès consécutifs àIPCRechercher les accès consécutifs àIPCRechercher les accès consécutifs à puispuisADMINRechercher les accès consécutifs à puis : Corréler les Event IDs 4624 et 5140 intervenant dans la même seconde sur un grand nombre d’hôtes (signature du scan NetExec). - Vérifier l’absence d’event ID 7045 : Vérifier systématiquement si une connexion d’administrateur a été suivie par l’installation d’un service malveillant.
- Inspecter les connexions SMB anonymes :
NetExec commence toujours par interroger la cible sans identifiants pour extraire le nom d’hôte, le domaine et la version de Windows (session anonyme sur
IPC$).
Outils d’investigation
Section intitulée « Outils d’investigation »- Chainsaw / hayabusa :
Règles Sigma détectant les signatures de scan NetExec et d’exécution WMI/SMB :
net_connection_win_impacket_lateral_movement.ymlwin_system_service_install_smbexec.yml
- PowerShell / Get-WinEvent :
Fenêtre de terminal # Rechercher les accès suspects aux partages administratifsGet-WinEvent -FilterHashtable @{LogName='Security'; ID=5140} |Where-Object { $_.Properties[6].Value -like '*ADMIN$' -or $_.Properties[6].Value -like '*C$' } |Select-Object TimeCreated, @{N='User';E={$_.Properties[1].Value}}, @{N='Share';E={$_.Properties[6].Value}}, @{N='IP';E={$_.Properties[7].Value}}
Points clés à retenir
Section intitulée « Points clés à retenir »(Pwn3d!)signifie uniquement que l’accès au partageADMIN$ouC$a été accordé.- NetExec sans options d’exécution ne lance aucun processus sur la cible.
- Les scans NetExec par adresse IP utilisent NTLM et génèrent une télémétrie Event 4624 Type 3 très caractéristique.
- Pour affirmer qu’une machine a été compromise, l’enquêteur doit prouver une exécution effective (Event 7045, Event 4688, fichiers créés).
Références et approfondissements
Section intitulée « Références et approfondissements »- NetExec Official Documentation
- Fiche 05 — authentification vs autorisation : la frontière décisive en DFIR
- Fiche 08 — permissions NTFS, permissions de partage et ACLs
- Fiche 21 — NTLM vs Kerberos : différences fondamentales en investigation
- Fiche 24 — mouvement latéral entre domaines Active Directory : méthodes, chemins et contraintes