Comment Utiliser CrackMapExec en 2026 : Guide NetExec

Penetration Testing
16 min de lecture
Comment Utiliser CrackMapExec en 2026 : Guide NetExec
Sur cette page
  1. Qu'est-il arrivé à CrackMapExec ?
  2. Installer NetExec
  3. Syntaxe CrackMapExec : protocole, cible, identifiants
    1. Formats de cible
    2. Mots de passe, hashes et comptes locaux
    3. Lire la sortie
  4. Les commandes d'énumération SMB à retenir
  5. Pulvériser des mots de passe sans verrouiller le domaine
  6. Des identifiants valides à l'admin du domaine
    1. Extraire le matériel d'identification
    2. Kerberoasting via LDAP
    3. Exécuter des commandes
  7. Les modules, là où nxc devient intéressant
  8. Ce que ces commandes donnent à voir aux défenseurs
  9. Considérations légales et éthiques
    1. Où son usage est légitime
  10. Questions fréquentes
  11. Vos prochaines étapes

Vous lisez un walkthrough, vous tapez crackmapexec smb 10.10.10.0/24, et votre shell vous répond command not found. Ce n'est pas une installation cassée. CrackMapExec, l'outil qui a été pendant près d'une décennie la façon standard de balayer un réseau Windows depuis une seule machine Linux, a été archivé par son propriétaire le 6 décembre 2023 et n'a plus reçu le moindre correctif depuis. Apprendre à utiliser CrackMapExec en 2026, c'est apprendre NetExec, le fork qui a hérité du projet, des utilisateurs et des automatismes.

Presque rien de ce que vous savez déjà n'est perdu. La syntaxe, les options et le format de sortie ont été repris quasiment à l'identique, si bien qu'un article de blog vieux de cinq ans reste utile tant que vous remplacez le nom du binaire. Ce guide couvre ce qui a changé, comment installer le remplaçant, et les commandes précises qui justifient la réputation de l'outil en test d'intrusion. Si vous préférez la théorie derrière les attaques d'abord, le chapitre sur l'énumération Active Directory détaille ce que chacune de ces commandes demande réellement au contrôleur de domaine.

En bref : CrackMapExec est archivé et n'est plus maintenu. Son successeur est NetExec, invoqué avec nxc, installé sur Kali via sudo apt install netexec. La syntaxe est nxc <protocole> <cible> -u user -p pass sur dix protocoles dont SMB, LDAP, WinRM et MSSQL. Commencez par --shares et --pass-pol, et considérez un (Pwn3d!) dans la sortie comme le signal que le compte dispose de droits admin sur cet hôte.

Qu'est-il arrivé à CrackMapExec ?

CrackMapExec est un outil de post-exploitation destiné à auditer les réseaux Windows et Active Directory qui n'est plus maintenu. Son dépôt GitHub a été archivé le 6 décembre 2023 et il est désormais en lecture seule. Le README indique que le projet s'est arrêté à cause de ce que son auteur décrit comme un fork hostile.

Ce fork, c'est NetExec, et il a gagné. La page du paquet Kali Linux décrit NetExec comme la continuation de CrackMapExec, maintenu pendant des années par mpgn puis abandonné au moment de sa retraite. Kali a retiré l'ancien paquet et distribue maintenant netexec, actuellement en version 1.5.1. Quand les mainteneurs de l'outillage de sécurité d'une distribution tranchent ainsi, le débat est clos.

Mon conseil est direct : n'installez pas CrackMapExec depuis un dépôt archivé pour suivre un vieux tutoriel. Vous vous battrez avec les erreurs de dépendances d'un projet Python figé en 2023, et vous passerez à côté de trois ans de support de protocoles et de corrections. Lisez l'ancien tutoriel, exécutez le nouveau binaire.

L'outil d'origine est documenté dans MITRE ATT&CK sous la référence S0488, associée à dix-huit techniques couvrant l'extraction d'identifiants, le pass the hash, la force brute et l'exécution de commandes à distance. Cette fiche cite cinq groupes d'attaquants qui l'ont employé lors d'intrusions réelles, dont MuddyWater, FIN7 et APT39. C'est un outil réellement puissant, ce qui explique pourquoi la section sur l'autorisation plus bas n'est pas une formalité.

Installer NetExec

Sur Kali et Parrot, le paquet est dans les dépôts standards :

sudo apt update && sudo apt install netexec

Partout ailleurs, les mainteneurs recommandent pipx, qui isole l'outil et ses dépendances dans leur propre environnement virtuel plutôt que dans votre Python système :

