Один из подписчиков списка рассылки SecLists прислал описание нового руткита, который работает под 64-битной ОС Linux и использует Nginx. Вредоносную программу пользователь обнаружил на своём сервере Debian Squeeze, веб-сервер Nginx 1.2.3.

Обнаружить руткит удалось после того, как некоторые посетители сайта пожаловались, что им отгружается странный iframe с редиректом на вредоносную страницу. Каким-то образом злоумышленнику удалось внедрить код на страницы сайта.

Расследование показало, что Nginx возвращает клиенту ответ с вредоносным фреймом даже в случае неверного запроса.

server {
    listen          80 default backlog=2048;
    listen          443 default backlog=2048 ssl;
    server_name     _;
    access_log      off;
    (...)
    location / {
        return  400;
    }
}

В данном случае Nginx не обращается в кэш после получения плохого запроса, а return 400 означает, что он возвращает предустановленный ответ из памяти.

Вот как выглядит ответ.

HTTP/1.1 400 Bad Request
Server: nginx/1.2.3
Date: Wed, 07 Nov 2012 00:01:24 GMT
Content-Type: text/html
Content-Length: 353
Connection: close

<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white"><style><iframe src="http://malware-site/index.php
"></iframe></div>
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.2.3</center> 

Покопавшись в системе, админы обнаружили на сервере руткит и несколько скрытых процессов с именами вроде write_startup_c и get_http_inj_fr.

Собственно, вот сам руткит.

lib+modules+2.6.32-5-amd64+kernel+sound+module_init.lo

Специалисты «Лаборатории Касперского» проанализировали код и выяснили, что руткит специально создан для версии ядра 2.6.32-5-amd64, бинарный файл размером более 500 Кб содержит неудалённую служебную информацию от разработчиков, некоторые запланированные функции руткита не реализованы или работают с ошибками. Эксперты ЛК объясняют, что внедрение фреймов происходит путём подмены системной функции tcp_sendmsg, то есть внедрение в HTTP-трафик осуществляется путём непосредственной модификации исходящих TCP-пакетов на сервере Linux.

Для получения боевой нагрузки руткит связывается с удалённым сервером с авторизацией по паролю.

Вредоносной программе присвоено название Rootkit.Linux.Snakso.a, более подробное описание см. в блоге CrowdStrike.



Оставить мнение