Поиск спамерского скрипта
Как искать спамерский скрипт? Рассмотрим все методы в данной инструкции.
1. Просматриваем почтовую очередь:
Exim:
exim -bpPostfix:
mailq
2. Ищем исходящий спам:
Exim:
exim -bp|egrep '<.*@.*..*'|cut -d\@ -f2|cut -d\> -f1|sort|uniq -c или exim -bp | exiqsummPostfix:
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 <[email protected]>) 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" <[email protected]> 030 X-Mailer: CSWMSAutoMailer:reg 052R Reply-To: "Postal Service" <[email protected]> 018 Mime-Version: 1.0 081 Content-Type: multipart/alternative;boundary="----------140211784653929ED602110" 051I Message-Id: <[email protected]>С которого видно, что спам рассылался с сайта 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.phpls -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™ желает Вам приятной работы!
Также вам пригодится следующая инструкция "Как проверить сайт на вирусы?".