Un par de veces me han llamado para investigar un servidor web, ejecutar una aplicación PHP como WordPress, que está enviando correo spam y eliminar la función responsable.
En primer lugar, necesitamos saber de qué guión se origina el mensaje.
Abrir php.ini
vi /etc/php.ini
|
Agregue la línea siguiente y guarde
mail.add_x_header = On
|
Reiniciar el servicio de php
service httpd restart
|
Esto agregará el encabezado siguiente a todos los mensajes que se originan desde el servidor que define el UID y el nombre de archivo del script.
X-PHP-Originating-Script: 1000:object.php
|
Si no tiene los encabezados del mensaje entonces tendremos que investigar.
Este ejemplo usa Exim , pero el proceso es similar para otros servidores de correo como Postfix o Sendmail.
Quiero intentar localizar el mensaje o los mensajes ofensivos así que tendré que comprobar los registros. Sé que el mensaje era reciente por lo que en este caso sólo quiero cola el final del registro.
tail /var/log/exim/main.log
|
Cada mensaje tiene una ID única que suele ser la tercera columna después de la fecha y la hora.
2015-11-18 10:58:38 1Zz0Nc-00067L-1N spamming@to.com [111.111.111.111]
Puedo revelar los encabezados de ese mensaje como si
/usr/sbin/exim -Mvh 1Zz0Nc-00067L-1N
|
Y tendrás los encabezados mostrados en tu terminal junto con X-PHP-Originating-Script
Digamos que sabemos que el archivo ofensivo es object.php y se está enviando a través de nuestra aplicación, ahora tenemos que finalizar y eliminar el script.
find /home/mysite.com -iname "object.php"
|
el resultado obtendrá la lista de archivos donde se encuentra la incidencia
Para el caso de:
X-PHP-Originating-Script: 1000:object.php(1953) : eval()’d code
1000 se refiere al uid de quien lo mandó, para esto hay que checar el /etc/passwd
object.php es el archivo malicioso
(1953) al parecer son las líneas de código
Para averiguar las cuantas líneas de código y la ruta del archivo se puede usar los siguientes comandos en terminal
find / -iname “object.php” -exec wc -l {} +
o
find /var/www/html/ -iname “object.php” -exec wc -l {} +
Fuente: https://joebuckle.me/quickie/php-find-which-script-is-sending-spam-mail/