Skip to main content

Campagne Red Team — Scénario RAT pupy

Cette campagne simule une intrusion réaliste sur la Cyber Range : compromission initiale par phishing, déploiement d'un RAT (pupy), établissement d'un canal de commande et contrôle (C2) chiffré, puis persistance. Elle vise à valider la chaîne de détection Wazuh et à produire des preuves exploitables en investigation.

1. Objectifs

  • Simuler une chaîne d'attaque complète et réaliste (pas seulement des attaques web isolées).
  • Valider les règles de détection personnalisées développées pour le projet (100100100150).
  • Produire un jeu de preuves pour l'investigation forensic.

2. Chaîne d'attaque (MITRE ATT&CK)

ÉtapeTechnique MITREAction
LivraisonT1566 — PhishingEmail piégé via GoPhish (Mailpit interne)
ExécutionT1204 — User ExecutionLa victime ouvre la pièce jointe / le lien
ImplantDéploiement du RAT pupy
C2T1071 — Application Layer ProtocolCanal C2 chiffré vers le serveur d'attaque
PersistanceT1547 / T1543 — Boot/Logon Autostart, systemdDrop-in systemd, autostart XDG, rc.local
ExfiltrationT1041 — Exfiltration Over C2Simulée via le canal C2

3. Environnement (Cyber Range)

ComposantRôle
GoPhish + MailpitInfrastructure de phishing interne
Serveur C2 pupyCommande et contrôle
cr-victim-01 / 02Postes Linux avec agent Wazuh
WazuhDétection (règles custom pupy)
Isolation

Le VLAN 100 (Cyber Range) applique un deny-all sortant : aucun egress Internet, pas de propagation hors du périmètre de test. L'infrastructure de phishing est interne (Mailpit), aucun email réel n'est émis.

4. Déroulement

Phase 1 — Livraison (phishing)

Un email piégé est envoyé via GoPhish à la victime.

📷 Capture — Campagne GoPhish

Phase 2 — Exécution & implant

La victime déclenche la charge, le RAT pupy s'exécute et établit le canal C2.

Artefacts déposés :

/usr/bin/dcrond          (binaire malveillant masqué)
/lib/libxstat.so.1 (shared object masqué)
~/.config/autostart/dbus-update.desktop (persistance)

Phase 3 — C2 & persistance

Le canal C2 chiffré est établi. La persistance est installée (drop-in systemd / autostart / rc.local).

📷 Capture — Session C2 pupy active

5. Détection Wazuh — règles déclenchées

Les règles personnalisées du projet détectent les IOC pupy à chaque étape :

RègleNiveauDétecte
10010012Dépôt d'un binaire malveillant connu (dcrond, libflushplugin.so...)
10010112Shared object masqué dans un répertoire système (lib{RAND}.so.1)
10010210Fichier déposé dans un répertoire utilisateur de masquage
10011012Drop-in systemd suspect (persistance)
10011112Entrée XDG autostart suspecte
10011212Modification d'un script d'init (rc.local)
10012010Processus masqué (compiz) détecté
10015014INCIDENT — corrélation de plusieurs IOC pupy (RAT actif)

La règle 100150 est la clé : elle corréle plusieurs IOC de même source dans une fenêtre de 600 s pour élever un incident de niveau 14. C'est la différence entre une alerte isolée et un incident qualifié.

📷 Capture — Alerte incident 100150 dans le dashboard Wazuh

6. Traces attendues par cible

CibleÉvénements
cr-victim-01Exécution pupy, C2, persistance systemd, IOC fichiers
cr-victim-02Idem (seconde victime)
WazuhRègles 100100100112 puis corrélation 100150

7. Conclusion

Cette campagne reproduit une intrusion complète et moderne (RAT + C2 + persistance), bien plus représentative qu'une simple attaque web. Elle valide directement les règles de détection développées pour le projet et alimente l'investigation forensic (voir le rapport d'investigation associé).