Exim. Поиск источника спама.
Найти скрипт или источник спама, на сервере где работает Exim, можно просто проверив логи, предварительно настроив их ведение нужным образом конечно же.
Скрипт рассылающий спам.
- Добавляем (если параметра ещё нет) в exim.conf, в секцию
"log_selector ="следующее:
+arguments
И перезапускаем Exim.
- Заглядываем в лог Exim’а, и ищем там вхождение
cwd=, оно покажет нам, из какой конкретно директории происходит отправка:
# cat /var/log/exim_mainlog | grep cwd=
# cat /var/log/exim_mainlog | grep cwd= | grep username
# cat /var/log/exim_mainlog | grep cwd= | grep superdomain.com
Результат выполнения команды будет примерно таким:
2017-06-07 13:34:50 cwd=/home/username/public_html/superdomain.com/wp-content/ 3 args: /usr/sbin/sendmail -t -i
- Далее, мы либо идём вручную проверять указанную в логе директорию, либо (если в директории скриптов много, например), проверяем access.log веб-сервера для домена superdomain.com. Скорее всего там осядет что-то похожее на:
1.2.3.4 - - [07/Jun/2017:13:34:41 +0300] "POST /wp-content/view17.php HTTP/1.1" 200 406 "http://superdomain.com/wp-content/view17.php" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"
view17.php — и будет нашим скриптом, через который рассылается спам.
Аккаунт рассылающий спам.
Если же, в cwd= мы видим что-то такое:
2017-06-06 19:34:50 cwd=/var/spool/exim 3 args: /usr/sbin/exim -Mc 1dIHRR-0001ag-WF
И при этом уверены, что письмо с ID 1dIHRR-0001ag-WF является спамом, то стоит проверить не было ли письмо отправлено с использованием авторизации. Для этого в логе отправки письма нужно найти параметр A=, и если в нём будет указана авторизация (чаще всего с помощью dovecot):
... P=esmtpa A=dovecot_login:mail@superdomain.com ...
Это и будет наш проблемный аккаунт, доступы к которому, тем или иным способом получили злоумышленники. Меняем к нему пароль и оповещаем владельца о произошедшем.
По информации из почтовой очереди.
Если в почтовой очереди осело письмо, которое точно является спамом, можно просмотреть его заголовки, и найти там информацию об отправке:
# exim -Mvh 1dIWlW-0008Dr-1f | grep X-PHP
056 X-PHP-Script: superdomain.com/wp-content/view17.php for 1.2.3.4
090 X-PHP-Filename: /home/username/public_html/superdomain.com/wp-content/view17.php REMOTE_ADDR: 1.2.3.4
Здесь мы так же можем увидеть полный путь до скрипта, которым выполняется рассылка.