Log Poisoning (Apache, SSH y SMPT)
Links:
Apache Logs
Este ataque consiste en que si el usuario www-data tiene capacidad de lectura del archivo de logs de apache, poder modificar el contenido de este a través de una cabecera HTTP para que el navegador al acceder a este recurso ejecute código PHP arbitrario.
Locations
RHEL / Red Hat / CentOS / Fedora Linux Apache access file location – /var/log/httpd/access_log
FreeBSD Apache access log file location – /var/log/httpd-access.log
Debian / Ubuntu Linux Apache access log file location – /var/log/apache2/access.log
Explotación
Si se cuenta con capacidad de lectura del archivo de logs, se puede modificar la cabezar HTTP User-Agent con una línea de código php para que al abrirse el archivo de logs el navegador interprete el código php que hayamos inyectado, bien sea a través de la url o un comando directamente.
En este caso haremos que php ejecute como comando de sistema todo la data que viaje por el método GET:
Ahora cuando accedamos al fichero de logs podremos ejecutar comandos, en este caso que nos establezca una reverse shell a través de netcat:
Máquina atacante:
SSH Logs
Este ataque consta de si el servicio SSH está abierto y el usuario www-data tiene capacidad de lectura del fichero de logs de ssh, es posible modificar este fichero para que el navegador al abrirlo ejecute código PHP.
Location
/var/log/auth.log
Lo que tenemos que hacer ahora es loguearnos como el usuario, debido a que tiene muchos símbolos que pueden generar conflicto en la bash, lo vamos a encodear en base64, usando una función de php para que lo decodee una vez lo interprete el navegador y posteriormente lo ejecute:
passthru: Execute an external program and display raw output
Ahora cuando accedamos al fichero auth.log podremos pasarle un parámetro con el cual vamos a ejecutar comandos, en este caso una reverse shell a través de netcat:
Shell obtenida:
SMTP Logs
Este ataque consiste en que si hay un puerto SMPT abierto, pudiendo conectarnos a este para mandar un mail Y el usuario www-data tiene capacidad de lectura del archivo de logs de smpt se pueda ejecutar código PHP arbitrario a través de enviar un mail con una línea de código PHP en el remitente/receptor.
Location
/var/log/mail.log
Explotación
Lo primero será enviar un mail y en el campo del remitente/receptor poner el código php a ejecutar:
Last updated