
Framework C2 dead-drop cloud — RSA-4096 + AES-256-GCM, 5 fournisseurs cloud, agents uniquement en Rust, maillage P2P, moteur de persistance, collecte d'identifiants
Framework de persistance cloud · v3.0.2
Un point d'ancrage de repli qui passe par une infrastructure que les défenseurs ne peuvent pas bloquer.
Votre C2 principal devient silencieux. Le domaine est mis sur liste noire. Le beacon est signalé. L'EDR tue le processus. Vous êtes à court.
Vous avez besoin d'un second canal — un canal qui n'allait de toute façon jamais être bloqué.
Et si le trafic de commande et contrôle ressemblait exactement à un employé qui synchronise des fichiers vers Dropbox ?
C'est ça, Stratum. Les commandes et les réponses circulent sous forme de fichiers ordinaires dans un dossier de stockage cloud. L'agent ne se connecte jamais à une infrastructure d'attaquant. Le seul trafic observable est du HTTPS vers un fournisseur déjà autorisé par le pare-feu de la cible — car bloquer Dropbox ou OneDrive revient à bloquer chaque employé qui l'utilise.
Pas de teamserver. Pas de domaine appartenant à l'attaquant. Pas de certificat TLS suspect. Rien à bloquer.
OPERATOR CLOUD PROVIDER TARGET
──────── ───────────── ──────
/Machine1/
WebGUI ──HTTPS──► input.txt 🔒 ◄── poll ── agent
output.txt 🔒 ──► read ──┘
heartbeat.txt (encrypted beacon)
L'agent se réveille à un intervalle configurable (+ gigue log-normale), lit le fichier d'entrée, exécute, chiffre la réponse, la téléverse, puis se met en veille. Tout est chiffré de bout en bout avec RSA-4096-OAEP + AES-256-GCM. L'IP de l'opérateur n'apparaît jamais dans aucun journal réseau côté cible.
| Fournisseur | Notes | |
|---|---|---|
| Dropbox | Jeton de rafraîchissement OAuth2 · Comptes professionnels et personnels | |
| Microsoft OneDrive | API Microsoft Graph · Comptes personnels et M365 | |
| Google Drive | API Google Drive v3 · Flux de service OAuth2 | |
| SharePoint Online | API Microsoft Graph · Sites de locataires M365 | |
| Compatible S3 | AWS S3 · DigitalOcean Spaces · Backblaze B2 · tout endpoint S3 |
Les cinq partagent le même format de transmission, la même paire de clés RSA et la même session opérateur. Changez de fournisseur en cours d'engagement en quelques minutes sans toucher à l'agent. Aucun autre framework open-source ne propose cela nativement.
Un SOC qui veut arrêter un C2 bloque le domaine du teamserver ou l'infrastructure frontée. Un SOC qui veut arrêter Stratum doit bloquer simultanément Dropbox, OneDrive, Google Drive, SharePoint et S3. Ce n'est pas une règle de pare-feu — c'est une décision commerciale qu'aucune entreprise ne prendra. L'architecture dead-drop ne cherche pas à échapper à la détection. Elle opère sur une infrastructure que le défenseur a déjà décidé de faire confiance, de façon permanente.
| Format | Plateforme | Dépendances |
|---|---|---|
.exe / .dll | Windows | Aucune — PE compilé en Rust (ABI MSVC), pas d'interpréteur, pas de PowerShell dans l'arborescence des processus |
.elf | Linux | Aucune — compilé en Rust musl-static, fonctionne sur tout Linux x86_64 |
.bin | Linux / Windows | Shellcode PIC x64 — à déposer dans n'importe quel loader ou injecteur externe |
L'assistant les génère tous. Vous répondez aux invites ; il compile, chiffre et empaquette. Pas de flags de compilateur, pas de variables d'environnement, pas de gestion manuelle des clés.
| Mode | Fonctionnement | Idéal pour |
|---|---|---|
| staged-enc | Stub minimal sur la cible. Au premier lancement : récupère une clé de bootstrap à usage unique depuis le cloud, déchiffre l'agent complet en mémoire, supprime la clé du cloud. La charge utile ne touche jamais le disque en clair. | Engagements standards — plus petit artefact initial, clé détruite à la livraison |
| stageless-enc | Agent complet intégré dans un seul fichier de livraison, chiffré avec une clé intégrée au stub. Aucune récupération de clé cloud nécessaire après la livraison. | Réseaux isolés ou restreints — fichier unique autonome |
| stageless-plain | Agent en clair. Les commandes et réponses restent entièrement chiffrées en transit. | Labs et environnements contrôlés |
Tous les modes partagent le même comportement post-exécution : le stub met en cache localement un blob chiffré empreinté de l'empreinte matérielle (HW) afin que les exécutions suivantes chargent depuis le disque sans toucher au cloud.
Avant de toucher à la moindre clé de registre ou entrée cron, exécutez /persist probe. L'agent teste chaque technique disponible au niveau de privilège actuel et renvoie un rapport de faisabilité. Non destructif — aucun artefact laissé derrière.
/persist probe
✓ schtask-logon — feasible (SYSTEM)
✓ registry-run — feasible
✗ schtask-boot — requires elevation
✓ startup-folder — feasible
...
Choisissez ce qui fonctionne, installez-le, retirez-le proprement une fois terminé. Le WebGUI suit chaque technique installée par session. /kill démonte tout — persistance, binaire, artefacts cloud — en une seule commande.
Date de fin, fenêtre de maintenance, gigue log-normale, clé d'amorçage à usage unique — tout est configuré une fois dans l'assistant et compilé définitivement dans l'agent. Rien à gérer pendant l'engagement, rien à oublier de nettoyer à la fin.
Stratum ne remplace pas Cobalt Strike, Sliver ou Havoc. C'est la couche située sous eux.