Как я могу узнать, какой сценарий / программа / пользователь вызывает exim (и рассылает спам)?

Проблема

Мой клиент попросил меня взглянуть на его веб-сервер с общим хостингом на предмет следующей проблемы, но я не могу понять, что неправильно. Его сервер занесен в черный список во многих основных списках блокировки, таких как CBL, Spamhaus и список блокировки от Outlook.com.

То, что я уже пробовал

Я начал с просмотра пользователей в его среде DirectAdmin, но Я не нашел пользователей, которые отправляют более пары писем в день. Я загрузил его журнал exim, взглянул в очередь почты, но не нашел ничего необычного. Следующее, что я подумал, - это запустить findbot.pl из CBL, но он выдал только ложные срабатывания.

Еще я попытался изменить sendmail_path в php.ini , чтобы регистрировать каждое электронное письмо, отправляемое через sendmail. Однако каждый раз, когда я менял sendmail_path, все процессы PHP начинали зависать. Я пробовал разные способы ( MailCatcher , мои собственные сценарии), но каждое изменение приводило к зависанию процессов. Действительно странно, но после нескольких попыток я перешел к следующему шагу.

Следующий шаг: установка lsof и создание сценария bash, который будет печатать вывод lsof -i | grep smtp в файл журнала каждую секунду, при этом выводит результат ps auxw в другой файл журнала каждую секунду. Это дало мне некоторую ценную информацию, но я пока не могу отследить проблему.

Где я застрял

Итак, дав ему поработать пару часов, Я открыл оба файла журнала и увидел большую часть этих правил:

lsof - logfile

COMMAND     PID    USER   FD   TYPE           DEVICE  SIZE/OFF    NODE NAME
exim      10921    mail    9u  IPv4 2260427      0t0  TCP hostname-from-server.com:smtp->208.93.4.208:49711 (ESTABLISHED)
exim      10921    mail   10u  IPv4 2260427      0t0  TCP hostname-from-server.com:smtp->208.93.4.208:49711 (ESTABLISHED)

Когда я смотрю файл журнала и ищу PID, который упоминается в файле журнала lsof, я вижу следующие строки:

] ps auxw - logfile

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mail      1750  0.0  0.0  59032  1320 ?        Ss   Nov28   0:01 /usr/sbin/exim -bd -q15m -oP /var/run/exim.pid
root     10909  0.0  0.0 103388   896 pts/2    S+   17:44   0:00 grep mail

mail      1750  0.0  0.0  59032  1320 ?        Ss   Nov28   0:01 /usr/sbin/exim -bd -q15m -oP /var/run/exim.pid
root     10917  0.0  0.0 103388   896 pts/2    S+   17:44   0:00 grep mail

mail      1750  0.0  0.0  59032  1320 ?        Ss   Nov28   0:01 /usr/sbin/exim -bd -q15m -oP /var/run/exim.pid
mail     10921  0.0  0.0  61112  1792 ?        S    17:44   0:00 /usr/sbin/exim -bd -q15m -oP /var/run/exim.pid
root     10923  0.0  0.0 103388   896 pts/2    S+   17:44   0:00 grep mail

mail      1750  0.0  0.0  59032  1320 ?        Ss   Nov28   0:01 /usr/sbin/exim -bd -q15m -oP /var/run/exim.pid
root     10931  0.0  0.0 103388   896 pts/2    S+   17:44   0:00 grep mail

mail      1750  0.0  0.0  59032  1320 ?        Ss   Nov28   0:01 /usr/sbin/exim -bd -q15m -oP /var/run/exim.pid
root     10939  0.0  0.0 103388   896 pts/2    S+   17:44   0:00 grep mail

