LinuxParty
Para poder saber qué script y en qué ruta está, debemos editar el archivo php.ini que utilice nuestro servidor (depende de si estamos utilizando módulo de Apache, CGI, FPM…), suelen estar en /etc/php/ , /etc/php5/ o rutas similares.
Ahí, podemos añadir al final unas líneas, o también buscar y modificar la configuración:
mail.add_x_header = On
mail.log = /tmp/phpmail.log
Con mail_add_x_header, el correo añadirá una línea X-PHP-Originating-Script en el que se indica cual script es el culpable. Y con mail.log escribimos un informe de todos los correos enviados por PHP. Este los podríamos ponerlo en /var/logs/ aunque tal vez el servidor web no tenga permiso para escribir ahí, por lo que podemos optar por crear un directorio en el que sí tenga permisos, o directamente ir a /tmp/ puesto que es una solución temporal.
Con esto, PHP generará un mensaje como este cada vez que se vaya a enviar un mensaje:
[24-Jul-2021 21:16:49 Europe/Berlin] mail() on [/ruta/del/script/nodeseado.php:2]: To: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. — Headers:
Y con esta información, ya tenemos lo necesario para detectar dónde está el malo (o los malos). Sólo nos queda tomar las medidas pertinentes, borrar los scripts, aplicar cuarentena, etc.
Foto principal: Nicolai Berntsen