sudo apt install pipx git
pipx ensurepath
pipx install git+https://github.com/Pennyw0rth/NetExec

Ouvrez ensuite un nouveau shell pour que le PATH mis à jour soit pris en compte. L'installation vous donne trois commandes : netexec, l'alias court nxc que tout le monde tape en réalité, et nxcdb pour parcourir la base de résultats. Vérifiez que tout fonctionne :

nxc --version

Deux échecs reviennent assez souvent pour être nommés. Si la compilation s'arrête sur fatal error: Python.h: No such file or directory, il vous manque les en-têtes de développement Python de votre distribution, dont une des dépendances a besoin pour se compiler. Et si nxc reste introuvable après une installation via pipx, vous avez sauté pipx ensurepath ou vous êtes resté dans la même session de shell.

La mise à jour avec pipx tient en une ligne. pipx upgrade netexec récupère les versions publiées, et pipx reinstall netexec tire les derniers commits quand vous avez besoin d'un correctif pas encore sorti.

💻
Pratiquez maintenant : Internal - obtenez le point d'entrée sur un réseau interne que ces commandes supposent déjà acquis, dans un lab en navigateur sans VPN ni VM à construire.

Syntaxe CrackMapExec : protocole, cible, identifiants

Chaque commande suit la même structure en trois parties, ce qui rend l'outil rapide à apprendre et difficile à lâcher :

nxc <protocol> <target(s)> -u <user> -p <password>

NetExec prend en charge dix protocoles : smb, ldap, winrm, mssql, ssh, ftp, wmi, rdp, vnc et nfs. Chacun a son propre jeu d'options, si bien que nxc smb --help et nxc ldap --help affichent des menus réellement différents. SMB est le point de départ de la plupart des missions.

Formats de cible

L'argument de cible accepte bien plus qu'une simple adresse IP, et vous pouvez mélanger les formats dans une même commande :

  • nxc smb 192.168.1.10 pour un hôte unique
  • nxc smb 192.168.1.0/24 pour une notation CIDR
  • nxc smb 192.168.1.0-28 pour une plage
  • nxc smb dc01.corp.local pour un nom d'hôte
  • nxc smb ~/targets.txt pour un fichier avec une cible par ligne

Mots de passe, hashes et comptes locaux

Remplacez -p par -H pour vous authentifier avec un hash NTLM au lieu d'un mot de passe : c'est la technique du pass the hash dans sa forme la plus pratique. La paire complète LM:NT et le hash NT seul fonctionnent tous les deux :

nxc smb 192.168.1.0/24 -u localguy -H 'aad3b435b51404eeaad3b435b51404ee:13b29964cc2480b4ef454c59562e675c' --local-auth

L'option --local-auth indique à l'outil de s'authentifier contre la base SAM locale de la machine plutôt que contre le domaine. Elle compte plus que les débutants ne l'imaginent : un mot de passe d'administrateur local réutilisé sur cinquante postes est une découverte totalement différente d'un compte de domaine, et sans cette option vous testez la mauvaise chose. Une session nulle se résume à des chaînes vides, -u '' -p ''.

Un détail de shell qui coûte une heure : entourez les identifiants de guillemets simples. Un mot de passe comme October2022! déclenche l'expansion d'historique dans bash, et vous passerez cette heure convaincu que le compte est verrouillé.

Lire la sortie

Les résultats s'affichent à raison d'une ligne par hôte. [*] correspond à la bannière de l'hôte avec la version de l'OS, le domaine et l'état de la signature SMB, [+] signifie que l'authentification a réussi, et [-] qu'elle a échoué. La ligne que vous cherchez ressemble à ceci :

SMB   192.168.1.101   445   HOSTNAME   [+] DOMAIN\Username:Password (Pwn3d!)

Le marqueur (Pwn3d!) signifie que les identifiants permettent d'exécuter du code sur l'hôte. Son sens exact varie selon le protocole, et la nuance mérite d'être connue : en SMB et WMI, le compte est très probablement administrateur local ; en WinRM et RDP, cela veut dire exécution de code au minimum ; en LDAP, cela indique un chemin vers l'admin du domaine. En FTP, aucune vérification n'est faite.

Les commandes d'énumération SMB à retenir

L'authentification n'est que l'entrée. Si cet outil s'est fait une place, c'est parce qu'un seul compte valide et peu privilégié, pointé sur un sous-réseau entier, renvoie une carte du domaine en une minute environ.

