14 octubre, 2024

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/

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *