Чистим вирус на сайте

[30/09/2015]

Для того, чтобы поискать вирусы на сайте запускаем:

/var/tmp/anivir.sh /що перевіряти > /var/tmp/result.txt

Получим в файле /var/tmp/result.txt результат в таком виде:

Found file /var/www/gallery/data/www/sundao.com.ua/lib/smarty/plugins/function.html_select_date.php.
Found file /var/www/gallery/data/www/sundao.com.ua/lib/smarty/plugins/function.config_load.php.
Found file /var/www/gallery/data/www/sundao.com.ua/lib/smarty/plugins/function.fetch.php.
Found file /var/www/gallery/data/www/sundao.com.ua/lib/smarty/plugins/modifier.regex_replace.php.
Found file /var/www/gallery/data/www/sundao.com.ua/lib/smarty/plugins/modifier.replace.php.
Found file /var/www/gallery/data/www/sundao.com.ua/lib/smarty/plugins/modifier.count_paragraphs.php.
Found file /var/www/gallery/data/www/sundao.com.ua/lib/smarty/plugins/function.assign_debug_info.php.

Например:

результат

Посмотрим что представляет собой скрипт поиска:

#!/bin/bash
#
# This script remove malware of PHP files.
#
# In this case it will remove some malicious code
# from all Wordpress PHP files that is at top of
#  every PHP file.
#
# The string at the top of every file is:
#
# <?php if(!isset($GLOBALS["\x61\156\x75\156\x61"])) { $ua=strtolower($_SERVER["\x48\124\x54\120\x5f\125\x53\105\x52\137\x41\107\x45\116\x54"]); if ((! strstr($ua,"\x6d\163\x69\145")) and (! strstr($ua,"\x72\166\x3a\61\x31"))) $GLOBALS["\x61\156\x$
#
# This script tries to find the string inside $_SERVER
# of the above line at the top of the files to determine
# if the file is infected. If you run the script and
# nothing seems to be infected but you suspect and you 
# want to be sure, just open any PHP of Wordpress and 
# check if the malicious line code is present. If is 
# present but the script did not detect, it is because 
# the content inside $_SERVER may be diferent.
# In these cases, just replace in this script the string
# in the -e parameter of grep line with the content of 
# $_SERVER found in your PHP (remember to escape 
# the \ with \\\\) and run again this removal script.
#
#
# JavocSoft 2014
#

if [[ -z "$1" ]]; then
  echo "Directory where to find is required."
else
  grep -rnwl $1 --include \*.* -e "\\\\x48\\\\124\\\\x54\\\\120\\\\x5f\\\\125\\\\x53\\\\105\\\\x52\\\\137\\\\x41\\\\107\\\\x45\\\\116\\\\x54" | while read -r filename ; do
    if [[ ! -z "$2" ]]; then
       echo "Found file $filename. Cleaning..."
       awk 'BEGIN {matches=0} matches < 1 && /1/ { sub(/^.*<?php/,"<?php"); 
matches++ } { print $0 }' $filename > $filename.purged
       mv $filename $filename.bck
       mv $filename.purged $filename
    else
      echo "Found file $filename."
    fi

  done
  echo "Done."
Fi

Сам вирус записывает себя в самый верх php файлов вот так:

вирус в файле

Нужно создать антивирус, который позволит пройтись по всему списку файлов с вирусом и почистить его. При этом на всякий пожарный нужно создавать копию файла перед чисткой.

Рабочая папка антивируса /var/www/naturephoto/data/www/nature-photographing.com/virus_delete

В файле vir.txt содержится список зараженных файлов vir.txt

В эту папку будем копировать все файлы перед удалением вируса /var/tmp/delete

Для того, чтобы скрипт отработал продолжительное вермя установим в файле
/var/www/naturephoto/data/php-bin/php.ini

Значение max_execution_time = "300000"

Затем не забыть вернуть назад!

Теперь список файлов:

www/nature-photographing.com/virus_delete/delete-virus.php – собственно проходится по всему списку зараженных файлов из списка vir.txt и удаляет вирусы, перед тем делая копию зараженного файла на всякий случай.

Обнаружили 25/09/2015:

Поиск вирусов на сайтах

[14:13:33] Shanovniy VSV: Found file /var/www/led/data/www/leds-tech.ru/video-old-ver-2/add-news.php.

поиск вируса

[14:14:10] andrush85-skype: ага
[14:14:12] andrush85-skype: почистив video-old-ver-2/add-news.php
[14:14:20] Shanovniy VSV: /var/tmp/anivir.sh /path ЗНАХОДИТЬ ЦЕЙ ВЫРУС
[14:14:22] andrush85-skype: быльше немаэ?
[14:14:28] Shanovniy VSV: НЫ
[14:14:57] Shanovniy VSV: де path шлях де шукати
[14:15:59] andrush85-skype: ок а як запустити для консолі?
[14:16:15| Змінено в 14:16:30] Shanovniy VSV: /var/tmp/anivir.sh /path
[14:17:15] andrush85-skype: він буде тільки шукати без лікуванні?
[14:17:22] Shanovniy VSV: так
[14:17:55] Shanovniy VSV: /var/tmp/anivir.sh /path clean - витирає тільки частину коду
[14:18:08] andrush85-skype: ок
[14:18:16 | Змінено в 14:18:53] andrush85-skype: ок
по каталогу повністю з усіма вкладеннями
[14:19:08] andrush85-skype: все виводиться тільки на консоль?
[14:19:19] Shanovniy VSV: можна перенаправить у файл
/var/tmp/anivir.sh /var/www/led/data/www > ./res.txt
створить в поточному каталозі файл рез.тхт і запише в нього результат, якщо файл є то перезапише його
[14:20:57] andrush85-skype: ок
[14:21:05] Shanovniy VSV: шукає лише в пхп
[14:21:29] andrush85-skype: а треба мабудь і в .inc шукати
чи якы там ще бувають..
[14:21:44] Shanovniy VSV: давай тоді у всих
Shanovniy VSV: *

Print Friendly Version of this pagePrint Get a PDF version of this webpagePDF