Как вылечить от вирусов сайты на Drupal?

Почему сайты на Друпал заражаются?

  1. Несвоевременные обновления.
  2. Не правильные настройки (как минимум следует следовать тому что говорит сам друпал в отчёте о состоянии)
  3. Использованы костыли. Например свёрстаны темы, в темы "инклудами" вставлены формы обратной связи или прочие интерактивные скрипты без должной защиты.
  4. Уведены пароли из Тотал Командера (рекомендуем FAR)

Почему следует лечить вирус?

  • Это как зомби-апокалипсис. Сначала один сайт, потом другой ,потом все.
  • Из-за вирусов ваши сайты понижаются в поисковой выдаче.
  • Некоторые ваши посетители не смогут открыть Ваш сайт, так как их антивирус его просто заблокирует.
  • Вы можете потерять конфиденциальные данные.
  • Сайты с вирусами запрещают к подаче в контекстную рекламу - вы потеряете клиентов. Более того, поисковые системы могут исключить ваш сайт из индексации основываясь на факте заражённости вашего сайта.

Как быстро найти вирус/его последствия и вылечить самостоятельно на Drupal от BlackSeo

Ниже будет пример о том, как лечить ваши сайты находясь на сайте «Доброхост».

  1. Зайдите в командную строку по ssh
  2. Попросите Отличный шаред Хостинг для Друпал или своего хостинг-провайдера. если не установлен, установить drush (программа для Drupal, которая позволит делать обновления из консоли). Проверить установлен ли у вас drush можно так: drush -version находясь в командой строке по ssh. 
  3. Уберите сайт на обслуживание средствами Drupal.
  4. Не торопитесь сразу делать обновления. Попытайтесь сначала убрать максимальнос следы вирусов. для этого используйте в консоли подключившись по ssh команду find
  5. Зайдите в своей папку domains с помощью команды cd

cd domains/ваш сайт

ваш сайт на Доброхосте находится в папке www

поэтому вы можете смело написать команду

find www -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r | less 

с помощью клавиши стрелок вверх/вниз вы сможете прокручивать результат команды findтаким образом, в самом верху вы увидите последние изменённые файлы -крайне вероятно что именно там вы найдете беду. Самое распространение что сейчас можно встретить в Drupal (особенно шестой версии) это вот такой  Эксплойт -https://www.drupal.org/node/2327135  который делает много всяких пакостей. В основном это творение хитрым способом продвигает свои проекты. Встраивая в ваш сайт «свой сайт».

Внимание! Перед тем как взяться за команду rm -rf (рекурсивное удаление) проверьте нет ли симлинков. Часто этот вирус содержит симлинк, который по ФТП не удалится, а если вы запустите рекурсивное удаление - можете потерять все свои сайты так как правило симлинк содержит в себе ссылку на корень всех ваших сайтов.

Почередно выполните следующие команды

find ~/. -path \*/sym/\* -print   - если первая команда находит, выполняем дальше

find ~/. -path \*/sym/root\* -print

find ~/. -path \*/sym/root\* -print -exec rm {} \;

find ~/. -path \*/sym/\* -print

 

сам процесс удаления

find ~/. -path \*/sym/.htaccess\* -print  -delete

find ~/. -path \*/sym -print -delete

 

Следующие шаги. Для Drupal 6!

Вам просто необходимо 

  1. Скачать новый друпал, и заменить .htaccsess - в корне на свежий
  2. Создать новый .htccacsee согласно инструкции https://www.drupal.org/SA-CORE-2013-003 и поместиьт его в корень files, temp (или какие у вас указаны файловые директории) - это позволит вирусы распространяться помедленне
  3. Зайти в ваш settings.php если речь идет о указанном вирусе с большой вероятностью, у вас там сидит зверье в начале или конце файла вот такого формата
  4. include('/пусть до сайта/modules/book/part1_book-rtl.css');  - или подобное  удалите эту строчку

После этого, вам необходимо зайти на свой сайт зараженный браузером (если ваш антивирус это позволит) и найти какой код встроен в ваш сайт посмотрев «Исходный код» в нашем случае чатсо это было нечто подобное (но варианты разные)

<script type="text/javascript">

document.write('<' + 'di' + 'v sty' + 'le="position: absolute; l' + 'eft: -1901px; t' + 'op' + ': -2803px;">'); 

</script>

 

<a href="сайт/index.html">справочник домашних телефонов н новгорода</a>

 

<a href="сайт/sites/Magnitogorsk/index.html">телефонная база сумы</a>

 

много другого мусора

 

Что бы быстрее найти, предлагаем использовать grep вот команда, которую следует выполнить находясь в корне вашего сайта

grep -rl "телефонная" *    - эта команда найдет все файлы где есть «телефонная».   

 

Скорее всего это будут все темы вашего сайта. Аккуратно заходите в них удобным редактором и удаляте лишний кусок, которого там быть не должно.

 

После этого нужно найти файлы: css.php,  img.php, js.php

 - скорее всего это зло. Смело удаляйте 

find domains/ -name 'css.php'  - пример поиска этих файлов - найдет все css.php

 

так же нужно найти папку, в которую записаны «города и прочие справочники» так как каждый раз они разные, ищите по дате и удаляйте лишнее.

 

Послпе этого, найдите парсер SimplePie  -

grep -rl "SimplePie" * 

И так же удалите все что нашли. Как правило это так же вирус. Внимание! Удалять нужно не файлы где содержится этот кусок, а только тело вируса. Как правило оно начинается

//Create a new SimplePieCache object^M

и заканчивается

echo $prewue."_bad".$t."_bad".$t."_error_hash".$postwue;^M

}^M

другая часть вирусов прячется под видом Акисмета

grep -rl "Plugin Name: Akismet" * 

искореняйте зло.

После этого, если ваш Друпал работает с правами 444 - измениите всем settings.php права на 444 или минимально возможные.

Находясь в корне сайта это можно сделать одной командой

find domains/ -name 'settings.php' | xargs chmod 0444

Завершение

Теперь смело обновляйте Drupal до последних версий. Сделать это в консоли очень просто, зайдите в папук sites/all вашего сайта

там пишите

drush pm-update -  обновить Друпал

drushh cc all - обновить кеш Друпал

drush core-cron - дернуть cron  drupal

после этого

Смените все пароли (на сайт, на хостинг, на ssh, на фтп, на доступ администратора к Drupal)

Вопросы

Важно! Не выполняйте эти инструкции, если в вашем друпал сайте есть костыли (тема ваша уникализирована и установлена в не правильной папке, какие-то самописные модули сделанные не по Drupal way)

Вы можете пойти дальше и установить на свой сайт Ай-Болит или Манул от Яндекса не все, но большую часть беды вы увидите своими глазами автоматически.

Вы можете попросить разработчиков Ай-Болита вылечить ваш сайт за сумму от 2900 рублей.

Важно

Все это только малая часть. Рассмотрено удаление только одного вируса. В других случаях часто бывают другие подходы.

 

Основано на http://burnis.org/vir