Buenas de nuevo.

Pues hoy os traigo otra solución bastante sencilla de cara a descubrir un posible hackeo de un sitio web.

Hace unos añitos os comenté una posibilidad para encontrar el origen de un nido de spam en nuestro servidor con esta entrada: “Detectar spam de qmail producido por malware web” . La solución no estaba nada mal, sin embargo, a veces se quedaba corta y era imposible encontrar el origen del spam, el script que se estaba ejecutando y que no paraba de enviar emails, en este caso utilizando la función mail() vía PHP, así que hoy os muestro cómo encontrar dicho script de una manera bastante sencilla.

Antes de nada, comentaros que estos problemas suelen suceder de la siguiente forma:

  • “Hacker” o persona que quiere fastidiar y molestar sin ganar nada busca un bug en tu sitio web, si tu sitio web es un CMS tipo WordPress, Joomla, Prestashop, Drupal… a pesar de que sean sistemas bastante robustos, si instalas muchos plugins, eres carne de hackeo, porque suelen encontrar siempre algún hueco por algún plugin o componente que no está muy bien hecho.
  • Tras encontrar el bug, comienza a subir ficheros al servidor codificados y que no los entiende nadie, lógicamente para que no sepas qué hace y para que no lo encuentres fácilmente.
  • Una vez ha insertado el fichero en tu servidor, tan solo tiene que hacer unas llamadas, por ejemplo mediante curl automáticamente con un script, y llamando a dicho php comienza la fiesta. Tu servidor envía tropecientos correos a saco a emails super raros.
  • Luego vas, haces un tail -f /var/logs/maillog y empiezas a ver de todo.

Bueno pues, hoy lo que explico básicamente es cómo activar en el php.ini lo necesario para que se almacene en otro fichero los logs de las llamadas a la función mail() que se realicen en los sitios webs de tu servidor.

  1. El primer paso es abrir el fichero php.ini de tu servidor con algún editor de textos, yo por ejemplo uso nano:
    nano /etc/php.ini
  2. Tras esto, buscamos la línea en la que está escrito mail.add_x_header , normalmente está en Off, pues lo ponemos en ON
    mail.add_x_header = On
    
  3. Y finalmente indicamos en qué fichero queremos almacenar los logs:
    mail.log = /var/log/phpmail.log
    
  4. Aseguraos de crear dicho fichero y de darle los permisos necesarios para que pueda ser escrito, por ejemplo:
    touch /var/log/phpmail.log
    chmod 777 /var/log/phpmail.log

     

Y listo, reiniciáis vuestro servidor apache y ya podréis ver todos los movimientos de la función mail() en vuestro servidor.

Si esta información te ha servido y crees que es útil, se agradece que compartas este artículo para ganar visibilidad. No gano dinero con ello y desde luego te estaré agradecido :).