LinuxParty

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

En este artículo vamos a explicar diferentes formas de localizar y encontrar algunos envíos de spam que se puede estar produciendo en nuestro propio servidor.

El spam generalmente se suele originar vía web, smtp o mediante algún script en perl.

Si tenemos emails en cola lo mejor es abrir uno de esos email, Las cabeceras contienen la mayoría de las veces información muy valiosa.
En el caso de no tener emails en cola podemos buscar en los logs de nuestras webs o logs de email.

Partimos de la base que el remitente lo pueden falsear por lo cual no tenemos información desde que dominio o cuenta email envían spam.




Cabereas de emails en cola

Si el spam se envía desde una web, la clave es buscar X-PHP-Script o userid, nos dice desde que URL o dominio se envía spam.

Received: by miservidor.com (Postfix, from userid 10039)
id C8D5E9793; Sun, 25 Jun 2017 09:43:34 +0200 (CEST)
From: "Remitente" <Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.>
To: "Destinatario" <Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.>
Subject: Asunto del Email
Date: Fecha email +0200
X-PHP-Script: midominio.com/xmlrpc.php for XXX.XXX.XXX.XXX (no está en todas las versiones de Plesk)
X-PHP-Originating-Script: 10039:class-phpmailer.php
X-Mailer: PHPMailer 5.2.22 (https://github.com/PHPMailer/PHPMailer)
MIME-Version: 1.0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

Si tenemos un Plesk más antiguo puede que no incluya la cabecera X-PHP-Script si ejecutamos desde SSH ungrep de userid nos dirá desde que dominio se envía spam:

# grep 10039/etc/passwd
ftpUser:x:10039:10039::/var/www/vhosts/midominio.com:/bin/false

Cabeceras de emails enviados desde fuera del servidor (acceso stmp), no tienen cabecera X-PHP-Script

Received: from ordenador (hostconexion [XXX.XXX.XXX.XXX]) esta cabecera no existe en los emails enviados vía web, nos indica de que IP proviene el mensaje.
by miservidor.com (Postfix) with ESMTPA id 1429F61E0461
for <Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.>; Fecha email
From: "Remitente" <Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.>
To: "Destinatario" <Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.>
Subject: Asunto del Email
Date: Fecha email +0200
Message-ID: <001301d2ebfe$6576c9f0$30645dd0$@miservidor.com>
MIME-Version: 1.0
Content-Type: multipart/related;
boundary="----=_NextPart_000_0014_01D2EC0F.2901E3E0"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AdLr/mTQpC2POA4VQoOOlh/3sCjutA==
Content-Language: es
X-PPP-Message-ID: <20170623085505.25595.16770@miservidor.com>
X-PPP-Vhost: miservidor.com

En este caso lo importante es la IP si buscamos autentificaciones en el log de correo por esa IP veremos desde que cuenta envían spam.
Postfix:

# grep 'sasl_method=' /usr/local/psa/var/log/maillog | grep XXX.XXX.XXX.XXX

Qmail:

# grep smtp_auth /usr/local/psa/var/log/maillog |grep user | grep XXX.XXX.XXX.XXX


Accesos POST o SMTP

Normalmente todo el spam vía web se genera por accesos POST, una manera es buscar esos accesos en todos nuestros dominios:

# grep POST /var/www/vhosts/system/*/logs/access_log |grep -v '" 30' |grep -v '" 50' |grep -v '" 40'

plesk viejos tiene otra ruta:

# grep POST /var/www/vhosts/*/statistics/logs/access_log |grep -v '" 30'|grep -v '" 50' |grep -v '" 40'

Si tenemos WordPress u otro CMS podemos omitir algunos accesos que sabemos que no son envíos de spam, por ejemplo acceso a wp-login.php, wp-cron.php, xmlrpc.php
Por lo cual podemos añadir al final de los comandos anteriores: |grep -v wp-login.php |grep -v wp-cron.php |grep -v xmlrpc.php

Postfix Listado Ordenado por nº autentificaciones:

# grep 'sasl_username' /usr/local/psa/var/log/maillog | awk '{print $9}'| sort | uniq -c | sort -nr | head

Qmail Listado Ordenado por nº autentificaciones:

# grep smtp_auth /usr/local/psa/var/log/maillog |grep user |awk '{print $11}' |sort |uniq -c |sort -nr | head

Spam desde Perl.

Otra forma de envío de spam es mediante algún proceso perl. Muchas veces suelen subir algún fichero a una de nuestras webs por no estar actualizada. La forma fácil es hacer un top en el servidor y buscar el PID del proceso perl, con ese PID ejcutaremos:

cat proc/PID/cwd

otra opción es

lsof -p PID

Cuando ya tengamos localizado el proceso perl lo recomendable es eliminarlo y matar todos los proceso perl:

killall -9 perl



Borrar emails en cola desde SSH

Qmail Borrar emails con cierto Texto en el asunto:

/usr/local/psa/admin/bin/mailq -STextoAsunto

Qmail Borrar todos los emails:

/usr/local/psa/admin/bin/mailq -D

Postfix Borrar emails con cierto Texto:

find /var/spool/postfix/ -type f -exec grep -l 'Texto-del-Email' '{}' ; | xargs -n1 basename | xargs -n1 postsuper -d

Postfix Borrar todos los emails:

postsuper -d ALL
Pin It


Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política