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 seconds

Veremos 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