# Mythic
Che cos'è Mythic?
Mythic è un framework open-source e modulare di comando e controllo (C2) progettato per il red teaming. Permette ai professionisti della sicurezza di gestire e distribuire vari agenti (payload) su diversi sistemi operativi, tra cui Windows, Linux e macOS. Mythic fornisce un'interfaccia web user-friendly per gestire gli agenti, eseguire comandi e raccogliere risultati, rendendolo uno strumento potente per simulare attacchi del mondo reale in un ambiente controllato.
Installazione
Per installare Mythic, segui le istruzioni nel repository ufficiale di Mythic.
Agenti
Mythic supporta più agenti, che sono i payload che eseguono compiti sui sistemi compromessi. Ogni agente può essere personalizzato in base a esigenze specifiche e può funzionare su diversi sistemi operativi.
Per impostazione predefinita, Mythic non ha agenti installati. Tuttavia, offre alcuni agenti open source in https://github.com/MythicAgents.
Per installare un agente da quel repository, devi solo eseguire:
sudo ./mythic-cli install github https://github.com/MythicAgents/<agent-name>
sudo ./mythic-cli install github https://github.com/MythicAgents/apfell
Puoi aggiungere nuovi agenti con il comando precedente anche se Mythic è già in esecuzione.
Profili C2
I profili C2 in Mythic definiscono come gli agenti comunicano con il server Mythic. Specificano il protocollo di comunicazione, i metodi di crittografia e altre impostazioni. Puoi creare e gestire profili C2 tramite l'interfaccia web di Mythic.
Per impostazione predefinita, Mythic è installato senza profili, tuttavia, è possibile scaricare alcuni profili dal repo https://github.com/MythicC2Profiles eseguendo:
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/<c2-profile>>
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/http
Apollo Agent
Apollo è un agente Windows scritto in C# utilizzando il .NET Framework 4.0 progettato per essere utilizzato nelle offerte di formazione di SpecterOps.
Installalo con:
./mythic-cli install github https://github.com/MythicAgents/Apollo.git
Questo agente ha molti comandi che lo rendono molto simile al Beacon di Cobalt Strike con alcune aggiunte. Tra questi, supporta:
Azioni comuni
cat
: Stampa il contenuto di un filecd
: Cambia la directory di lavoro correntecp
: Copia un file da una posizione a un'altrals
: Elenca file e directory nella directory corrente o nel percorso specificatopwd
: Stampa la directory di lavoro correnteps
: Elenca i processi in esecuzione sul sistema target (con informazioni aggiuntive)download
: Scarica un file dal sistema target alla macchina localeupload
: Carica un file dalla macchina locale al sistema targetreg_query
: Interroga chiavi e valori del registro sul sistema targetreg_write_value
: Scrive un nuovo valore a una chiave di registro specificatasleep
: Cambia l'intervallo di sonno dell'agente, che determina con quale frequenza controlla il server Mythic- E molti altri, usa
help
per vedere l'elenco completo dei comandi disponibili.
Escalation dei privilegi
getprivs
: Abilita il maggior numero possibile di privilegi sul token del thread correntegetsystem
: Apre un handle a winlogon e duplica il token, aumentando effettivamente i privilegi a livello SYSTEMmake_token
: Crea una nuova sessione di accesso e la applica all'agente, consentendo l'impersonificazione di un altro utentesteal_token
: Ruba un token primario da un altro processo, consentendo all'agente di impersonare l'utente di quel processopth
: Attacco Pass-the-Hash, che consente all'agente di autenticarsi come un utente utilizzando il proprio hash NTLM senza bisogno della password in chiaromimikatz
: Esegue comandi Mimikatz per estrarre credenziali, hash e altre informazioni sensibili dalla memoria o dal database SAMrev2self
: Ripristina il token dell'agente al suo token primario, riducendo effettivamente i privilegi al livello originaleppid
: Cambia il processo padre per i lavori di post-exploitation specificando un nuovo ID processo padre, consentendo un migliore controllo sul contesto di esecuzione del lavoroprintspoofer
: Esegue comandi PrintSpoofer per bypassare le misure di sicurezza dello spooler di stampa, consentendo l'escalation dei privilegi o l'esecuzione di codicedcsync
: Sincronizza le chiavi Kerberos di un utente sulla macchina locale, consentendo il cracking delle password offline o ulteriori attacchiticket_cache_add
: Aggiunge un biglietto Kerberos alla sessione di accesso corrente o a una specificata, consentendo il riutilizzo del biglietto o l'impersonificazione
Esecuzione dei processi
assembly_inject
: Consente di iniettare un loader di assembly .NET in un processo remotoexecute_assembly
: Esegue un assembly .NET nel contesto dell'agenteexecute_coff
: Esegue un file COFF in memoria, consentendo l'esecuzione in memoria di codice compilatoexecute_pe
: Esegue un eseguibile non gestito (PE)inline_assembly
: Esegue un assembly .NET in un AppDomain usa e getta, consentendo l'esecuzione temporanea di codice senza influenzare il processo principale dell'agenterun
: Esegue un binario sul sistema target, utilizzando il PATH del sistema per trovare l'eseguibileshinject
: Inietta shellcode in un processo remoto, consentendo l'esecuzione in memoria di codice arbitrarioinject
: Inietta shellcode dell'agente in un processo remoto, consentendo l'esecuzione in memoria del codice dell'agentespawn
: Genera una nuova sessione dell'agente nell'eseguibile specificato, consentendo l'esecuzione di shellcode in un nuovo processospawnto_x64
espawnto_x86
: Cambia il binario predefinito utilizzato nei lavori di post-exploitation a un percorso specificato invece di utilizzarerundll32.exe
senza parametri, che è molto rumoroso.
Mithic Forge
Questo consente di caricare file COFF/BOF dalla Mythic Forge, che è un repository di payload e strumenti precompilati che possono essere eseguiti sul sistema target. Con tutti i comandi che possono essere caricati sarà possibile eseguire azioni comuni eseguendoli nel processo corrente dell'agente come BOF (più stealth di solito).
Inizia a installarli con:
./mythic-cli install github https://github.com/MythicAgents/forge.git
Poi, usa forge_collections
per mostrare i moduli COFF/BOF dal Mythic Forge per poterli selezionare e caricare nella memoria dell'agente per l'esecuzione. Per impostazione predefinita, le seguenti 2 collezioni sono aggiunte in Apollo:
forge_collections {"collectionName":"SharpCollection"}
forge_collections {"collectionName":"SliverArmory"}
Dopo che un modulo è stato caricato, apparirà nell'elenco come un altro comando come forge_bof_sa-whoami
o forge_bof_sa-netuser
.
Esecuzione di Powershell e scripting
powershell_import
: Importa un nuovo script PowerShell (.ps1) nella cache dell'agente per un'esecuzione successivapowershell
: Esegue un comando PowerShell nel contesto dell'agente, consentendo scripting avanzato e automazionepowerpick
: Inietta un'assembly loader PowerShell in un processo sacrificabile ed esegue un comando PowerShell (senza logging di PowerShell).psinject
: Esegue PowerShell in un processo specificato, consentendo l'esecuzione mirata di script nel contesto di un altro processoshell
: Esegue un comando shell nel contesto dell'agente, simile all'esecuzione di un comando in cmd.exe
Movimento Laterale
jump_psexec
: Usa la tecnica PsExec per muoversi lateralmente verso un nuovo host copiando prima l'eseguibile dell'agente Apollo (apollo.exe) ed eseguendolo.jump_wmi
: Usa la tecnica WMI per muoversi lateralmente verso un nuovo host copiando prima l'eseguibile dell'agente Apollo (apollo.exe) ed eseguendolo.wmiexecute
: Esegue un comando sul sistema locale o remoto specificato utilizzando WMI, con credenziali opzionali per impersonificazione.net_dclist
: Recupera un elenco di controller di dominio per il dominio specificato, utile per identificare potenziali obiettivi per il movimento laterale.net_localgroup
: Elenca i gruppi locali sul computer specificato, predefinito a localhost se non viene specificato alcun computer.net_localgroup_member
: Recupera l'appartenenza ai gruppi locali per un gruppo specificato sul computer locale o remoto, consentendo l'enumerazione degli utenti in gruppi specifici.net_shares
: Elenca le condivisioni remote e la loro accessibilità sul computer specificato, utile per identificare potenziali obiettivi per il movimento laterale.socks
: Abilita un proxy conforme a SOCKS 5 sulla rete target, consentendo il tunneling del traffico attraverso l'host compromesso. Compatibile con strumenti come proxychains.rpfwd
: Inizia ad ascoltare su una porta specificata sull'host target e inoltra il traffico attraverso Mythic a un IP e una porta remoti, consentendo l'accesso remoto ai servizi sulla rete target.listpipes
: Elenca tutte le pipe nominate sul sistema locale, che possono essere utili per il movimento laterale o l'escalation dei privilegi interagendo con i meccanismi IPC.
Comandi Vari
help
: Mostra informazioni dettagliate su comandi specifici o informazioni generali su tutti i comandi disponibili nell'agente.clear
: Segna i compiti come 'puliti' in modo che non possano essere ripresi dagli agenti. Puoi specificareall
per pulire tutti i compiti otask Num
per pulire un compito specifico.
Poseidon Agent
Poseidon è un agente Golang che si compila in eseguibili Linux e macOS.
./mythic-cli install github https://github.com/MythicAgents/Poseidon.git
Quando si utilizza Linux, ci sono alcuni comandi interessanti:
Azioni comuni
cat
: Stampa il contenuto di un filecd
: Cambia la directory di lavoro correntechmod
: Cambia i permessi di un fileconfig
: Visualizza la configurazione attuale e le informazioni sull'hostcp
: Copia un file da una posizione a un'altracurl
: Esegue una singola richiesta web con intestazioni e metodo opzionaliupload
: Carica un file sul targetdownload
: Scarica un file dal sistema target alla macchina locale- E molti altri
Cerca informazioni sensibili
triagedirectory
: Trova file interessanti all'interno di una directory su un host, come file sensibili o credenziali.getenv
: Ottieni tutte le variabili ambientali correnti.
Spostati lateralmente
ssh
: SSH su host utilizzando le credenziali designate e apri un PTY senza avviare ssh.sshauth
: SSH su host specificati utilizzando le credenziali designate. Puoi anche usarlo per eseguire un comando specifico sui host remoti tramite SSH o usarlo per SCP file.link_tcp
: Collega un altro agente tramite TCP, consentendo comunicazioni dirette tra agenti.link_webshell
: Collega un agente utilizzando il profilo P2P webshell, consentendo l'accesso remoto all'interfaccia web dell'agente.rpfwd
: Avvia o ferma un Reverse Port Forward, consentendo l'accesso remoto ai servizi sulla rete target.socks
: Avvia o ferma un proxy SOCKS5 sulla rete target, consentendo il tunneling del traffico attraverso l'host compromesso. Compatibile con strumenti come proxychains.portscan
: Scansiona host per porte aperte, utile per identificare potenziali obiettivi per movimenti laterali o ulteriori attacchi.
Esecuzione di processi
shell
: Esegue un singolo comando shell tramite /bin/sh, consentendo l'esecuzione diretta di comandi sul sistema target.run
: Esegue un comando dal disco con argomenti, consentendo l'esecuzione di binari o script sul sistema target.pty
: Apri un PTY interattivo, consentendo un'interazione diretta con la shell sul sistema target.