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

  1. Clonez le dépôt officiel de Netexec :

    git clone https://github.com/Pennyw0rth/NetExec.git
    cd NetExec
  2. Créez un environnement virtuel Python pour isoler les dépendances :

    python3 -m venv netexec_env
    source netexec_env/bin/activate
  3. Installez les dépendances nécessaires :

    pip install -r requirements.txt
  4. Vérifiez que Netexec fonctionne correctement :

    python nxc --help

🔧 É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

  1. Toujours avoir des autorisations écrites : Tester un système sans autorisation explicite est illégal.

  2. Limiter l’impact des scans : Utiliser des options pour ralentir les requêtes ou réduire la charge sur les services.

  3. Analyser les résultats efficacement : Croiser les données obtenues avec d’autres outils pour mieux comprendre les failles potentielles.

  4. 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.

  5. 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

Protocole
Commande Exemple
Description

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

https://www.netexec.wiki/arrow-up-right

Liens utiles :

Mis à jour