OptionCe qu'elle renvoie
--sharesTous les partages de tous les hôtes, avec vos accès en lecture et en écriture sur chacun
--usersLes comptes utilisateurs du domaine, avec --users-export file.txt pour enregistrer la liste
--rid-bruteNoms d'utilisateurs et de groupes récupérés en parcourant les RID, utile quand --users est bloqué
--pass-polLa politique de mots de passe du domaine : longueur, complexité et seuil de verrouillage
--loggedon-usersQui est actuellement connecté sur un hôte, ce qui permet de repérer où travaillent les admins
--disksLes disques rattachés à la cible

Le balayage des partages est celui à lancer en premier, et la documentation le présente comme la fonctionnalité la plus utile de l'outil. Vous pouvez filtrer pour ne garder que les partages qui comptent :

nxc smb 192.168.1.0/24 -u user -p 'Password123' --shares READ,WRITE

En pratique, un partage accessible en écriture sur un serveur de fichiers est le moment où un test interne de routine devient une découverte à documenter. Des dossiers de sauvegarde contenant un script de jonction au domaine avec un mot de passe en clair, un partage IT avec un tableur de comptes admin locaux, un répertoire de déploiement que personne n'a audité depuis la mise en service : le schéma se répète dans des organisations de toutes tailles, et un seul balayage --shares fait remonter l'ensemble.

Lancez --pass-pol avant de toucher à quoi que ce soit qui devine des mots de passe. Cela coûte une commande et vous donne le seuil de verrouillage, le chiffre qui décide si la section suivante est sans danger.

Pulvériser des mots de passe sans verrouiller le domaine

Le password spraying teste un mot de passe contre de nombreux comptes, plutôt que de nombreux mots de passe contre un seul compte. Il reste sous le seuil de verrouillage parce que chaque compte ne subit qu'un échec de connexion par tour. Faites l'inverse et vous verrouillez quelques centaines d'employés avant le déjeuner, ce qui met fin à la mission et abîme la relation client.

Par défaut, quand vous passez une liste d'utilisateurs et un mot de passe, l'outil teste le produit complet de chaque utilisateur avec chaque mot de passe. Pour une pulvérisation, vous voulez un seul mot de passe sur toute la liste :

nxc smb 192.168.1.101 -u users.txt -p 'Summer2026!' --continue-on-success

--continue-on-success est l'option que l'on oublie. Sans elle, l'exécution s'arrête au premier identifiant valide, et vous découvrez un compte au lieu des six qui partagent ce mot de passe.

Quand vous disposez de paires d'identifiants plutôt que d'une liste à pulvériser, --no-bruteforce associe la ligne un du fichier d'utilisateurs à la ligne un du fichier de mots de passe au lieu de tester toutes les combinaisons :

nxc smb 192.168.1.101 -u users.txt -p passwords.txt --no-bruteforce --continue-on-success

Deux habitudes évitent les dérapages. Vérifiez --pass-pol d'abord pour connaître le seuil et la fenêtre d'observation. Et pulvérisez une fois, puis attendez, plutôt que d'enchaîner trois tours en dix minutes parce que le premier n'a rien donné.

Des identifiants valides à l'admin du domaine

Dès qu'un jeu d'identifiants revient avec (Pwn3d!), l'outil passe de l'énumération à la collecte. Ces commandes exigent des droits d'administration sur la cible.

Extraire le matériel d'identification

nxc smb 192.168.1.0/24 -u Admin -p 'Password' --sam
nxc smb 192.168.1.0/24 -u Admin -p 'Password' --lsa
nxc smb 192.168.1.100 -u Admin -p 'Password' --ntds --enabled

--sam récupère les hashes des comptes locaux, --lsa récupère les secrets LSA dont les identifiants de domaine mis en cache et les mots de passe de comptes de service, et --ntds extrait la base du domaine depuis un contrôleur de domaine. Ajoutez --enabled pour ignorer les comptes désactivés, ce qui sur un vieux domaine peut réduire la sortie de moitié et garder votre rapport lisible.

Un hash n'est pas un mot de passe. Tout ce que --sam et --ntds renvoient doit encore passer par une phase de cassage, et c'est là que notre tutoriel Hashcat reprend le fil.

Kerberoasting via LDAP

Les comptes de service associés à un SPN peuvent vous fournir un hash de ticket cassable depuis n'importe quel compte de domaine authentifié, sans privilège particulier :

nxc ldap 192.168.1.100 -u user -p pass --kerberoasting output.txt

