Утро
Звонок на мобильный от друга, просит зайти в Радмин. Захожу смотрю, на экране гордая табличка такого плана:

Нахальство, таких мы любим. Пора поработать в свой выходной.
Захожу на сервер, начинаю расследование по взломам. Подробности под катом.
Анализ логов
Как показывает детальный анализ логов доступа, вход на сервер не происходил под каким-нибудь пользователем. Значит FTP/SSH хакерами не использовался. Анализируем логи веб-сервера, тут уже видно прямо в «лоб» — взламывали шеллом, который был в папке /wp-content/themes/1001hacker/kenel.php (а chmod зачем придумали?). Делаю кофе да побольше, смотрю общие логи. У меня настроена система — каждый сайт под отдельным пользователем стоит, а это означает что взлом был произведен не через какой-то конкретный сайт, а брался каждый сайт отдельно и производились с ним извращения. Возможно вручную, возможно скриптом.
Для уверенности еще раз приходимся по логам авторизации, брутфорса. Проверяю каждый сайт, удостоверяюсь в главной ошибке пользователей — неверный CHMOD.
Теща, ты откуда?
Опять же по логам выясняю, змеюку залили прямо из админ-панели.
Первый запрос был на корень:
GET /
после:
POST /wp-cron.php HTTP/1.1
Вот и дырку мы нашли. Утверждать не буду, запостили в крон сброс пароля от админа, возможно иньекция. Потом Хакер уже просто успешно авторизовался. Залил «тему» 1001hacker.zip, в которой был шелл.
На чем стоит?
У всех «потерпевших» установлен Wordpress 3.1 — 3.2.1.
Подводим итог
Взлом был осуществлен путем заливки шелла, находящегося в папке тем для вордпресса, потом был изменен сам код системы. Все это следствия самой элементарной ошибки неправильной назначения прав записи файлов. Конечно холст имел другие краски у RKH, если бы не наши политики вебсервера (аве мне), и следствия для нас были бы горячее.
Крик души
Уважаемые администраторы!
Настоятельно рекомендую использовать систему исполнения скриптов сайта от имени пользователя! По возможности напоминайте о средствах безопасности, таких как:
- огнетушители
- ремни и подушки безопасности
- про вождение в нетрезвом виде
… и самое главное:
- безопасность сохранения ключевой информации(логинов и паролей)
- этику выставления прав доступа к файлам
Это является частью нашей работы.
Уважаемые разработчики!
Не забываем требовать проверку прав доступа к файлам, не нужно требовать ставить 777, это несекьюрно. Напоминаем пользователям про файл ридми, и прочее, откуда узнаем версию.
Уважаемые пользователи!
При установки скриптов на хостинг, читайте больше документации на тему «как защититься от взлома», «Chmod», никогда не надейтесь на программистов. Ежедневно делайте бекапы к себе на компьютер, даже если это делает хостер.
Берегите ключевую информацию в строжайшей секретности, купите лицензионное антивирусное ПО, регулярно обновляйте всю систему (ОС, софт, ...).
В нашем случае были права на исполнение в папке /wp-content/themes/ и самого файла wp-cron.php.
P.S.: Информация будет продублирована в моем личном блоге.
По многочисленным просьбам моей души, я отказываюсь выдавать адреса пострадавших, логи, IP хакера и прочую информацию.