DC02 HackMyVM (Intermediate - Windows)
Escaneo de puertos
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>nmap -sCV -p<PORTS> <IP>Info:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-04-01 12:24 EDT
Nmap scan report for 192.168.28.11
Host is up (0.00036s latency).
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-04-02 01:24:29Z)
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: SOUPEDECODE.LOCAL0., Site: Default-First-Site-Name)
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: SOUPEDECODE.LOCAL0., Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
9389/tcp open mc-nmf .NET Message Framing
49664/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49677/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49707/tcp open msrpc Microsoft Windows RPC
MAC Address: 08:00:27:4E:0B:0E (Oracle VirtualBox virtual NIC)
Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
|_clock-skew: 8h59m59s
| smb2-time:
| date: 2025-04-02T01:25:17
|_ start_date: N/A
|_nbstat: NetBIOS name: DC01, NetBIOS user: <unknown>, NetBIOS MAC: 08:00:27:4e:0b:0e (Oracle VirtualBox virtual NIC)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 94.96 secondsVeremos ya de primeras que esta asociado a un dominio llamado SOUPEDECODE.LOCAL por lo que podemos deducir que tiene por dentro un Active Directory por lo que esta utilizando autenticacion en Kerberos.
Vamos añadirlo a nuestro archivo hosts de la siguiente forma:
Tambien vemos un puerto asociado al WinRM que nos podra servir para cuando encontremos algunas credenciales, vamos a intentar enumerar el servidor SMB de la siguiente forma:
Pero veremos que no podemos hacerlo de forma anonima, por lo que vamos a buscar mas informacion de como podriamos obtener algun usuario o credenciales mediante el servidor SMB.
URL = Info SMB HackTricks
Pero probemos lo que probemos no va a ir, despues de buscar un rato vamos a probar a realizar fuerza bruta mediante kerberos y proporcionando un listado de usuarios para ver que usuarios pueden ser validos y cuales no:
kerbrute
Antes tendremos que instalar la herramienta de la siguiente forma:
Una vez echo todo esto nos descargaremos el listado de usuario del siguiente link:
URL = Download xato-net-10-million-usernames.txt
Info:
Por lo que vemos hemos encontrado varios usuarios validos, pero entre ellos los que no son por defecto seria los llamados charlie y wreed11 por lo que vamos a probar a realizar fuerza bruta mediante el servidor SMB con dichos usuarios.
netexec
users.txt
Info:
Vemos que hemos encontrado las credenciales de charlie por lo que vamos a listar el servidor SMB con dichas credenciales.
SMB
Info:
Vemos que los recursos compartidos son los que se crean por defecto, por lo que no veremos gran cosa por aqui.
Pero si probamos a dumpearnos todos los usuarios del dominio con dichas credenciales de la siguiente forma:
impacket-lookupsid
Info:
Vamos a filtrar todo esta informacion y selecciona solamente los usuarios para guardarlos en un users.txt:
Y nos lo dejara algo asi:
Ahora teniendo este listado vamos a descubrir que usuarios son vulnerables a un kerberoasting pudiendo obtener el hash de kerberos de la contraseña del usuario.
impacket-GetNPUsers
Este comando realiza una enumeración de usuarios en un dominio de Active Directory utilizando el protocolo Kerberos y el mecanismo de Pre-Authentication. Aprovechando las credenciales de un usuario específico (charlie:charlie), la herramienta impacket-GetNPUsers intenta autenticar a varios usuarios (especificados en un archivo de texto) contra el Controlador de Dominio. Si el KDC responde positivamente, se determina que el usuario existe y es válido en el dominio, lo que permite descubrir usuarios válidos en el dominio sin necesidad de obtener contraseñas.
Info:
Vemos que hemos obtenido un hash del usuario zximena448 por lo que lo intentaremos crackear de la siguiente forma:
Crackear Hash Kerberos
hash.kerberos
Info:
Vemos que la consiguio crackear de forma correcta, por lo que vamos a probarlas en el servidor SMB:
Info:
Si probamos a meternos en el recurso compartido C$ veremos que nos deja:
Por lo que vamos a leer la flag del usuario:
user.txt
Escalate Privileges
Vamos a ver a que grupo pertenece el usuario a con ldapsearch:
Info:
Vemos la siguiente linea interesante:
Vemos que pertenecemos al grupo Backup Operators por lo que podremos aprovechar esto para poder obtener informacion utilizando un exploit:
URL = Exploit Backup Operators
Nos clonaremos el repositorio a nuestro host:
Teniendo el archivo reg.py lo ejecutaremos de la siguiente forma:
Pero antes por lo que vemos en el comando tendremos que abrir un servidor SMB desde el host para que podamos obtener le backup o la informacion de la cual estamos pidiendo al DC:
Info:
Ahora ejecutaremos lo siguiente:
Info:
Con esto lo que habremos echo sera guardar esas carpetas (backups) en la carpeta smbshare, si listamos dicha carpeta veremos lo siguiente:
Info:
Veremos que ha funcionado, por lo que vamos a extraer los hahes de dicho archivo de la siguiente forma:
Info:
Con esto veremos que ha funcionado y hemos obtenido los hashes de las contraseñas de dichos usuarios pero de forma local, lo que queremos es obtener las contraseñas de los mismo usuarios pero del dominio, el hash que nos interesa es el del DC y la que mas atrae que pueda ser esa es la del $MACHINE.ACC, por lo que vamos a probar a que usuario pertenece del listado de usuarios que obtuvimos anteriormente:
Info:
Vemos que el usuario es DC01 por lo que nos dumpearemos con dicho usuario los hashes pero en este caso del dominio, de la siguiente forma:
Info:
Veremos que ha funcionado y obtendremos los hashes de los usuarios del dominio, pero el que nos interesa es el del Administrador, podemos intentar crackearla o tambien podremos realizar un Pass-The-Hash mediante WinRM.
Info:
Con esto ya seremos el usuario Administrador por lo que leeremos la flag del admin.
root.txt
Last updated