Le fichier se remplit de hashes Kerberos 5 TGS-REP prêts pour un cassage hors ligne. Les comptes de service sont une cible fiable parce que leur mot de passe est défini une fois à l'installation et rarement renouvelé ensuite.

Exécuter des commandes

nxc smb 192.168.10.11 -u Administrator -p 'P@ssw0rd' -x whoami
nxc smb 192.168.10.11 -u Administrator -p 'P@ssw0rd' -X '$PSVersionTable'

Le -x minuscule exécute une commande via cmd, le -X majuscule passe par PowerShell. En dessous, trois méthodes d'exécution sont tentées dans l'ordre : wmiexec via WMI, puis atexec par le planificateur de tâches, puis smbexec en créant un service. Si l'une échoue, l'outil bascule sur la suivante, ce qui explique qu'une commande fonctionne parfois sur un hôte et pas sur son voisin identique. Fixez la méthode avec --exec-method quand vous avez besoin d'un comportement constant pour un rapport.

💻
Pratiquez maintenant : Shadow Cracker - faites passer des hashes de mots de passe extraits par un cycle de cassage complet et mesurez ce que vaut vraiment un dump --sam.

Les modules, là où nxc devient intéressant

Au-delà des options intégrées, chaque protocole embarque sa propre bibliothèque de modules. Listez ce qui est disponible et lisez les options d'un module avant de le lancer :

nxc smb -L
nxc smb -M spider_plus --options
nxc smb 10.10.10.10 -u user -p pass -M spider_plus -o DOWNLOAD_FLAG=True

Les options s'écrivent -o CLE=valeur, et vous pouvez empiler plusieurs -M dans une même commande. Le module à apprendre en premier est spider_plus, qui parcourt tous les partages lisibles et construit un inventaire JSON des fichiers trouvés. Pointez-le sur un serveur de fichiers avec le téléchargement désactivé, lisez l'inventaire, puis revenez chercher la poignée de fichiers qui comptent. Télécharger un partage à l'aveugle, c'est remplir un disque sans rien apprendre.

Les résultats atterrissent aussi dans une base locale que vous pouvez interroger plus tard avec nxcdb. Sur une mission qui s'étale sur plusieurs jours, cela vaut mieux que de faire défiler l'historique du terminal.

Ce que ces commandes donnent à voir aux défenseurs

Quiconque exécute cet outil sur une mission devrait savoir à quel point il est visible, et quiconque défend un réseau devrait savoir quoi chercher. Les deux camps lisent la même fiche MITRE ATT&CK.

  • Volume d'authentification. Une adresse source qui s'authentifie sur des centaines d'hôtes en une minute n'a aucun équivalent légitime. Des échecs Event ID 4625 répartis sur de nombreux comptes depuis une seule IP sont la signature d'une pulvérisation.
  • Création de service. La méthode smbexec crée et démarre un service Windows sur la cible. Un Event ID 7045 sur un poste de travail est inhabituel et mérite une alerte.
  • Tâches planifiées éphémères. La méthode atexec enregistre une tâche, l'exécute, puis la supprime. Une tâche qui apparaît et disparaît en quelques secondes est un indicateur fort.
  • Lectures sur le contrôleur de domaine. Un seul compte non privilégié qui demande des tickets de service pour tous les SPN du domaine, c'est du Kerberoasting, et c'est l'une des attaques les plus faciles à détecter si quelqu'un surveille l'Event ID 4769.

Les produits de sécurité des postes de travail identifient cet outil par son nom, et Microsoft publie une signature de détection le concernant. Sur une mission réelle, attendez-vous à ce que l'outillage du client déclenche une alerte. C'est le résultat attendu dans un environnement protégé, et un test qui réussit sans bruit face à un réseau mature signifie en général que la chaîne de détection est mal configurée, ce qui constitue en soi une découverte à consigner. Notre guide du test d'intrusion réseau explique comment cette conversation de restitution s'intègre à la mission dans son ensemble.

Considérations légales et éthiques

Rappel essentiel : obtenez toujours une autorisation écrite explicite avant de tester un système. Pulvériser des mots de passe contre un domaine que vous n'avez pas la permission de tester constitue un accès non autorisé au regard du droit pénal informatique dans la plupart des juridictions, qu'une seule connexion aboutisse ou non.

Cet outil diffère d'un scanner sur un point important : il s'authentifie. Nmap frappe aux portes, NetExec essaie les clés. Cela franchit une frontière juridique que la reconnaissance ne franchit pas, et les tentatives échouées sont journalisées avec votre adresse source dans tous les cas.

