RaSKaLBaS.com
  • Полезное
  • Мотивация
  • Полезные ссылки
  • УСЛУГИ
  • Контакты
No Result
View All Result
  • Полезное
  • Мотивация
  • Полезные ссылки
  • УСЛУГИ
  • Контакты
No Result
View All Result
Raskalbas.com
No Result
View All Result
Home Полезное

Как удалить вредоносный код с тысячи зараженных файлов

admin by admin
09.02.2014
A A
10

Привет друзья! Сегодня речь пойдет о вирусах и вариантах их лечения. Хочу рассказать свою методику поиска и лечения зараженных файлов на сервере/хостинге.  Столкнулся с такой проблемой несколько месяцев назад, с тех пор выработалась схема поиска и лечения.

вирусов нет

С каждым годом вирусы мутируют и заражают все подряд, вплоть до БД.  Словил вирусню, которая изначально вносила правки только в файлы: footer.php , header.php , function.php .  Со временем вирус мутировал и начал заливать шелы и доры на хостинг. Я что-то там чистил, удалял, но видимо не до конца. В конечном итоге злоумышленникам это не понравилось и они решили прописать свой код в каждый (!) php файл на хостинге.

Можете представить меня, когда я осознал то, что придется либо перезаливать все файлы по новой с бекапов, либо скачивать с инета чистую версию ВП, чистить все файлы темы, делать бекапы, удалять все и перезаливать чистые файлы, либо править все вручную. Перезалил 2 сайта и подварился, ведь надо было еще 5 доменов перезалить:)

Как найти зараженные и вредоносные файлы на сайте

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

Второй способ: Проверка сайта онлайн сервисами. Для проверки отношения ПС к сайту можно использовать сервис http://2ip.ru/site-virus-scaner/  .
Проверить сайт с помощью Dr.Web — http://vms.drweb.com/online/
если погуглить — есть еще множество сервисов.

Третий способ самый интересный. Мы будем использовать скрипт Айболит http://www.revisium.com/ai/  Этот скрипт для меня был просто находкой. Инструкция по эксплуатации есть как на сайте, так и внутри архива при скачивании

Чит-код: Многие хостинги активно используют данный скрипт и/или знают о его существовании. По этому если вам сложно самому  настроить и запустить скрипт — обратитесь в ТП хостинга — вам обязательно помогут:)

 

скрипт айболит

Обработка скриптом может занять прилично времени, по этому следует запастись терпением.

После того, как скрипт обнаружит все зараженные файлы, расшаренные папки, не безопасные файлы, ненужные файлы — сформируется отчет в виде html страницы, которая будет лежать в корне сайта. Выглядит он примерно вот так:

screenshotМожно смело просмотреть все зараженные файлы, открыть их и найти вредоносный код. В моем случае было заражено 445 файлов предоносным кодом типа

eval base64_decode(и тут зашифрованый код вида kjlkjgfjrkgl;kj)

Полностью писать не хочу, а то вдруг еще ПС решит, что у меня вредоносный код на странице:)

Следущим шагом необходимо очистить все файлы от данного кода. Можно воспользоваться блокнотиком и заменить код на пробел, уже хотел так и сделать, как мне попалось очень интересное решение данной проблемы с помощью php кода. Его предложил Гендальф Серый вот в этой ветке вебмастерса.

Пожалуй скопирую код сюда в статью для тех, кому религиозные взгляды не позволяют переходить по ссылкам или кому просто лень:)

<?php

//gendalf_grey for webmasters.ru

$virus_text = 'в эти кавычки пишем вредоносный код';
$skip_files = array ('delvir.php');
$del = true;
$dir = getcwd().'/';
$num_infected = 0;
function dir_walk($callback, $dir, $types = null, $recursive = false, $baseDir = '') {
if ($dh = opendir($dir)) {
while (($file = readdir($dh))!== false) {
if ($file === '.' || $file === '..') {
continue;
}
if (is_file($dir . $file)) {
if (is_array($types)) {
if (!in_array(strtolower(pathinfo($dir . $file, PATHINFO_EXTENSION)), $types, true)) {
continue;
}
}
$callback($baseDir, $file);
}elseif($recursive && is_dir($dir . $file)) {
dir_walk($callback, $dir . $file . DIRECTORY_SEPARATOR, $types, $recursive, $baseDir . $file . DIRECTORY_SEPARATOR);
}
}
closedir($dh);
}
}
function del_virus ($fdir, $ffile)
{
$flag = false;
$filename = $fdir.$ffile;
echo $filename;
if (!in_array($ffile, $GLOBALS['skip_files'])){
$handle = fopen($filename, "r");
$fsize = filesize($filename);
if (!$fsize){
$contents = '';
}else{
$contents = fread($handle, $fsize);
}
fclose($handle);
if (strpos($contents, $GLOBALS['virus_text']) !== false) {
if ( $GLOBALS['del'] ) {
$contents = str_replace($GLOBALS['virus_text'], '', $contents);
$handle = fopen($filename, "wb");
fwrite($handle,$contents);
fclose($handle);
echo " - deleted";
}
echo " - infected";
$GLOBALS['num_infected']++;
}
}else{
echo " - skipped";
}
echo "<br/>";
};
dir_walk('del_virus', $dir, array('php','php5','html','htm','shtml'), true, $dir );
echo "Num infected = $num_infected <br/>";
?>

