Fawkes est un agent Mythic C2 en golang exclusivement écrit par IA.
Fawkes est un agent Mythic C2 entièrement vibe-coded. Cela a commencé comme un « je me demande » et est devenu un objectif. Mon objectif est de ne pas écrire une seule ligne de code pour cet agent, mais plutôt de le produire exclusivement à partir d'une invite.
J'ai d'abord tenté d'écrire l'agent moi-même, mais après avoir cloné le conteneur d'exemple, lu la documentation de Mythic, regardé les vidéos YouTube de la série de développement et copié du code d'autres agents comme Merlin ou Freyja, j'ai décidé que je n'avais tout simplement pas le temps de développer mon propre agent. Mais pour une invite, j'ai le temps.
Fawkes est un agent basé sur Golang avec des capacités multiplateformes. Il prend en charge Windows (exécutables EXE, DLL et payloads shellcode), Linux (binaires ELF et bibliothèques partagées), et macOS (binaires Mach-O pour Intel et Apple Silicon). 213 commandes au total : 113 multiplateformes, 82 uniquement Windows, 21 uniquement Unix, 11 uniquement Linux, et 6 uniquement macOS (certaines commandes ont des implémentations spécifiques à la plateforme partageant un même nom visible par l'utilisateur, par ex. screenshot). Prend en charge la sortie HTTP et les liaisons peer-to-peer (P2P) TCP pour le pivotement interne.
Pour installer Fawkes, vous aurez besoin de Mythic installé sur un ordinateur distant. Vous trouverez les instructions d'installation pour Mythic sur la page du projet Mythic.
Depuis le répertoire d'installation de Mythic :``` ./mythic-cli install github https://github.com/galoryber/fawkes
## Référence rapide des commandesCommand | Syntax | Description
------- | ------ | -----------
acl-edit | `acl-edit -action read -server dc01 -target user` | Lire/modifier les DACL d'objets Active Directory (ajouter/supprimer des ACE, accorder DCSync, GenericAll, sauvegarde/restauration). Multi-plateforme (T1222.001, T1098, T1003.006).
adcs | `adcs -action <cas\|templates\|find\|request\|auto-exploit> -server <DC> -username <user@domain> -password <pass> [-ca_name <CA>] [-template <name>] [-alt_name <UPN>]` | Énumérer les services de certificats AD, trouver les modèles vulnérables (ESC1-ESC4, ESC6 via DCOM), demander des certificats via DCOM pour l'exploitation ESC1/ESC6, ou auto-exploitation (trouver → analyser → chaîne de demande). Multi-plateforme (T1649).
ads | `ads -action <write\|read\|list\|delete> -file <path> [-stream <name>] [-data <content>] [-hex true]` | **(Windows uniquement)** Gérer les flux de données alternatifs NTFS — écrire, lire, lister ou supprimer des flux de données cachés. Prend en charge le texte et le binaire encodé en hexadécimal. MITRE T1564.004.
amcache | `amcache -action <query\|search\|delete\|clear> [-name <pattern>] [-count <n>]` | Interroger et nettoyer les artefacts d'exécution judiciaire. Windows : Shimcache. Linux : recently-used.xbel, thumbnails, Tracker. macOS : recent items, KnowledgeC, quarantine (T1070.004).
apc-injection | `apc-injection [-method <apc\|hwbp>] -pid <PID> [-tid <TID>] [-target_api ntdll!NtDelayExecution] [-timeout_ms 30000]` | **(Windows uniquement)** Injection de processus distant. `-method apc` (défaut) place le shellcode via NtQueueApcThread dans un thread alertable (utilisez `ts` pour en trouver un). `-method hwbp` s'attache via DebugActiveProcess, définit un point d'arrêt matériel DR0 sur une API cible (défaut `ntdll!NtDelayExecution`), et redirige Rip vers le shellcode lorsque le point d'arrêt se déclenche — pas de TID requis, pas de file APC, pas de CreateRemoteThread (T1055.004, T1055).
audio-capture | `audio-capture [-duration 10] [-sample_rate 16000] [-channels 1] [-device default]` | Enregistrer l'audio du microphone et télécharger le fichier WAV. Windows (waveIn), Linux (arecord/parecord), macOS (rec/ffmpeg). Multi-plateforme (T1123).
auditpol | `auditpol -action <query\|disable\|enable\|stealth> [-category <name\|all>]` | **(Windows uniquement)** Interroger et modifier les politiques d'audit Windows. Désactiver la journalisation des événements de sécurité avant les opérations sensibles. Le mode furtif désactive les sous-catégories critiques pour la détection. Utilise l'API AuditQuerySystemPolicy (T1562.002).
argue | `argue -command "cmd.exe /c whoami" -spoof "cmd.exe /c echo hello"` | **(Windows uniquement)** Exécuter une commande avec des arguments de processus usurpés. Contre Sysmon Event ID 1 et la télémétrie de ligne de commande des EDR (T1564.010).
arp | `arp [-ip <subnet>]` ou `arp -action spoof -target <IP> -gateway <IP>` | Afficher la table ARP avec filtrage, ou empoisonnement du cache ARP pour un positionnement MITM (T1557.002). Spoof : Linux uniquement, restaure lors du nettoyage.
asrep-roast | `asrep-roast -server <DC> -username <user@domain> -password <pass> [-account <target>]` | Demander des tickets AS-REP pour les comptes sans pré-authentification et extraire les hachages au format hashcat pour craquage hors ligne. Auto-énumération via LDAP. Multi-plateforme (T1558.004).
av-detect | `av-detect [-deep true]` | Détecter les produits AV/EDR/sécurité installés en analysant les processus en cours d'exécution avec une base de signatures de 130+ entrées. Avec `--deep`, vérifie également les modules du noyau, les unités systemd et les répertoires de configuration pour les produits installés mais non exécutés (Linux). Signale le produit, le fournisseur, le type et le PID. Multi-plateforme.
autopatch | `autopatch <dll_name> <function_name> <num_bytes>` | **(Windows uniquement)** Patcher automatiquement une fonction en sautant vers le retour (C3) le plus proche. Utile pour les contournements d'AMSI/ETW.
base64 | `base64 -action <encode\|decode\|xor\|hex\|hex-decode\|rot13\|url\|url-decode\|caesar> -input <data> [-key <key>] [-shift <N>] [-file true] [-output <path>]` | Boîte à outils d'encodage de données : base64, XOR (avec clé chaîne/hex), hex, ROT13, encodage URL, chiffrement César. Tous prennent en charge les E/S fichiers. Multi-plateforme (T1132.001, T1140, T1027).
bits | `bits -action <list\|create\|persist\|cancel\|suspend\|resume\|complete> [-name <job>] [-url <URL>] [-path <local>] [-command <exe>]` | **(Windows uniquement)** Gérer les travaux de transfert BITS pour la persistance et le téléchargement furtif de fichiers. Créer, suspendre, reprendre, terminer des travaux et définir des commandes de notification pour la persistance. Les travaux survivent aux redémarrages (T1197).
browser | `browser [-action <passwords\|cookies\|history\|autofill\|bookmarks\|downloads>] [-browser <all\|chrome\|edge\|chromium\|firefox>]` | Récolter les données du navigateur depuis Chromium, Firefox et Safari. Historique, autocomplétion, favoris, téléchargements multi-plateforme. Mots de passe : Chromium (DPAPI/Keychain/GNOME Keyring), Firefox (déchiffrement NSS key4.db), Safari (macOS Keychain). Cookies Firefox sur toutes les plateformes. MITRE T1555.003, T1217.
cat | `cat <file>` ou `cat -path <file> -start N -end N -number true` | Afficher le contenu d'un fichier avec plage de lignes optionnelle, numérotation et protection de taille de 5 Mo.
cd | `cd <directory>` | Changer le répertoire de travail actuel.
chmod | `chmod -path <file> -mode <permissions> [-recursive true]` | Modifier les permissions d'un fichier/répertoire avec notation octale (755, 644) ou symbolique (+x, u+rw, go-w). Support récursif. Multi-plateforme (T1222).
chown | `chown -path <file> -owner <user> [-group <group>] [-recursive true]` | **(Linux/macOS uniquement)** Changer le propriétaire d'un fichier/répertoire par nom d'utilisateur/UID et groupe/GID. Support récursif (T1222).