Wordpress JSON vuln

Posted: 2017-03-14 in Приколы, Security
Метки:

Обнаружил тут на одном ресурсе, запущенном на уязвимой версии вордпресс 4.7.1, следы нездоровой хакерской деятельности. Впрочем, красного фрибсд-шного чёрта на пол-страницы и рекламу казино на фоне разъехавшейся вёрстки сложно было не заметить 😀

Кислотные надписи типа «HaCkeD By BALA SNIPER», «HaCkEd By GeNErAL HaCkEr» и прочие следы дефейсеров-затейников вкупе с тоннами спамных ссылок тоже присутствовали. Почему-то многие владельцы сайтов не делают бэкапов, и потом начинают при такой мелкой оказии вручную херачить в базе и скриптах, тратя на это много сил, времени и нервов.

Но поскольку при любом взломе лучше всю ВМ считать скомпрометированной, то сперва изолируем контейнер с дефейснутым сайтом от основной сети:

Можно поставить просто другой свободный адрес, а можно и в отдельный влан утащить.
Потом запоминаем номер похеканной ВМ (в нашем случае 103), и ищем её бэкапы в хранилище RootBackups (НЕ во вкладке Backup самой ВМ, в этом случае мы восстановим бэкап поверх текущего контейнера):

И восстанавливаем бэкап под каким-нибудь новым номером. Запускаем, видим, что сайт работает, следов дефейса нет.
Дальше можно начать спокойно разбираться, что именно произошло, если это интересно.

Как оказалось, через багу в XML-JSON, найденную относительно давно/недавно, примерно месяц назад, злодейские скрипты записали в базу много мусора.
В логах это выглядит как пачка POST-запросов к /wp-json/… , время в которых будет точно совпадать со значением поля post_modified в оставленной дефейсером записи из таблицы wp_posts.
Если у вас тоже есть вордпресс — среди куч виртуалок может легко найтись редко вытаскиваемый на свет божий вордпресс не самой свежей версии, в котором могут обнаружиться следы чужого вмешательства. Яндекс по фразе «HaCkEd By GeNErAL HaCkEr» находит примерно 50 млн ответов, так что заброшек довольно много =)

После того на свежевосстановленной ВМ обновляем вордпресс, и если нам не нужны технические страницы, то прописываем в .htaccess (корень сайта) вот такое:

Redirect 403 /wp-json

# BEGIN WordPress
<IfModule mod_rewrite.c>
 ...
# END WordPress

<Files xmlrpc.php>
 Deny from all
</Files>

И смотрим, не осталось ли ещё где подобных заброшек со старыми версиями. И таки да, бэкапы рулят.

Реклама

Обсуждение закрыто.