Проблема: в этой строке нет ничего необычного, и я не вижу, какой скрипт, программа пользователя вызвала exim. Когда я смотрю exim mainlog и rejectlog, я не могу найти ip 208.93.4.208 и не могу найти ни одной строки около 17:44 (время согласно журналу ps auxw

Когда я слежу за строками из файлов журналов из электронных писем, которые я отправляю себе, я могу найти их в основном журнале из exim точно в то время, которое указано в журнале ps auxw. Похоже, что каким-то образом спам-сообщения не регистрируются в exim или удаляются сразу после отправки.

Мои вопросы

  • Я думаю, что смогу решить свою проблему, если бы знал, какой скрипт, программа или пользователь вызвал PID и вызвал exim / mail. Есть у кого-нибудь идеи?
  • Возможно ли, что какой-то другой сервер, не наш, рассылает спам и, например, подделывает наш IP-адрес? Может быть, это очень глупый вопрос, но мне любопытно, ведь так легко подделать заголовки.

Дополнительная информация

Через портал провайдера Outlook.com нам удалось получить один из заголовков электронной почты:

X-HmXmrOriginalRecipient: someone-who-received-our-spam@hotmail.com
X-Reporter-IP: [IP-from-some-who-flagged-as-spam]
X-Message-Guid: a2236172-9474-11e5-9c3a-00215ad6eec8
x-store-info:4r51+eLowCe79NzwdU2kR3P+ctWZsO+J
Authentication-Results: hotmail.com; spf=none (sender IP is [OUR-IP-ADDRESS]) smtp.mailfrom=minvituccia@blackberrysa.com; dkim=none header.d=blackberrysa.com; x-hmca=none header.id=minvituccia@blackberrysa.com
X-SID-PRA: minvituccia@blackberrysa.com
X-AUTH-Result: NONE
X-SID-Result: NONE
X-Message-Status: n:n
X-Message-Delivery: Vj0xLjE7dXM9MDtsPTA7YT0wO0Q9MjtHRD0yO1NDTD02
X-Message-Info: 11chDOWqoTmjqhOzvWWho/vK8oL2x1FIoEm0Tn+r3D4Vy8IHo2wUnqS07yp2Fxclyw07ONZgeH1xFUrogbJOZz8Pfl5FrUXTGgolDal8+UhiPOrwCAKsLtRr0R42oH/Du2inmiSwuWc/pY9oiWRqLA5If7jw818pUulf3QP7m+wKn2HEVHAg2VBr+OqDk1w/hWWO68tIy1BSoE8QFSPMNXh31MYdKh4mif3jAqDU+0qWqWSAxPdE/A==
Received: from [our-hostname] ([our-ip-address) by COL004-MC2F4.hotmail.com with Microsoft SMTPSVC(7.5.7601.23143);
 Thu, 26 Nov 2015 11:34:05 -0800
Return-path: <minvituccia@blackberrysa.com>
Received: (qmail 18660 invoked by uid 61081); 26 Nov 2015 20:52:03 -0000
Date: 26 Nov 2015 20:52:03 -0000
Message-ID: <20151126205203.18660.qmail@our-hostname.com>
From: "Meghann Gasparo" <minvituccia@blackberrysa.com>
To: "someone-who-received-spam-from-our-server" <someone-who-received-spam-from-our-server@hotmail.com>
Subject: You could strike all your limpid seed right into my love tunnel text me 1.970.572.00.14
Mime-Version: 1.0
Content-Type: text/html
Content-Transfer-Encoding: 8bit
Mime-Version: 1.0
Content-Type: text/html
Content-Transfer-Encoding: 8bit
X-OriginalArrivalTime: 26 Nov 2015 19:34:06.0061 (UTC) FILETIME=[69C119D0:01D12881]

<html><body>Throw some of your hot cum on my face, deep into my door<br>
or <a href="http://holidayextravaganza.org/wp-content/themes/">run my humps rubbed</a> once again.<br>
<a href="http://holidayextravaganza.org/wp-content/themes/">Watch my profile</a> to receive much more spicy fun or just sms right now 1-970-572-00-73</body></html>

--70969AA2-2F73-4465-8DF3-26DC57EA3967--

Мы не используем qmail в качестве MTA. Излишне говорить, что домен blackberrysa.com не является нашим.

1
задан 30 November 2015 в 03:25
3 ответа

Вы можете попробовать посмотреть netstat, чтобы получить исходящие соединения и отфильтровать порт 25

netstat -nptw | grep :25

Вы можете использовать iptables для регистрации исходящих соединений на порт 25

iptables -I OUTPUT -p tcp -m tcp --dport 25 -j LOG --log-prefix 'Outbound SMTP connection'

Это создаст запись в журнале вроде

29 ноября 18:15:56 имя хоста ядро : Исходящее соединение IN = OUT = eth0 SRC = 192.168.254.16 DST = 192.0.2.1 LEN = 60 TOS = 0x00 PREC = 0x00 TTL = 64 ID = 36829 DF PROTO = TCP SPT = 39355 DPT = 25 WINDOW = 14600 RES = 0x00 SYN URGP = 0

Обратите внимание на SPT = 39355 . Вы можете использовать его для поиска в выводе netstat

netstat -anp  | grep 39355
tcp      0    1 192.168.254.16:39355      192.0.2.1:25        SYN_SENT    13992/someprogram
1
ответ дан 3 December 2019 в 23:55

Ваш заголовок указывает, что почта не прошла через exim. Заголовок qmail "Received" является сфабрикованным спамером. Если у вас есть веб-сервер на этом сервере, скорее всего, это какой-то скомпрометированный скрипт. Если вы выполняете NAT для других хостов, проблема может быть на других хостах. В противном случае у вас, вероятно, есть взломанный сервер.

Если вы сомневаетесь, попробуйте

iptables -I OUTPUT -m state --state NEW -p tcp --dport 25 -j LOG --log-uid --log-prefix 'New SMTP Outbound'

Это будет регистрировать идентификатор пользователя процесса, отправляющего письма.

0
ответ дан 3 December 2019 в 23:55

Я рекомендую проверить установку веб-сервера (ов), где вы, вероятно, найдете множество вредоносных PHP. Эти PHP-коды, вероятно, прибыли на ваш веб-сервер кем-то / каким-то ботом, злоупотребившим одной или несколькими уязвимостями вашего сервера или его файлов PHP. Помните, что эти PHP-коды могут быть найдены во многих местах и ​​форматах: внутри комментария изображения GIF или JPEG, с суммированием md5, инвертированием и т. Д. Найдите эти функции PHP и зло eval и grep для них в местах, где, как вы знаете, их может не быть.

0
ответ дан 3 December 2019 в 23:55

Теги

Похожие вопросы