Поиск спамерского скрипта

Как искать спамерский скрипт? Рассмотрим все методы в данной инструкции.

1. Просматриваем почтовую очередь:

Exim:

exim -bp

Postfix:

mailq

2. Ищем исходящий спам:

Exim:

exim -bp|egrep '<.*@.*..*'|cut -d\@ -f2|cut -d\> -f1|sort|uniq -c     или     exim -bp | exiqsumm

Postfix:

mailq | egrep '\w{2,3}.*\d*:\d*.*@.*\..*' --color|awk '{print $7}'|cut -d@ -f2|sort|uniq -c

Получаем:

8282 oknoff-nn.ru
      1 stjoelive.com
   2873 su-sushi.ru
   4884 zub-nn.ru

3. Открываем любое сообщение домена с большим количеством писем:

Exim:

exim -Mvh  ID сообщения  ( exim -Mvh 1VaMBV-0008J5-H7 )

Postfix:

postcat -vq  ID сообщения  ( postcat -vq DB0EC3623A87 )

Получаем ответ:

200P Received: from domain by by114.net with local (Exim 4.80.1)
(envelope-from <webmaster@domain.com>)
id 1Wt8ty-0001S7-0i
for cshоrt@аriеsnеt.com; Sat, 07 Jun 2014 08:10:46 +0300
024T To: cshоrt@аriеsnеt.com
027 Subject: Ship Notification
039 X-PHP-Script: domain.com/ for 127.0.0.1               <----  название домена
047 X-PHP-Originating-Script: 1586:841rewb3v4x.php        <----  скрипт php
048F From: "Postal Service" <message_id17@domain.com>
030 X-Mailer: CSWMSAutoMailer:reg
052R Reply-To: "Postal Service" <message_id17@domain.com>
018 Mime-Version: 1.0
081 Content-Type: multipart/alternative;boundary="----------140211784653929ED602110" 
051I Message-Id: <E1Wt8ty-0001S7-0i@by114.net>

С которого видно, что спам рассылался с сайта domain.com скриптом 841rewb3v4x.php.

4. Переходим в папку с доменом и запускаем антивирус:

maldet -a ./

или

clamscan -i -r ./

5. Далее ищем скрипт:

find ./ -name "841rewb3v4x.php" 

6. Переименовываем скрипт, чтоб прекратить рассылку:

mv 841rewb3v4x.php 841rewb3v4x.php_virus

7. Смотрим на содержимое файла и понимаем что файл содержит код в закодированом виде и использует для исполнение его функцию eval().
Код скрипта может напоминать вид к примеру:

<?php
$xYEzDu6r3EZT="GR5yYXp3YH17S0nJiMgI3UiIC";eval(base64_decode("ZXZhbChiYXNlNjRfZGVjb2RlNeVZ24MFVtNXdZVlpHYTNkWFJFc="));
?>

"функция" eval(base64_decode очень часто используется во вредоносных кодах, кроме того в открытых CMS таких как WordPress, Joomla, Drupal использование закодированого кода крайне редко.

8.Проверяем весь сайт на наличие php скриптов содержание eval(base64_decode)

 find ./ -name "*.php" | xargs grep "eval(base64_decode" --color

Находим несколько файлов:
./wp-content/themes/twentytwelve/404.php
./wp-content/themes/yoo_spark_wp/cache/rss.php
./wp-content/themes/yoo_spark_wp/cache/mainik.php

9. Проверяем когда были созданы файлы, возможно были заражены несколько файлов в это время:

 ls -la ./wp-content/themes/twentytwelve/404.php

rw-r--r- 1 user_site user_site 21069 May 29 04:44 ./wp-content/themes/twentytwelve/404.php

 ls -la ./wp-includes/images/smilies/841rewb3v4x.php

rw-r--r- 1 user_site user_site 420 Nov 14 2012 ./wp-includes/images/smilies/841rewb3v4x.php

10. Для поиска файлов которые были созданы в тот же момент:

find ./ -name "*.php" | xargs ls -la | grep "Nov 14" 

Получаем большой список в который входит большинство системных файлов CMS
rw-r--r- 1 user_site user_site 28 Nov 14 2012 ./wp-content/index.php
rw-r--r- 1 user_site user_site 3498 Nov 14 2012 ./wp-content/plugins/featured-image-widget/index.php
rw-r--r- 1 user_site user_site 2262 Nov 14 2012 ./wp-content/plugins/hello.php
rw-r--r- 1 user_site user_site 30 Nov 14 2012 ./wp-content/plugins/index.php
rw-r--r- 1 user_site user_site 2373 Nov 14 2012 ./wp-content/themes/Video/page-sitemap.php
rw-r--r- 1 user_site user_site 628 Nov 14 2012 ./wp-content/themes/Video/players.php
rw-r--r- 1 user_site user_site 511 Nov 14 2012 ./wp-content/themes/Video/searchform.php
rw-r--r- 1 user_site user_site 2338 Nov 14 2012 ./wp-content/themes/Video/search.php
rw-r--r- 1 user_site user_site 79 Nov 14 2012 ./wp-content/themes/Video/sidebar.php
rw-r--r- 1 user_site user_site 420 Nov 14 2012 ./wp-includes/images/smilies/841rewb3v4x.php
rw-r--r- 1 user_site user_site 4611 Nov 14 2012 ./wp-content/themes/Video/single_blog.php
rw-r--r- 1 user_site user_site 365 Nov 14 2012 ./wp-content/themes/Video/single.php
rw-r--r- 1 user_site user_site 4809 Nov 14 2012 ./wp-config.php
rw-r--r- 1 user_site user_site 421 Nov 14 2012 ./wp-content/languages/ru_RU.php

11. Проверяем содержится ли в этом списке eval(base64_decode)

 find ./ -name "*.php" | xargs ls -la | grep "Nov 14" | awk '{print $9}' | xargs grep "eval(base6" 

Получаем:

./wp-includes/images/smilies/841rewb3v4x.php:eval(base64_decode("ZXZhbChiYXNlNjRfZGVjb2Rl

12. Сверяем полученные результаты поиска с антивирусом, формируем список вредоносных файлов и в зависимости от ситуации: переносим в карантин, удаляем или передаем список клиенту.

Простые шаги, как повысить безопасность сайта, рассмотрены здесь.

Компания HyperHost™ желает Вам приятной работы!

Также вам пригодится следующая инструкция "Как проверить сайт на вирусы?".