Où son usage est légitime

  • Votre propre domaine de laboratoire, monté à partir de versions d'évaluation de Windows Server sur du matériel qui vous appartient
  • Les missions couvertes par un document de périmètre signé nommant les plages cibles et les comptes que vous pouvez tester
  • Les réseaux que vous administrez, avec l'accord documenté de votre employeur
  • Les environnements d'entraînement dédiés et les plateformes de CTF

Le risque spécifique ici, c'est le débordement de périmètre. Une plage CIDR d'un chiffre plus large que convenu peut balayer un réseau appartenant à une autre entité du groupe ou à un voisin d'hébergement partagé. Relisez l'argument de cible à voix haute avant d'appuyer sur entrée, à chaque fois.

Questions fréquentes

CrackMapExec est-il encore maintenu ?

Non. Le dépôt CrackMapExec a été archivé par son propriétaire le 6 décembre 2023 et est en lecture seule, il ne reçoit donc ni correctif ni nouvelle fonctionnalité. NetExec en est la continuation maintenue, et Kali Linux a remplacé l'ancien paquet par le paquet netexec.

Quelle est la différence entre CrackMapExec et NetExec ?

NetExec est un fork communautaire de CrackMapExec qui a pris le relais après l'arrêt du projet d'origine. La commande est passée de crackmapexec à nxc, et le fork a ajouté des protocoles, des modules et des correctifs. La syntaxe de base et le format de sortie sont restés assez proches pour que les anciens tutoriels restent applicables.

Comment installer NetExec sur Kali Linux ?

Exécutez sudo apt update && sudo apt install netexec. Kali le distribue dans ses dépôts standards, actuellement en version 1.5.1, et installe les commandes netexec, nxc et nxcdb. Sur les autres distributions, passez par pipx depuis le dépôt GitHub du projet.

Que signifie Pwn3d! dans la sortie ?

Cela signifie que les identifiants permettent d'exécuter du code sur cet hôte. En SMB et WMI, le compte est très probablement administrateur local ; en WinRM et RDP, cela indique au minimum une exécution de code ; en LDAP, cela indique un chemin vers l'admin du domaine. Le FTP n'effectue aucune vérification de ce type.

Quels protocoles NetExec prend-il en charge ?

Dix : SMB, LDAP, WinRM, MSSQL, SSH, FTP, WMI, RDP, VNC et NFS. Chacun a ses propres options et modules, si bien que nxc smb --help et nxc ldap --help renvoient des jeux d'options différents. SMB est le point de départ habituel sur un réseau Windows.

Les tutoriels CrackMapExec sont-ils encore utiles ?

Oui. Remplacez crackmapexec par nxc et la plupart des commandes s'exécutent sans changement, car des options comme --shares, --pass-pol et --ntds ont été reprises. Consultez la documentation actuelle pour ce qui renvoie une erreur, certaines options ayant changé de protocole.

Vos prochaines étapes

Apprendre à utiliser CrackMapExec aujourd'hui revient à installer NetExec, taper nxc et appliquer la même syntaxe en trois parties que l'original a rendue célèbre. Maîtrisez quatre commandes et vous couvrez l'essentiel de ce que fait l'outil sur une mission : --shares pour cartographier ce que vous atteignez, --pass-pol pour connaître vos limites, une pulvérisation avec --continue-on-success, et --ntds dès qu'un compte revient avec (Pwn3d!). Le wiki NetExec sert de référence pour tout le reste.

Lire des commandes n'équivaut pas à les lancer contre quelque chose qui répond. Obtenez un point d'entrée sur un vrai réseau interne dans le lab Internal, puis construisez la méthodologie autour avec le cours de test d'intrusion réseau. Les deux tournent dans le navigateur avec l'offre gratuite de HackerDNA, sans carte bancaire et sans VM de laboratoire.

HackerDNA Team

Équipe HackerDNA

Écrit par l'équipe HackerDNA - des professionnels de la cybersécurité qui créent des labs de hacking pratiques et du contenu éducatif pour vous aider à développer des compétences réelles en sécurité.

Rencontrer l'équipe

Prêt à mettre cela en pratique?

Arrêtez de lire, commencez à hacker. Obtenez une expérience pratique avec plus de 170 labs de cybersécurité réels.

Commencer à Hacker Gratuitement
21 000+ Hackers 100+ Labs & Cours Gratuit
Commencer Gratuitement