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.

Lance-toi en Ethical Hacking Fundamentals : ton premier pas concret aujourd'hui

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.

tl;dr
  • Preparer son laboratoire
  • Decouvrir le Hacking Ethique
  • Reconnaissance et OSINT
  • Scanning et enumeration
  • Exploitation des vulnerabilites
~$ cat ./parcours.md # Ethical Hacking Fundamentals — 11 chapitres
01
Préparer son laboratoire
→ Télécharger Kali Linux et VirtualBox→ Créer la VM Kali et les machines cibles+ 1 autres leçons
02
Découvrir le Hacking Éthique
→ C’est quoi le hacking éthique et pourquoi l’apprendre ?→ Cadre légal, certifications et méthodologies+ 1 autres leçons
03
Reconnaissance et OSINT
→ Reconnaissance passive — WHOIS, DNS, Google Dorks→ OSINT avancé — Shodan, theHarvester et Maltego+ 1 autres leçons
04
Scanning et énumération
→ Nmap — Scans de ports et détection de services→ Énumération des services (SMB, FTP, SSH, HTTP)+ 2 autres leçons
05
Exploitation des vulnérabilités
→ Introduction à Metasploit Framework→ Exploiter Metasploitable : vsftpd et EternalBlue+ 1 autres leçons
06
Post-exploitation et persistance
→ Escalade de privilèges Linux et Windows→ Pivoting, port forwarding et mouvement latéral+ 1 autres leçons
07
Attaques sur les applications Web
→ OWASP Top 10 : les vulnérabilités web les plus critiques→ Injection SQL : détection et exploitation+ 2 autres leçons
08
Attaques réseaux et Man-in-the-Middle
→ ARP Spoofing et empoisonnement du cache ARP→ Sniffing du trafic réseau avec Wireshark+ 1 autres leçons
🏁
Projet final (+ 3 chapitres en chemin)
→ Tu repars avec un projet concret et démontrable

Énumération des services (SMB, FTP, SSH, HTTP)

NOTEObjectif — Maîtriser l’énumération approfondie des services réseau les plus courants — SMB, FTP, SSH, HTTP et SNMP — pour extraire le maximum d’informations exploitables avant la phase d’exploitation.

Objectifs pédagogiques

TIPÀ l’issue de ce module — Vous serez capable d’énumérer chaque service découvert par Nmap pour extraire utilisateurs, partages, versions et configurations — la base de toute phase d’exploitation réussie.

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

bash
# É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

output
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

bash
# 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

bash
# 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

bash
# 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

bash
# 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

NOTE🔎 Objectifs pédagogiques
À 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.

NOTE⚠️ Faiblesse fondamentale d’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

bash
# 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 :

output
? (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
TIP💡 Astuce
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).

WARNING🚨 Attention – Labo uniquement
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

NOTEObjectif — Maîtriser les techniques de reconnaissance passive permettant de collecter un maximum d’informations sur une cible sans jamais établir de contact direct avec ses systèmes. Ces techniques sont légales, discrètes et constituent la première étape de tout test d’intrusion professionnel.

Objectifs pédagogiques

TIPÀ l’issue de ce module — Vous serez capable d’effectuer une reconnaissance passive complète sur n’importe quel domaine, d’analyser des données WHOIS, d’interroger le DNS et d’utiliser les Google Dorks pour trouver des informations sensibles exposées publiquement.

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.

WARNING⚠ Rappel légal — Même la reconnaissance passive peut devenir illégale si elle est utilisée dans une intention malveillante. Effectuez toujours ces opérations dans le cadre d’un mandat écrit ou sur vos propres systèmes. Dans ce cours, nous utilisons des domaines de démonstration comme example.com.

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

bash
# 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 WHOISSignificationIntérêt pour le pentester
RegistrarBureau d’enregistrement utiliséIdentifier le fournisseur DNS, possibilités de social engineering
Registrant Name / OrgNom et organisation du propriétaireNom réel, organisation mère, contacts
Admin EmailEmail de l’administrateurCible potentielle de phishing, format des emails internes
Name ServersServeurs DNS autoritairesIdentifier les DNS pour attaques de transfert de zone
Creation DateDate de création du domaineAncienneté de l’organisation, historique
Expiration DateDate d’expirationPossibilité de rachat de domaine expiré
Updated DateDernière mise à jourActivité récente sur le domaine
DNSSECSécurité DNS activée ou nonPrésence ou absence de protection contre le cache poisoning
NOTE💡 WHOIS Privacy — De nombreux registraires proposent un service de protection WHOIS (privacy shield) qui remplace les informations réelles du propriétaire par celles d’un proxy. Cela ne signifie pas que la cible est inatteignable — d’autres techniques OSINT permettent de contourner cette protection.

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.

va-plus-loin

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 Code

FAQ

Combien de temps pour apprendre Ethical Hacking Fundamentals ?
Avec une progression structurée (12 chapitres, 42 leçons courtes et pratiques), on atteint un niveau opérationnel en quelques semaines à raison de 30 à 60 minutes par jour. L'important est de pratiquer chaque notion immédiatement.
Faut-il des prérequis ?
Mieux vaut être à l'aise avec les fondamentaux du domaine : ce contenu va en profondeur, avec des cas réels.
Par où commencer concrètement ?
Reproduis les commandes de cet article, puis suis le cours complet Ethical Hacking Fundamentals : il enchaîne les 42 leçons dans l'ordre, avec exercices et projet final.

📬 Tu veux recevoir ce type de guide chaque semaine ? Abonne-toi gratuitement — code réel, zéro blabla.