NetExec
Netexec - Guide Complet pour le Pentest Multi-Protocole
⚠️ Avertissement : Ce contenu est strictement destiné à un usage éducatif et éthique dans le domaine de la cybersécurité. Toute utilisation illégale ou malveillante est interdite et engage la seule responsabilité de l’utilisateur.
Introduction
Netexec est un outil puissant pour interagir avec divers protocoles réseau tels que LDAP, SMB, SSH, FTP, WMI, WinRM, RDP, VNC, MSSQL, et NFS. Il permet aux pentesters de tester des identifiants (mots de passe ou hash NTLM), d’énumérer des ressources, et d’exploiter des vulnérabilités dans des environnements réseau complexes, y compris les domaines Active Directory (AD).
Ce guide décrit chaque fonctionnalité en détail avec des exemples pratiques et exhaustifs.
🚀 Étape 1 : Installation de Netexec
1.1 Prérequis
Python 3.6 ou une version ultérieure.
Git pour cloner le dépôt.
1.2 Installation sur Linux/MacOS
Clonez le dépôt officiel de Netexec :
Créez un environnement virtuel Python pour isoler les dépendances :
Installez les dépendances nécessaires :
Vérifiez que Netexec fonctionne correctement :
🔧 Étape 2 : Protocole par Protocole
2.1 LDAP
Description : LDAP (Lightweight Directory Access Protocol) est un protocole standard utilisé pour interroger et modifier des informations dans les services d’annuaire, comme Active Directory.
Commandes Clés :
Lister les utilisateurs :
Lister les utilisateurs (avec hash NTLM) :
Identifier les utilisateurs actifs uniquement :
Lister les groupes :
Lister les membres d’un groupe :
ASREPRoasting :
Requête LDAP spécifique : Pour un utilisateur particulier :
Lister les contrôleurs de domaine :
Récupérer le SID du domaine :
Requête personnalisée LDAP avec filtre :
Forcer l'utilisation de Kerberos (-k) :
2.2 SMB
Description : SMB (Server Message Block) est utilisé pour l’accès partagé aux fichiers, imprimantes et ressources réseau.
Commandes Clés :
Lister les partages SMB accessibles :
Lister les partages avec hash NTLM :
Explorer un partage :
Lister les permissions d’un partage :
Télécharger un fichier :
Téléverser un fichier :
Exécuter une commande sur un hôte distant (PsExec via SMB) :
Lister les sessions ouvertes sur le partage :
Récupérer des fichiers sensibles en masse :
Utiliser Kerberos (-k) :
2.3 SSH
Description : SSH (Secure Shell) permet un accès distant sécurisé aux systèmes.
Commandes Clés :
Tester des identifiants SSH :
Tester des identifiants SSH avec hash NTLM :
Exécuter une commande distante :
Lister les utilisateurs locaux :
Téléverser un fichier via SCP :
Ouvrir une session interactive :
Redémarrer le système à distance :
2.4 FTP
Description : FTP (File Transfer Protocol) est utilisé pour transférer des fichiers entre des systèmes.
Commandes Clés :
Lister les fichiers sur le serveur :
Télécharger un fichier :
Téléverser un fichier :
Supprimer un fichier distant :
Vérifier les permissions d’un fichier :
2.5 WMI
Description : WMI (Windows Management Instrumentation) est utilisé pour gérer et interagir avec des systèmes Windows.
Commandes Clés :
Exécuter une commande :
Lister les processus :
Arrêter un processus :
Lister les services en cours d’exécution :
Démarrer ou arrêter un service :
Forcer l'utilisation de Kerberos (-k) :
2.6 WinRM
Description : WinRM (Windows Remote Management) est un protocole pour l’administration à distance des systèmes Windows.
Commandes Clés :
Exécuter une commande via PowerShell :
Déployer un script PowerShell :
Ouvrir une session interactive PowerShell :
Lister les journaux d’événements :
2.7 RDP
Description : RDP (Remote Desktop Protocol) est utilisé pour accéder à des sessions distantes graphiques.
Commandes Clés :
Vérifier l’accès RDP :
Forcer une déconnexion RDP :
2.8 VNC
Description : VNC (Virtual Network Computing) permet une connexion distante avec une interface graphique.
Commandes Clés :
Tester un accès VNC :
2.9 MSSQL
Description : MSSQL (Microsoft SQL Server) est un système de gestion de bases de données.
Commandes Clés :
Tester des identifiants MSSQL :
Exécuter une requête SQL :
Lister les utilisateurs SQL :
2.10 NFS
Description : NFS (Network File System) est utilisé pour accéder à des fichiers stockés sur un serveur Unix/Linux.
Commandes Clés :
Lister les partages NFS disponibles :
Monter un partage NFS :
Démonter un partage NFS :
📖 Bonnes Pratiques
Toujours avoir des autorisations écrites : Tester un système sans autorisation explicite est illégal.
Limiter l’impact des scans : Utiliser des options pour ralentir les requêtes ou réduire la charge sur les services.
Analyser les résultats efficacement : Croiser les données obtenues avec d’autres outils pour mieux comprendre les failles potentielles.
Protéger les données collectées :
Sauvegardez les résultats de manière sécurisée.
Chiffrez les fichiers de résultats pour éviter toute fuite accidentelle.
Documenter vos actions :
Prenez des notes détaillées de vos commandes et résultats pour assurer une traçabilité.
Résumé des Commandes Clés
LDAP
nxc ldap <IP> --users
Lister les utilisateurs.
SMB
nxc smb <IP> --shares
Lister les partages SMB.
SSH
nxc ssh <IP> --exec "ls"
Exécuter une commande distante.
FTP
nxc ftp <IP> --list
Lister les fichiers d’un serveur FTP.
WMI
nxc wmi <IP> --exec "whoami"
Exécuter une commande avec WMI.
WinRM
nxc winrm <IP> --exec "ipconfig"
Exécuter une commande via WinRM.
RDP
nxc rdp <IP> --check
Vérifier l’accès RDP.
VNC
nxc vnc <IP>
Tester un accès VNC.
MSSQL
nxc mssql <IP> --query "SELECT * FROM users"
Exécuter une requête SQL.
NFS
nxc nfs <IP> --list
Lister les partages NFS.
Ressources Utiles
Liens utiles :
Dernière mise à jour