Внимание. В данный момент на сайте отключены практически все плагины, за исключением жизненно важных – не работает увеличение картинок, счетчик закачек, подписка на комментарии, и все остальное. Все статьи, обзоры и т.п. функционируют нормально. А теперь – что случилось.
Даже не знаю с чего начать. Не то, чтобы сайт совсем поломали, но подсадили какую-то гадость. Что точно – так это то, что шелл залили. Наверное, начну хронологически с момента обнаружения проблем.
Зайдя в понедельник 18.02.2013 в CPanel, я обнаружил, что по данным Resource Usage-ера потребление виртуальной памяти увеличилось до максимальных 2 Гб. Причем – увеличилось еще два дня назад, в субботу, в конце дня. Тихо офигев от такого дела, я отправил запрос к своему Хостеру Fozzy.com, с просьбой посмотреть, что произошло, и прибить скрипт, вызвавший утечку памяти. Ребята сработали не только супер-быстро, но и сделали гораздо больше, чем я просил. Они протестировали сайт встроенным антивирусом ClamAV, и обнаружили целый палисадник шеллов, вирусов, троянов и бэкдоров в одной из директорий темы сайта (кэшевой), после чего отправили их все в карантин. Проблему это решило только частично, поскольку стали постоянно появляться новые. На следующий день я сел за решение этой проблемы.
Итак, жил я не тужил, полностью уверенный, что если вход по фтп защищен надежным паролем – то взломать сайт крайне тяжело. Это, по всей видимости, так и оказалось. Никаких следов проникновения по фтп зафиксировано не было, как и входов в админку сайта. Т.е. сам по себе сайт выстоял. Сломали только пароль к базе данных, лежащий в wp-config.php. Однако, нашлась дыра – или в теме, или в одном из установленных плагинов, или в самом вордпрессе, через которую в директорию сайта были закачаны php скрипты. Начал анализировать, достал бэкап еще до переезда к Фоззи. Заглянул в директорию темы – и обнаружил, что один из файлов вируса там уже присутствует. Слава богу, только один. Значит, сидел и ждал своей очереди более трех месяцев, чего-то по тихому делая. А я-то удивлялся – почему у меня среднее потребление виртуальной памяти зашкаливает за 200 Мб. Вывод второй – восстановить все из бэкапа не получится, т.к. там он тоже присутствует.
Ну чтож – надо решать проблемы последовательно. Первым делом – скачал тему, использующуюся у меня, с сайта ее авторов. Сравнил все файлы, что лежат у меня на сайте, и в скачанном архиве. Из тех, что отличаются, отобрал все те, в которые изменения вносил я, просмотрел их на предмет каких-либо еще изменений в коде, вызванных вирусом/враждебным вмешательством. Скопировал все те файлы, которые когда-либо редактировал я, в каталог со скачанной темой, заменив ими исходные файлы темы. Таким образом, получил чистую от вирусов тему, но с файлами, которые изменялись на протяжении жизни сайта только мною. После этого, скачал новую версию вордпресса, с ней проделал ту же самую процедуру, включая все файлы в корне, типа robots.txt. Скачал всю директорию wp-content/uploads/, на всякий случай просмотрел на наличие подозрительных файлов, ничего не нашел, выкачал последний бэкап базы данных (вот тут, конечно, может быть засада – просмотреть, не внесены ли изменения и в нее, и найти их – задача уже просто непосильная). После этого – стер все содержимое директории www (она же public_html). Т.е. абсолютно все. После этого – уничтожил пользователя и базу данных на сервера. Написал письмо на хостинг, с просьбой убить все процессы, запущенные от моего аккаунта. После того, как пришло письмо, что они были убиты – потребление виртуальной памяти упало практически до нуля, что свидетельствовало о том, что вируса не осталось. Поменял все пароли на фтп, панель хостинга, базу данных. Создал новую базу данных, закачал в нее последний бэкап. По phpMyAdmin зашел, и поменял пароль для админа сайта. Закачал по Фтп Вордпресс с моими файлами, изменив в wp-config.php все данные по входу; папку темы, изменив ее название, и папку с uploads. Зашел в админку сайта, параметры-постоянные ссылки, и сохранил, соответственно – обновив .htaccess. Установил только пару самых важных плагинов, чтобы посмотреть – как все будет работать, защитил директории на просмотр. Поставил новый – timthumb.php – об этом ниже.
Пока эти два дня полет нормальный, никаких новых вирусов/доступов к сайту зафиксировано не было, что по всей вероятности говорит о том, что дыра была не в вордпрессе, а в одном из плагинов или теме. Я грешу на timthumb.php из темы – поскольку использовавшаяся версия 1.30 была подвержена уязвимости (как показал плагин Timthumb Vulnerability Scanner). Но пока еще понаблюдаю, до этих пор новые плагины устанавливать не буду. Все найденные мною эксплоиты/шеллы выложу чуть позже в rar-архиве, может кто разбирающийся посмотрит и подскажет, что там к чему. Если попадутся какие пароли – все они уже не актуальны.
Ну и еще раз спасибо Фоззи – в какой раз уже оперативно помогают с решением проблем, за смешные 120 рублей в месяц (это у них стоимость хостинга такая, проблему они вообще бесплатно локализовали). Если бы знал о них до того, как запустил сайт на R01, то сразу бы у них брал хостинг, и не мучался бы потом с переездом.
Добавить комментарий