Lance-toi en Ethical Hacking Fundamentals : ton premier pas concret aujourd'hui
Ethical Hacking Fundamentals : l'essentiel en un article — vrai code, schémas et étapes concrètes, extraits d'un cours de 42 leçons.
La meilleure façon d'apprendre Ethical Hacking Fundamentals, c'est de faire. Cet article te met le pied à l'étrier avec des extraits pratiques tirés d'un cours de 42 leçons — de quoi obtenir un premier résultat dès aujourd'hui.
- Preparer son laboratoire
- Decouvrir le Hacking Ethique
- Reconnaissance et OSINT
- Scanning et enumeration
- Exploitation des vulnerabilites
Énumération des services (SMB, FTP, SSH, HTTP)
Objectifs pédagogiques
1. Pourquoi énumérer les services ?
Après le scanning (Nmap), on sait quels ports sont ouverts et quels services écoutent. L’énumération va plus loin : elle interroge chaque service pour extraire des informations structurées utiles à l’exploitation.
🔍 Ce qu’on cherche
🎯 Ce qu’on fait ensuite
🛠 Outils par service
2. Énumération SMB — Le service le plus vulnérable
SMB (Server Message Block) est le protocole de partage de fichiers et d’imprimantes de Windows. Il est à l’origine de certaines des vulnérabilités les plus dévastatrices de l’histoire (EternalBlue, WannaCry). Son énumération révèle très souvent des informations précieuses.
2.1 enum4linux — L’outil tout-en-un
# Énumération complète avec enum4linux enum4linux -a 192.168.1.20 # Options détaillées : # -a : tout (all) - équivalent à -U -S -G -P -r -o -n -i # -U : liste des utilisateurs # -S : liste des partages # -G : liste des groupes # -P : politiques de mot de passe # -r : énumération RID (identifiants) # -o : informations OS # -n : recherche NetBIOS # -i : informations d’imprimantes # Avec authentification (si credentials connus) enum4linux -u "utilisateur" -p "motdepasse" -a 192.168.1.20 # Version améliorée (enum4linux-ng) enum4linux-ng -A 192.168.1.20 enum4linux-ng -A -oJ rapport 192.168.1.20 # Sortie JSON
2.2 Interprétation des résultats enum4linux
Exemple de sortie enum4linux sur Metasploitable2 :
[*] Getting domain SID for 192.168.1.20
[+] Host is part of a workgroup (not a domain)
[*] Enumerating Workgroup/Domain on 192.168.1.20
[+] Got domain/workgroup name: WORKGROUP
[*] Getting OS information for 192.168.1.20
[+] Got OS info for 192.168.1.20 from smbclient:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
<-- Samba 3.0.20 = CVE-2007-2447 (username map script) !
[+] Enumerating users using SID S-1-5-21-... and logon username '', password ''
S-1-5-21-...-500 METASPLOITABLE\Administrator (Local User)
S-1-5-21-...-501 METASPLOITABLE\nobody (Local User)
S-1-5-21-...-1000 METASPLOITABLE\msfadmin (Local User) <-- Utilisateur cible !
[+] Enumerating shares on 192.168.1.20
//192.168.1.20/print$ Printer Drivers
//192.168.1.20/tmp oh noes! <-- Partage tmp, probablement accessible !
//192.168.1.20/opt opt
//192.168.1.20/IPC$ IPC Service (metasploitable server)
//192.168.1.20/ADMIN$ IPC Service
[+] Password Info for Domain: METASPLOITABLE
[+] Minimum password length: 5 <-- Politique faible !
[+] Password history length: None
[+] Account lockout threshold: None <-- Pas de lockout = brute force possible !2.3 smbclient — Accès aux partages
# Lister les partages disponibles (accès anonyme) smbclient -L //192.168.1.20 -N # -L : list shares # -N : no password (accès anonyme) # Lister les partages avec utilisateur smbclient -L //192.168.1.20 -U "utilisateur" # Se connecter à un partage spécifique smbclient //192.168.1.20/tmp -N # Commandes utiles dans smbclient : smbclient //192.168.1.20/tmp -N -c "ls" # Lister le contenu smbclient //192.168.1.20/tmp -N -c "get fichier.txt" # Télécharger un fichier smbclient //192.168.1.20/tmp -N -c "put local.txt" # Uploader un fichier smbclient //192.168.1.20/tmp -N -c "dir" # Lister répertoire # Télécharger tout le contenu d’un partage smbclient //192.168.1.20/tmp -N \ -c "prompt OFF; recurse ON; mget *"
2.4 smbmap — Cartographie des permissions
# Vérifier les permissions sur tous les partages (anonyme) smbmap -H 192.168.1.20 # Avec authentification smbmap -H 192.168.1.20 -u "msfadmin" -p "msfadmin" # Lister le contenu d’un partage spécifique smbmap -H 192.168.1.20 -r "tmp" # Chercher des fichiers spécifiques smbmap -H 192.168.1.20 -u "msfadmin" -p "msfadmin" \ -R --depth 5 # Exemple de sortie smbmap : # [+] Guest session IP: 192.168.1.20:445 # Disk Permissions Comment # ---- ----------- ------- # print$ NO ACCESS Printer Drivers # tmp READ, WRITE oh noes! <-- Accès total ! # opt NO ACCESS # IPC$ NO ACCESS IPC Service
2.5 Scripts Nmap pour SMB
# Détection de la version Samba/SMB nmap --script smb-os-discovery -p 139,445 192.168.1.20 # Énumération des utilisateurs nmap --script smb-enum-users -p 445 192.168.1.20 # Énumération des partages nmap --script smb-enum-shares -p 445 192.168.1.20 # Politiques de sécurité nmap --script smb-security-mode -p 445 192.168.1.20 # Détection EternalBlue (MS17-010) nmap --script smb-vuln-ms17-010 -p 445 192.168.1.20 # Détection MS08-067 (Conficker) nmap --script smb-vuln-ms08-067 -p 445 192.168.1.20 # Tout en une commande nmap --script "smb-*" -p 139,445 192.168.1.20
3. Énumération FTP
FTP (File Transfer Protocol) est un protocole de transfert de fichiers très répandu, hélas souvent mal configuré et non chiffré. Les accès anonymes et les versions vulnérables en font une cible privilégiée.
3.1 Connexion anonyme FTP
# Vérifier si l’accès anonyme est possible nmap --script ftp-anon -p 21 192.168.1.20 # Connexion manuelle avec le client FTP ftp 192.168.1.20 # User: anonymous (ou ftp) # Password: (n’importe quelle adresse email ou vide) # Si accès anonymous autorisé, commandes FTP utiles : ftp> ls -la # Lister tous les fichiers (y compris cachés) ftp> pwd # Répertoire courant ftp> cd / # Aller à la racine ftp> get fichier.txt # Télécharger un fichier ftp> mget *.txt # Télécharger plusieurs fichiers ftp> put local.txt # Uploader (si écriture permise) ftp> binary # Mode binaire (pour les fichiers non-texte) ftp> passive # Mode passif (si connexion directe impossible) ftp> quit # Se déconnecter # Accès anonyme avec wget (télécharger tout le contenu) wget -r --no-passive ftp://anonymous@192.168.1.20/
ARP Spoofing et empoisonnement du cache ARP
À la fin de cette leçon, vous serez capable de : comprendre le protocole ARP et ses faiblesses, réaliser une attaque ARP spoofing en laboratoire, utiliser arpspoof, ettercap et Bettercap, et mettre en place des contre-mesures efficaces.
1. Le protocole ARP : fonctionnement
ARP (Address Resolution Protocol) est un protocole de couche 2 (liaison de données) qui permet de résoudre une adresse IP en adresse MAC sur un réseau local. Sans ARP, les machines ne pourraient pas se parler directement même sur le même segment réseau.
📡 Requête ARP (ARP Request)
Une machine envoie un message broadcast sur tout le réseau :
« Qui a l’IP 192.168.1.1 ? Dites-le à 192.168.1.10 »
Ce message est envoyé à l’adresse MAC de diffusion : FF:FF:FF:FF:FF:FF
📢 Réponse ARP (ARP Reply)
La machine cible répond en unicast :
« C’est moi ! Mon adresse MAC est AA:BB:CC:DD:EE:FF »
La machine émettrice stocke cette association dans son cache ARP.
ARP est un protocole sans état et sans authentification. N’importe quelle machine peut envoyer une réponse ARP, même sans avoir reçu de requête. C’est ce qu’on appelle un « ARP gratuit » (Gratuitous ARP).
2. Le cache ARP
Chaque machine maintient un cache ARP : une table qui associe des adresses IP à des adresses MAC. Cette table a une durée de vie limitée (généralement 2 minutes sous Linux, 10 minutes sous Windows).
Consulter le cache ARP
# Sur Linux arp -a # Affichage détaillé arp -n # Avec ip neigh (plus moderne) ip neigh show # Sur Windows arp -a
Exemple de sortie sur Linux :
? (192.168.1.1) at aa:bb:cc:dd:ee:ff [ether] on eth0 ? (192.168.1.20) at 11:22:33:44:55:66 [ether] on eth0 ? (192.168.1.30) at de:ad:be:ef:ca:fe [ether] on eth0
Sur Kali Linux, utilisez
ip neigh show plutôt que arp -a : la commande ip fait partie du paquet iproute2 et est plus moderne et complète.3. L’attaque ARP Spoofing : principe
L’ARP Spoofing (ou ARP Poisoning) consiste à envoyer de faux paquets ARP sur le réseau local afin d’associer l’adresse MAC de l’attaquant à l’adresse IP d’une autre machine (généralement la passerelle).
Cette attaque est illégale sur tout réseau sans autorisation explicite. Pratiquez uniquement dans votre laboratoire virtuel avec Kali Linux et Metasploitable.
Scénario type d’une attaque MITM via ARP Spoofing
🆕 Étape 1 : État normal
La victime (192.168.1.10) communique normalement avec la passerelle (192.168.1.1).
Cache ARP victime :192.168.1.1 → aa:bb:cc:11:22:33
⚡ Étape 2 : Empoisonnement
L’attaquant envoie de faux ARP Reply :
— À la victime : « 192.168.1.1 = ma MAC »
— À la passerelle : « 192.168.1.10 = ma MAC »
Reconnaissance passive — WHOIS, DNS, Google Dorks
Objectifs pédagogiques
1. Reconnaissance passive vs active
La phase de reconnaissance est la première étape de la méthodologie de pentest. Elle consiste à collecter des informations sur la cible avant toute tentative d’exploitation. On distingue deux types fondamentaux :
🔐 Reconnaissance passive
Définition : Collecte d’informations sans interaction directe avec les systèmes de la cible. On utilise des sources publiquement disponibles (OSINT).
🔹 Reconnaissance active
Définition : Interaction directe avec les systèmes de la cible pour recueillir des informations en temps réel.
2. WHOIS — Informations sur les domaines
Le protocole WHOIS permet d’interroger des bases de données publiques contenant les informations d’enregistrement des noms de domaine et des adresses IP. C’est souvent la première commande exécutée lors d’une reconnaissance.
2.1 Commandes WHOIS essentielles
# Recherche WHOIS de base sur un domaine whois example.com # WHOIS sur une adresse IP (révèle l’organisation propriétaire) whois 93.184.216.34 # WHOIS en utilisant un serveur spécifique whois -h whois.arin.net 8.8.8.8 # Filtrer les résultats importants avec grep whois example.com | grep -i "registrar\|name server\|creation\|expir\|email" # WHOIS en ligne de commande sur Windows (via Sysinternals) whois.exe example.com
2.2 Données importantes dans un résultat WHOIS
| Champ WHOIS | Signification | Intérêt pour le pentester |
|---|---|---|
| Registrar | Bureau d’enregistrement utilisé | Identifier le fournisseur DNS, possibilités de social engineering |
| Registrant Name / Org | Nom et organisation du propriétaire | Nom réel, organisation mère, contacts |
| Admin Email | Email de l’administrateur | Cible potentielle de phishing, format des emails internes |
| Name Servers | Serveurs DNS autoritaires | Identifier les DNS pour attaques de transfert de zone |
| Creation Date | Date de création du domaine | Ancienneté de l’organisation, historique |
| Expiration Date | Date d’expiration | Possibilité de rachat de domaine expiré |
| Updated Date | Dernière mise à jour | Activité récente sur le domaine |
| DNSSEC | Sécurité DNS activée ou non | Présence ou absence de protection contre le cache poisoning |
2.3 Outils web WHOIS alternatifs
🌎 who.is
Interface web complète avec historique WHOIS et informations complémentaires sur l’hébergeur.
🌐 DomainTools
Historique WHOIS, reverse WHOIS (trouver tous les domaines d’une personne), corrélation de données.
🔍 ViewDNS.info
Multiples outils DNS et WHOIS, reverse IP lookup, historique DNS.
3. DNS — Interrogation du Système de Noms de Domaine
Le DNS (Domain Name System) est un système distribué qui traduit les noms de domaine en adresses IP. Pour un pentester, il constitue une mine d’informations sur l’infrastructure cible.
Cet article couvre les extraits les plus utiles — le cours complet Ethical Hacking Fundamentals (12 chapitres, 42 leçons, exercices corrigés et projet final) t'emmène jusqu'au bout.
./acceder-au-cours-complet cours gratuit : Maîtriser Claude CodeFAQ
Combien de temps pour apprendre Ethical Hacking Fundamentals ?
Faut-il des prérequis ?
Par où commencer concrètement ?
📬 Tu veux recevoir ce type de guide chaque semaine ? Abonne-toi gratuitement — code réel, zéro blabla.