TheWall
LFI Log Poisoning

Fase de reconocimiento
Hago un escaneo de nmap para descubrir los puertos abiertos y encuentro:
22 (SSH)
80 (HTTP)

Dentro de la pΓ‘gina web nos podemos encontrar lo siguiente:

Intento hacer fuzzing con wfuzz, pero por alguna razon que desconozco, cuando le proporciono el parametro -s, no muestra las solicitues. AsΓ que tendrΓ© que usar gobuster, y le voy a tener que proporcionar un delay, ya que la pagina detecta cuando hacemos muchas solicitudes 404 de seguido, asΓ que le he puesto un delay de 580ms, a esto se le llama Web Application Firewall (WAF):

Fase de intrusiΓ³n
Encuentro el archivo "/includes.php" y tiene toda la pinta de que puede ejecutar comandos por su nombre y extensiΓ³n, asΓ voy a hacer fuzzing con wfuzz para descubrir el parΓ‘metro con el que funciona (PensΓ© que ejecutarΓa comandos, pero no es asΓ, lo que hace es listar archivos del sistema):

Con esto quiero decir que entonces tendrΓamos que hacer un poisoning de los logs para poder ejecutar comandos, y en mi caso para poder obtener una reverseshell asΓ que voy a hacer fuzzing usando de directorio de LFI que se sitΓΊa en la seclist (SecLists-master/Fuzzing/LFI/LFI-gracefulsecurity-linux.txt):


Le voy a hacer un curl para que podΓ‘is observar con mΓ‘s claridad de que realmente lo que estas haciendo es enviar un header con user-agent, y dentro del user-agent introduces los comandos, y estos comandos se pueden ver reflejados en los logs:

Este paso lo intente hacer mediante curl, pero se me hizo imposible, asΓ que utilice burpsuite. Ahora lo que vamos a hacer es mandar una solicitud para poder posteriormente ejecutar comandos de manera mΓ‘s sencilla, es una pequeΓ±a lΓnea que va a autorizar ejecutar comandos a cualquier solicitud GET que use el parΓ‘metro "XD":


Tras lanzar el ultimo paquete, conseguimos acceso remoto, como siempre lo primero que hacemos es la DepuraciΓ³n de tty
Escalada de privilegios
En cuanto a la escalada de privilegios, primero nos tendremos que venir a "/home" para ver que usuarios hay en el sistema, dentro de john podemos encontrar que tiene ".ssh" en su interior, y si hacemos un "sudo -l", podemos ver que john tiene permisos de ejecutar exiftool. AsΓ que la idea que se me viene a la cabeza seria crearme un id_rsa y con exiftool escribir dentro de "/.ssh/authorized_keys" la key que he me he creado, para asΓ poder iniciar sesiΓ³n con dicha key. En GTFOBins podemos ver en detalle como se explota el exiftool:


Nos creamos nuestras keys:

Os copias vuestra id_rsa.pub (el .pub indica que es la key publica) y la copias dentro de "/tmp" como "authorized_keys", luego introducis el siguiente comando y os deberia dejar de entrar sin problemas:

Iniciamos sesiΓ³n por ssh:

Nos pasamos por scp linpeas ya que no hay wget ni curl instalado:

Lo mΓ‘s relevante que he encontrado con el linpeas ha sido "tar" con capabilities y unas keys de ssh de root:


La capability que hemos he encontrado es capaz de leer o ejecutar archivos/directorios:
AsΓ pues, vamos a obtener la "id_rsa" privada de root con la capability:

Probe con la key de "/etc/ssh" pero no funciono, y me di cuenta que en el directorio "/" existe una "id_rsa", asΓ que pruebo con esa y logramos el acesso a root!:

ConclusiΓ³n
En esta mΓ‘quina, logramos la intrusiΓ³n y escalada de privilegios aprovechando varias debilidades:
Utilizamos herramientas como gobuster y wfuzz para identificar directorios y parΓ‘metros ΓΊtiles en el sistema. La estrategia fue aΓ±adir un tiempo de espera para hacer que las solicitudes burlan el sistema de Web Applicaction Firewall (WAF).
Conseguimos EjecuciΓ³n Remota de Comandos (RCE) al combinar un ataque de Local File Inclusion (LFI) con Log Poisoning, utilizando un encabezado
User-Agentmalicioso. La herramienta Burp Suite fue esencial.Una vez obtenido acceso como el usuario "john", aprovechamos sus permisos de ejecuciΓ³n sobre exiftool para insertar nuestra clave SSH en su archivo
authorized_keys. Posteriormente, con linpeas detectamos un binario con capabilities (tar), que nos permitiΓ³ acceder al archivo privado de clave SSH de root, consiguiendo asΓ por completo al sistema como root.
Last updated