Учитывая, что мой предыдущий пост был принят в штыки многими линуксоидами, думаю, будет логично рассмотреть более подробно указанный пример, тем более что на днях к нам поступила новая модификация Trojan-Dropper.Linux.Prl.
Trojan-Dropper.Linux.Prl.b
Имя файла: ob.pl. Тип файла: ELF. Обнаружен пользователем на своём сервере после публикации предыдущего блогпоста. Принцип работы остался прежний — создание процесса «/usr/bin/perl» и передача ему через pipe Perl-скрипта.
Сам скрипт хранится в теле трояна в зашифрованном виде. Алгоритм расшифровки при этом выглядит так:
Алгоритм расшифровки Perl-скрипта.
Основная цель работы расшифрованного Perl-скрипта — рассылка спама.
Часть Perl-скрипта, отвечающего за рассылку писем:
if ($session->{$handle}{status} eq «mx_rd»)
{
$session->{$handle}{buffer} = «HELO $buffers->{helo}x0Dx0A»;
$session->{$handle}{status} = «mx_gr»;
}
elsif ($session->{$handle}{status} eq «mx_gr»)
{
my ($mail) = &mail($session->{$handle}{sender});
$session->{$handle}{buffer} = «MAIL FROM: x0Dx0A»;
$session->{$handle}{status} = «mx_mf»;
}
elsif ($session->{$handle}{status} eq «mx_mf»)
{
my ($mail) = &mail($session->{$handle}{object});
$session->{$handle}{buffer} = «RCPT TO: x0Dx0A»;
$session->{$handle}{status} = «mx_rt»;
}
elsif ($session->{$handle}{status} eq «mx_rt»)
{
$session->{$handle}{buffer} = «DATAx0Dx0A»;
$session->{$handle}{status} = «mx_dt»;
}
elsif ($session->{$handle}{status} eq «mx_dt»)
{
$session->{$handle}{buffer} = &data($session->{$handle}{object}, $session->{$handle}{sender});
$session->{$handle}{buffer} .= «x0Dx0A.x0Dx0A»;
$session->{$handle}{status} = «mx_dr»;
}
elsif ($session->{$handle}{status} eq «mx_dr»)
{
$buffers->{good}[0] ++;
$buffers->{good}[1] .= «$session->{$handle}{object}x0A» if $buffers->{level};
$session->{$handle}{object} = «»;
$session->{$handle}{buffer} = «QUITx0Dx0A»;
$session->{$handle}{status} = «mx_qt»;
Пример рассылаемых писем.
В боте при этом указаны IP-адреса, где установлены административные панели для его работы: 195.144.21.122, 195.144.21.124 и 194.54.83.114.
Откуда дровишки?
Прочитав несколько топиков на различных форумах по данному вопросу и связавшись с администраторами нескольких зараженных серверов, нам удалось выяснить, что данные спам-боты появились на их серверах вследствие 3-х основных причин:
- кража пароля от FTP, с помощью вредоносных программ;
- перебор паролей от FTP, SSH по словарю;
- проникновение через phpbb.
Во всех трёх случаях загрузка спам-бота сопровождалась изменением HTML-файлов и вставкой в них iframe’ов на зараженные сайты.
Обнаружение, лечение, предупреждение повторного заражения
В общем случае обнаружить работу спам бота можно просто с помощью команды «ps -aux». При этом можно выделить три случая, характерных для заражения данным ботом — в зависимости от способа, которым злоумышленник установил его на систему:
- интерпретатор Perl запущен с параметрами -w и путем к файлу, непосредственно содержащим указанный спам-бот (характерен для случая проникновения через phpbb);
- Perl с параметром -w и путём к файлу, отсутствующему на сервере. (характерен для случая с кражей пароля от FTP с помощью троянских программ);
- Perl, запущенный без параметров с помощью дроппера (характерен при переборе пароля).
Из всего выше указанного можно сделать простые выводы для предотвращении заражения машин этим спам-ботом:
- Использовать сложные пароли
- Использовать последние версии продуктов установленных на сервере
- Следить за безопасностью на всех компьютерах, используемых для доступа к сайтам.
И еще раз о безопасности *nix