Mythic
Reading time: 9 minutes
Wat is Mythic?
Mythic is 'n oopbron, modulaire bevel en beheer (C2) raamwerk ontwerp vir red teaming. Dit stel sekuriteitsprofessionals in staat om verskillende agente (payloads) oor verskillende bedryfstelsels, insluitend Windows, Linux, en macOS, te bestuur en te ontplooi. Mythic bied 'n gebruikersvriendelike webkoppelvlak vir die bestuur van agente, die uitvoering van opdragte, en die insameling van resultate, wat dit 'n kragtige hulpmiddel maak om werklike aanvalle in 'n beheerde omgewing te simuleer.
Installasie
Om Mythic te installeer, volg die instruksies op die amptelike Mythic repo.
Agente
Mythic ondersteun verskeie agente, wat die payloads is wat take op die gecompromitteerde stelsels uitvoer. Elke agent kan aangepas word vir spesifieke behoeftes en kan op verskillende bedryfstelsels loop.
Standaard het Mythic nie enige agente geïnstalleer nie. Dit bied egter 'n paar oopbron agente in https://github.com/MythicAgents.
Om 'n agent van daardie repo te installeer, moet jy net die volgende uitvoer:
sudo ./mythic-cli install github https://github.com/MythicAgents/<agent-name>
sudo ./mythic-cli install github https://github.com/MythicAgents/apfell
U kan nuwe agente byvoeg met die vorige opdrag selfs al is Mythic reeds aan die gang.
C2 Profiele
C2 profiele in Mythic definieer hoe agente met die Mythic bediener kommunikeer. Hulle spesifiseer die kommunikasieprotokol, versleutelingmetodes, en ander instellings. U kan C2 profiele skep en bestuur deur die Mythic webkoppelvlak.
Standaard word Mythic geïnstalleer sonder profiele, egter, dit is moontlik om 'n paar profiele van die repo https://github.com/MythicC2Profiles af te laai deur:
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/<c2-profile>>
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/http
Apollo Agent
Apollo is 'n Windows-agent geskryf in C# met die 4.0 .NET Framework wat ontwerp is om in SpecterOps opleidingsaanbiedinge gebruik te word.
Installeer dit met:
./mythic-cli install github https://github.com/MythicAgents/Apollo.git
Hierdie agent het 'n baie opdragte wat dit baie soortgelyk maak aan Cobalt Strike se Beacon met 'n paar ekstra's. Onder hulle ondersteun dit:
Algemene aksies
cat
: Druk die inhoud van 'n lêercd
: Verander die huidige werksgidscp
: Kopieer 'n lêer van een plek na 'n anderls
: Lys lêers en gidse in die huidige gids of gespesifiseerde padpwd
: Druk die huidige werksgidsps
: Lys lopende prosesse op die teikenstelsel (met bygevoegde inligting)download
: Laai 'n lêer van die teikenstelsel na die plaaslike masjien afupload
: Laai 'n lêer van die plaaslike masjien na die teikenstelsel opreg_query
: Vra registriesleutels en waardes op die teikenstelselreg_write_value
: Skryf 'n nuwe waarde na 'n gespesifiseerde registriesleutelsleep
: Verander die agent se slaapinterval, wat bepaal hoe gereeld dit met die Mythic bediener incheck- En nog ander, gebruik
help
om die volledige lys van beskikbare opdragte te sien.
Privilege escalasie
getprivs
: Aktiveer soveel privilige as moontlik op die huidige draadtokengetsystem
: Maak 'n handvatsel oop na winlogon en dupliceer die token, wat effektief privilige na die SYSTEM vlak verhoogmake_token
: Skep 'n nuwe aanmeldsessie en pas dit toe op die agent, wat die verpersoonliking van 'n ander gebruiker moontlik maaksteal_token
: Steel 'n primêre token van 'n ander proses, wat die agent toelaat om daardie proses se gebruiker te verpersoonlikpth
: Pass-the-Hash aanval, wat die agent toelaat om as 'n gebruiker te autentiseer met hul NTLM-hash sonder om die platte wagwoord te benodigmimikatz
: Voer Mimikatz-opdragte uit om akrediteer, hashes en ander sensitiewe inligting uit geheue of die SAM-databasis te onttrekrev2self
: Herstel die agent se token na sy primêre token, wat effektief privilige terug na die oorspronklike vlak laat daalppid
: Verander die ouer proses vir post-exploitatie take deur 'n nuwe ouer proses-ID te spesifiseer, wat beter beheer oor taakuitvoering konteks toelaatprintspoofer
: Voer PrintSpoofer-opdragte uit om druk spooler sekuriteitsmaatreëls te omseil, wat privilige eskalasie of kode-uitvoering moontlik maakdcsync
: Sinchroniseer 'n gebruiker se Kerberos sleutels na die plaaslike masjien, wat offline wagwoordkraking of verdere aanvalle moontlik maakticket_cache_add
: Voeg 'n Kerberos kaartjie by die huidige aanmeldsessie of 'n gespesifiseerde een, wat kaartjie hergebruik of verpersoonliking moontlik maak
Proses uitvoering
assembly_inject
: Laat toe om 'n .NET assembly loader in 'n afstand proses in te spuitexecute_assembly
: Voer 'n .NET assembly uit in die konteks van die agentexecute_coff
: Voer 'n COFF-lêer in geheue uit, wat in-geheue uitvoering van gecompileerde kode moontlik maakexecute_pe
: Voer 'n onbeheerde uitvoerbare (PE) uitinline_assembly
: Voer 'n .NET assembly uit in 'n weggooibare AppDomain, wat tydelike uitvoering van kode toelaat sonder om die agent se hoofproses te beïnvloedrun
: Voer 'n binêre op die teikenstelsel uit, met die stelsel se PATH om die uitvoerbare te vindshinject
: Spuit shellcode in 'n afstand proses, wat in-geheue uitvoering van arbitrêre kode moontlik maakinject
: Spuit agent shellcode in 'n afstand proses, wat in-geheue uitvoering van die agent se kode moontlik maakspawn
: Skep 'n nuwe agent sessie in die gespesifiseerde uitvoerbare, wat die uitvoering van shellcode in 'n nuwe proses moontlik maakspawnto_x64
enspawnto_x86
: Verander die standaard binêre wat in post-exploitatie take gebruik word na 'n gespesifiseerde pad in plaas van omrundll32.exe
sonder params te gebruik wat baie geraas maak.
Mithic Forge
Dit laat toe om COFF/BOF lêers van die Mythic Forge te laai, wat 'n repository van vooraf-gecompileerde payloads en gereedskap is wat op die teikenstelsel uitgevoer kan word. Met al die opdragte wat gelaai kan word, sal dit moontlik wees om algemene aksies uit te voer deur hulle in die huidige agent proses as BOFs uit te voer (meer stealth gewoonlik).
Begin om hulle te installeer met:
./mythic-cli install github https://github.com/MythicAgents/forge.git
Dan, gebruik forge_collections
om die COFF/BOF modules van die Mythic Forge te wys sodat jy dit kan kies en in die agent se geheue kan laai vir uitvoering. Standaard word die volgende 2 versamelings in Apollo bygevoeg:
forge_collections {"collectionName":"SharpCollection"}
forge_collections {"collectionName":"SliverArmory"}
Nadat een module gelaai is, sal dit in die lys verskyn as 'n ander opdrag soos forge_bof_sa-whoami
of forge_bof_sa-netuser
.
Powershell & skrip uitvoering
powershell_import
: Importeer 'n nuwe PowerShell skrip (.ps1) in die agent kas vir latere uitvoeringpowershell
: Voer 'n PowerShell opdrag uit in die konteks van die agent, wat geavanceerde skripting en outomatisering moontlik maakpowerpick
: Injekteer 'n PowerShell laaier samestelling in 'n sakrifisiele proses en voer 'n PowerShell opdrag uit (sonder PowerShell logging).psinject
: Voer PowerShell uit in 'n gespesifiseerde proses, wat gerigte uitvoering van skripte in die konteks van 'n ander proses moontlik maakshell
: Voer 'n shell opdrag uit in die konteks van die agent, soortgelyk aan die uitvoering van 'n opdrag in cmd.exe
Laterale Beweging
jump_psexec
: Gebruik die PsExec tegniek om lateraal na 'n nuwe gasheer te beweeg deur eers die Apollo agent uitvoerbare lêer (apollo.exe) oor te kopieer en dit uit te voer.jump_wmi
: Gebruik die WMI tegniek om lateraal na 'n nuwe gasheer te beweeg deur eers die Apollo agent uitvoerbare lêer (apollo.exe) oor te kopieer en dit uit te voer.wmiexecute
: Voer 'n opdrag uit op die plaaslike of gespesifiseerde afstandstelsel met behulp van WMI, met opsionele akrediteer vir impersonasie.net_dclist
: Verkry 'n lys van domeinbeheerder vir die gespesifiseerde domein, nuttig om potensiële teikens vir laterale beweging te identifiseer.net_localgroup
: Lys plaaslike groepe op die gespesifiseerde rekenaar, wat standaard na localhost terugval as geen rekenaar gespesifiseer is nie.net_localgroup_member
: Verkry plaaslike groep lidmaatskap vir 'n gespesifiseerde groep op die plaaslike of afstandrekenaar, wat moontlik maak om gebruikers in spesifieke groepe te tel.net_shares
: Lys afstandlike gedeeltes en hul toeganklikheid op die gespesifiseerde rekenaar, nuttig om potensiële teikens vir laterale beweging te identifiseer.socks
: Stel 'n SOCKS 5-konforme proxy op die teiken netwerk in, wat moontlik maak om verkeer deur die gecompromitteerde gasheer te tonnel. Dit is versoenbaar met gereedskap soos proxychains.rpfwd
: Begin luister op 'n gespesifiseerde poort op die teiken gasheer en stuur verkeer deur Mythic na 'n afstandlike IP en poort, wat afstandlike toegang tot dienste op die teiken netwerk moontlik maak.listpipes
: Lys al die benoemde pype op die plaaslike stelsel, wat nuttig kan wees vir laterale beweging of bevoegdheidstoename deur met IPC meganismes te werk.
Verskeie Opdragte
help
: Vertoon gedetailleerde inligting oor spesifieke opdragte of algemene inligting oor al beskikbare opdragte in die agent.clear
: Merk take as 'gekuis' sodat dit nie deur agente opgetel kan word nie. Jy kanall
spesifiseer om al die take te kuis oftask Num
om 'n spesifieke taak te kuis.
Poseidon Agent
Poseidon is 'n Golang agent wat saamgestel word in Linux en macOS uitvoerbare lêers.
./mythic-cli install github https://github.com/MythicAgents/Poseidon.git
Wanneer gebruiker oor linux het dit 'n paar interessante opdragte:
Algemene aksies
cat
: Druk die inhoud van 'n lêercd
: Verander die huidige werksgidschmod
: Verander die regte van 'n lêerconfig
: Beskou huidige konfigurasie en gasheerinligtingcp
: Kopieer 'n lêer van een plek na 'n andercurl
: Voer 'n enkele webversoek uit met opsionele koptekste en metodeupload
: Laai 'n lêer op na die teikendownload
: Laai 'n lêer af van die teikenstelsel na die plaaslike masjien- En nog baie meer
Soek Sensitiewe Inligting
triagedirectory
: Vind interessante lêers binne 'n gids op 'n gasheer, soos sensitiewe lêers of akrediteer.getenv
: Kry al die huidige omgewing veranderlikes.
Beweeg lateraal
ssh
: SSH na gasheer met die aangewese akrediteer en open 'n PTY sonder om ssh te spawn.sshauth
: SSH na gespesifiseerde gasheer(s) met die aangewese akrediteer. Jy kan dit ook gebruik om 'n spesifieke opdrag op die afstand gasheer via SSH uit te voer of dit gebruik om lêers te SCP.link_tcp
: Skakel na 'n ander agent oor TCP, wat direkte kommunikasie tussen agente moontlik maak.link_webshell
: Skakel na 'n agent met die webshell P2P-profiel, wat afstandstoegang tot die agent se webkoppelvlak moontlik maak.rpfwd
: Begin of Stop 'n Reverse Port Forward, wat afstandstoegang tot dienste op die teiken netwerk moontlik maak.socks
: Begin of Stop 'n SOCKS5-proxy op die teiken netwerk, wat tunneling van verkeer deur die gecompromitteerde gasheer moontlik maak. Kompatibel met gereedskap soos proxychains.portscan
: Skandeer gasheer(s) vir oop poorte, nuttig om potensiële teikens vir laterale beweging of verdere aanvalle te identifiseer.
Proses uitvoering
shell
: Voer 'n enkele shell-opdrag uit via /bin/sh, wat direkte uitvoering van opdragte op die teikenstelsel moontlik maak.run
: Voer 'n opdrag vanaf skyf met argumente uit, wat die uitvoering van binaries of skripte op die teikenstelsel moontlik maak.pty
: Maak 'n interaktiewe PTY oop, wat direkte interaksie met die shell op die teikenstelsel moontlik maak.