Exim – Script para encontrar el origen de spam

Para obtener una lista ordenada de los remitentes de correo electrónico de la cola de correo exim, se mostrará el número de mensajes enviados por cada uno.

# exim -bpr | grep "<" | awk {'print $4'} | cut -d "<" -f 2 | cut -d ">" -f 1 | sort -n | uniq -c | sort -n

Deberías obterner un resultado como el siguiente

      1  arun@testdomain.com
      2  sales@test1domain.com
      3  sandy@test123.com
      4  root@testdomain.com
    29  admin@testdomain.com
  325 arun@test123domain.com

=============================================================================================

Los siguientes compandos van a comprobar el script desde donde se origina el spam

# grep "cwd=/home" /var/log/exim_mainlog | awk '{for(i=1;i<=10;i++){print $i}}' | sort | uniq -c | grep cwd | sort -n
# awk '{ if ($0 ~ "cwd" && $0 ~ "home") {print $3} }' /var/log/exim_mainlog | sort | uniq -c | sort -nk 1
# grep 'cwd=/home' /var/log/exim_mainlog | awk '{print $3}' | cut -d / -f 3 | sort -bg | uniq -c | sort -bg

Se Obtendrá un resultado que se desprende de los dos primeros guiones. La tercera secuencia de comandos es sólo una sub de las dos primeras secuencias de comandos.

      9      cwd=/home/test1/public_html
     10     cwd=/home/test2/public_html/a1/www
     15     cwd=/home/test3/public_html
     91     cwd=/home/test4/public_html
    178    cwd=/home/test5/public_html/web
    770    cwd=/home/test6/public_html/foro
    803    cwd=/home/test7/public_html/web
 124348 cwd=/home/test8/public_html/wp/wp-content/themes/twentyeleven

=============================================================================================

Si tenemos que averiguar exactamente el script de spam . La siguiente secuencia de comandos muestra los actuales script que envían spam ahora. La siguiente secuencia de comandos le ayudará en todo momento de los servidores de correo. Le ayudará a encontrar el script exacto, que el envío de correos de spam.

# ps auxwwwe | grep  | grep --color=always "" | head

El uso de la secuencia de comandos es como se muestra a continuación.
Ejemplo:

# ps auxwwwe | grep test8 | grep --color=always "/home/test8/public_html/wp/wp-content/themes/twentyeleven" | head

Cuando se haya encontrado el script exacto, el siguiente script ayudará a encontra la dirección ip responsable del spam . Se obtendrán una lista de ips del scripts. La ip que tenga el mayor número de accesos, es probablemente que sea la que esté enviando spam. Se recomienda bloquearla en el firewall.

# grep "" /home/user/access-logs/testdomain.com | awk '{print $1}' | sort -n | uniq -c | sort -n

=============================================================================================

Siguiente comando que le mostrará el scripts usando para enviar email masivos:

# egrep -R "X-PHP-Script"  /var/spool/exim/input/*

=============================================================================================

Muestra los 50 dominios que usan con mayor frecuencia el servidor de correos

# eximstats -ne -nr /var/log/exim_mainlog

=============================================================================================
Muestra desde qué usuario del home el correo está saliendo, se puede rastrear rapidamente y bloquearlo. Muestra los mensajes que salen del servidor

# ps -C exim -fH ewww | grep home

=============================================================================================

Muestra las direcciones IP que están conectados al servidor a través del número de puerto 25.Si una ip está teniendo más de 10 conexiones, se recomienda bloquear del firewall.

# netstat -plan | grep :25 | awk {'print $5'} | cut -d: -f 1 | sort | uniq -c | sort -nk 1

==============================================================================================

Para encontrar spamming "nobody", emita el siguiente comando

# ps -C exim -fH ewww | awk '{for(i=1;i<=40;i++){print $i}}' | sort | uniq -c | grep PWD | sort -n

Se dará algún resultado como:
Ejemplo:

6 PWD=/
347 PWD=/home/sample/public_html/test

Contar el  PWD y si este tiene un valor muy grande, revisar los archivos listados en el directorio PWD
(Ignorar si es / or /var/spool/mail /var/spool/exim)

El comando anterior sólo es válida si el envío de correo basura está actualmente en curso. Si el envío de correo basura ha pasado algunas horas antes, utilice el siguiente comando.
# grep "cwd=" /var/log/exim_mainlog | awk '{for(i=1;i<=10;i++){print $i}}' | sort | uniq -c | grep cwd | sort -n

==============================================================================================
La siguiente secuencia de comandos dará el resumen de mensajes en la cola de correo.

exim -bpr | exiqsumm -c | head

El resultado obtenido será similar a:

Count  Volume  Oldest  Newest  Domain
 -----      ------      ------     ------       ------

  114   171KB     24h     28m  testdomain.com
   15    28KB       36h     7m    gmail.com
    5     10KB       34h     10h   test2domain.com
    4     8192        27h     4h     yourdomain.com
    4     75KB       7m      7m    server.domain.com
    3     6041        23h     42m  test123.com

Localizar SPAM en el Asunto en el log exim_mainlog

awk -F"T=\"" '/<=/ {print $2}' /var/log/exim_mainlog | cut -d\" -f1 | sort | uniq -c | sort -n
La salida será similar a:

200 Venta de servicio de hosting económico
303 Respuesta: Gracias por preferirnos
102 Nueva cuenta creada

Para encontrar al usuario:

grep "Nueva cuenta creada" /var/log/exim_mainlog | awk '{print $5}' | sort | uniq -c | sort -n

El resultado:
1 test@ejemplo.cl
9283 usuario1@ejemplo.cl

Localizar la ip del sender

grep "<= usuario1@ejemplo.cl" /var/log/exim_mainlog | grep "Nueva cuenta creada" | grep -o "\[[0-9.]*\]" | sort -n | uniq -c | sort -n

==============================================================================================