Log Poisoning (LFI -> RCE)
Última actualización
Última actualización
El Log Poisoning es una técnica de ataque en la que un atacante manipula los archivos de registro (logs) de una aplicación web para lograr un resultado malintencionado. Esta técnica puede ser utilizada en conjunto con una vulnerabilidad LFI para lograr una ejecución remota de comandos en el servidor.
Como ejemplos para esta clase, trataremos de envenenar los recursos ‘auth.log‘ de SSH y ‘access.log‘ de Apache, comenzando mediante la explotación de una vulnerabilidad LFI primeramente para acceder a estos archivos de registro. Una vez hayamos logrado acceder a estos archivos, veremos cómo manipularlos para incluir código malicioso.
En el caso de los logs de SSH, el atacante puede inyectar código PHP en el campo de usuario durante el proceso de autenticación. Esto permite que el código se registre en el log ‘auth.log‘ de SSH y sea interpretado en el momento en el que el archivo de registro sea leído. De esta manera, el atacante puede lograr una ejecución remota de comandos en el servidor.
Bueno empezamos si contamos con permisos de lectura y como atacante podemos ver el access.log de apache podemos envenenar los logs y ganar acceso al sistma.
Vamos a probar todo lo tengo montado en un contenedor en local por eso dice localhost.
Bueno ahora que ya tenemos permisos de lectura a los logs de apache envenenamos esos logs usando curl el envenenamiento ocurre en el User-Agent, donde aca estamos enviando un whoami haber si lo interpreta.
Si recargamos los logs de apache observamos que las dos peticiones nos la interpreta y se nos muestra ques somo www-data en las dos que hemos enviado.
Ahora como ganariamos acceso aprovechandonos de esto
Bueno lo mismo enviamos una peticion pero en vez de whoami enviamos que queremos controlar con el parametro cmd que comando se ejecute a nivel de sistema.
Ya teniendo una cmd mas o menos interactiva podemos ejecutar casi cualquien comando aca vemos que si le paso id nos dice en que grupos esta www-data.
Ahora viene lo chido ganar acceso al sistema, al parametro cmd le decimos que queremos enviarnos una revershell a nuestro equipo de atacante.
Estando en escucha con Netcat observamos que ganamos acceso al sistema como el usuario www-data.
Y bueno asi se explota un Log Poisoning.