Вместо $virus_text = 'в эти кавычки пишем вредоносный код';  вставляем свой вредоносный код, делаем бекапы сайтов, сохраняем код как delvir.php и заливаем в корень сайта.  Затем вызываем файл вбив в адсерсную строку site.ru/delvir.php

Ждем и скрипт нам выдаст кол-во зараженных файлов которые он нашел и очистил от кода.  На данном блоге он показал мне Num infected = 445  зараженных файлов.

Шаг номер 3 Проверяем проделанную работу. Запускаем повторно айболит и смотрим не осталось ли еще зараженных файлов.

У меня показывает что все чисто:) Бинго сайт очищен от вирусов. И мало того, как только почистил сайт от вирусов в панели ЯВМ появилась вот такая картинка:

блог вернулся в выдачу

Связанны ли эти 2 события — не знаю. Есть еще 1 пациентик с вирусами и отсутствием страниц в выдаче. Проверю на нем:) Почищу сайтик , отпишусь Платонам. Если сайт влетит в выдачу  — будет еще 1 пост:)

Как защитить сервер, хостинг и сайты от взлома

Если вы дуб дубом в этом, как и я — то вариантов не много:)

1) Обратиться к разработчику Айболита — берет 1900 руб за 1 сайт, но по отзывам делает работы больше чем договаривались, любезно разъясняет все «атеншены» и дает рекоммендации на будущее

2) Найти шарящего сисадмина и попросить настоить всю делюгу. Стоимость услуги от 1к руб за сайт.

3) Сменить все логины и пароли. Лично я использую для этого программу KeePass . С помощью ее генерируются случайные логины и пароли из 16 и более символов. Программа хранит все логины и пароли в базе данных, на которую тоже вы устанавливаете пароль.  Ее можно так же заинсталить в ДропБокс и будет доступ со всех устройств к ней:) Делайте бекапы базы с ключами, прогу иногда глючит.

4) Настроить дополнительную http авторизацию перед входом в wp-admin.  Инструкция от fastvps

1) создать файл с названием «.htpasswd» в корне сайта и при помощи сайта www.htaccesstools.com/htpasswd-generator/ сгенерировать его содержание, указав желаемый логин и пароль.

2) для Joomla в файл «.htaccess» в папке /administrator/ добавить следующие строки:

AuthName «Access Denied»
AuthType Basic
AuthUserFile полный_путь_до_корня_сайта/.htpasswd
require valid-user

для WordPress в файл «.htaccess» в корне сайта добавить следующие строки:

<Files wp_login.php>
AuthName «Access Denied»
AuthType Basic
AuthUserFile полный_путь_до_корня_сайта/.htpasswd
require valid-user
</Files>

где «полный_путь_до_корня_сайта» — это абсолютный путь от корня файловой системы.

например, для ISPManager он будет выглядеть так: /var/www/имя_пользователя/data/www/адрес_сайта/.htpasswd

3) проверить работу данной конструкции, попробовав зайти в админ-панель сайта.

5) Использовать плагин Better WP Security.

6) Удалить всех старых и не используемых пользователей. Часто, делая для кодера/редактора/автора  акк на сайте мы забываем удалить их после проделанной работы. Это не гуд, у самого есть доступы к парочке сайтов, на которых был в админке более года назад.

На самом деле этот список можно продолжать и продолжать. Вариантов как защититься множество и всех их писать в 1 статью нет смысла. Портянки никто не читает:)  Если ты дочитал до этого места — оставляй свой комментарий по поводу статьи.

Ссылки для тебя:

  1. Как проверить текст на ошибки
  2. Используем SeoTo.Me для проверки сайтов
  3. Кейс: как вывести сайт из под Гугл Пингвина

ПохожиеПосты

Полезное

Как сделать адаптивные таблицы в WordPress

by admin
10.11.2020
Полезное

Кейс: как вывести сайт из под Гугл Пингвина

by admin
23.04.2015
Используем SeoTo.Me для проверки сайтов
Полезное

Используем SeoTo.Me для проверки сайтов

by admin
25.10.2014
проверка орфографии
Полезное

Как проверить текст на ошибки

by admin
23.09.2014
Load More
RaSKaLBaSовский блог:)

© 2020 Raskalbas.com.

  • Полезное
  • Мотивация
  • Полезные ссылки
  • УСЛУГИ
  • Контакты

No Result
View All Result
  • Homepages

© 2020 Raskalbas.com.

Adblock
detector