Борьба с WordPress-червём GetMama

в 15:35, , рубрики: php, security, wordpress, метки: , , ,

Привет!
Подлый вирус GetMama пожрал кучу сайтов на вордпрессе. В том числе несколько моих. И я вам расскажу, как это почистивать сущность в виде гномика.

Началось с того, что некоторые сайты начали открываться очень долго. Причём только те, что на вордпрессе.
Я долго не мог понять, что же за беда приключилась. Обновил полностью всё ПО на сервере (думал, можнт wp какую-нибудь хитрую срань использует). Но это не помогло.
Тогда я стал искать, какая же функция выполняется так, сука, долго.
Для этого я использовал xhprof.

Выяснилось, что это curl_exec.

image

Курл_экзек вызывался функцией с каким-то арабским названием «ahfudflfzdhfhs»

image

А эта функция в свою очередь вызывала определённое количество сранья, включая GetMama

image

Именем этой функции и называется вирус.
Гет мама стучится на свой сервер и качает оттуда код, который выполняется уже в коде сайта.

Чобы временно спасти ситуацию, я просто добавил в начало каждого index.php моих вордпрессовских сайтов «function GetMama(){}». Это дало мне время на поиски реальной угрозы.

Никакой поиск не дал результатов. Ни «GetMama», ни «ahfudflfzdhfhs» в коде найдено не было. Это конечно не удивительно. Но удивительно, что base64_decode тоже не попадался в неположенных местах.
Пришлось гуглить. По словам товарищей по беде getmama начиналась словами «/*god_mode_on*/», но и это вхождение я не смог найти ни в одном файле.
Я долго ломал голову, глядя на файлы, и не мог понять, где же заражённый участок.

Оказалось, что везде. Реально каждый php файл вордпресса был заражён, а я не мог этого заметить.
Когда я понял, как им это удалось, мне стало немного стыно.
В самом начале. После «<?php» ребята добавляли туеву кучу пробелов, а только потом подписывали вредоносный код.

Вот он: http://pastebin.com/vER6azvS

Теперь эта фигня ещё и /*god_mode_on*/ зашифровывала.

Но в итоге проблема решилась одним маленьким скриптом:

find . -type f -name "*.php" -print | xargs perl -pi -e's//*[a-z0-9]{32}_on*/.*/*[a-z0-9]{32}_off*///gi' *.php

Пройтись по всем php файлам в каталоге с вордпрессом и удалить вирус.

Если у вас нет ssh доступа к вашему хостингу, скачайте файлы к себе и удалите код локально. Если у вас Windows, то придумайте каким образом выполнить замену регулярным выражением на кучу файлов.

Автор: q_styler

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js