Злоумышленники используют Linux/Mumblehard для компрометации серверов, часть 2

Компонент Mumblehard, который занимается рассылкой спама (демон), также написан на Perl и находится внутри ELF-файла вредоносной программы. Сам демон запрашивает задачи на рассылку спама у C&C-сервера и поддерживает большинство функций ботов, специализирующихся на рассылке спама: шаблоны, отчеты, реализацию протокола SMTP и т. д. Мы ограничимся описанием тех функций Mumblehard, которые являются уникальными для такого семейства вредоносного ПО.d99abfc7dea94568a20be51f7b07324f.jpeg

Скрипты Perl являются кроссплатформенными и могут исполняться на любых платформах, которые поддерживаются этим интерпретатором. Однако, использованием констант EWOULDBLOCK и EINPROGRESS авторы ограничивают кроссплатформенность этого компонента такими ОС как Linux, FreeBSD, Windows. Ниже указан фрагмент вредоносного скрипта, который определяет версию ОС.a8f506b327f74b53b5cf6829ee718061.png

Мы наблюдали ситуацию, при которой злоумышленники запускали спам-скрипт через бэкдор Mumblehard. Этот скрипт работает до первой перезагрузки и не имеет в своем составе механизмов обеспечения своей автозагрузки. Бот может получать команды на рассылку спама двумя путями, через C&C-сервер и прокси.

Управляющий C&C-сервер Mumblehard прослушивает порт с номером 25 и ожидает запрос типа HTTP POST с соответствующими данными в качестве содержимого. Это содержимое представлено различными параметрами, которые указаны ниже в таблице.

35d06d8555a747889c0e7752a75767dc.pngТабл. Формат запроса спам-бота на управляющий C&C-сервер.

Поле Extra data содержит дополнительные данные запроса, но, похоже, что оно используется только для предоставления статистики на сервер о том, сколько электронных писем было разослано ботом. В таком случае оно имеет специальный заголовок, состоящий из 4-байтовых полей:

ID задачи; кол-во успешно отправленных писем; кол-во писем, отправка которых завершилась с ошибкой из-за проблем с сетевым подключением; кол-во писем, которые были отклонены SMTP-сервером. Оператор также может установить уровень детальности отправляемого ботом отчета (verbosity). Существует три таких уровня. Низший уровень соответствует минимальной отправляемой информации о количестве электронных писем, следующий уровень инструктирует бота на отправку адресов электронной почты в каждой вышеуказанной категории. Третий уровень позволяет оператору получить отчет о причинах успешного и безуспешного выполнения операции.Сервер отправляет ответное сообщение со статусом HTTP 200 OK и содержит настройки, передаваемые боту, список электронных адресов для рассылки, шаблон почтовых спам-сообщений.

67a4bd34a0e24761b49eca83010012f8.pngТабл. Формат ответа C&C-сервера спам-модулю.

e6d036ef2e2641d0ab14427b1206d2aa.pngТабл. Формат ответа C&C-сервера спам-модулю (продолжение).

8775cfd3b6ab42908236f8f436d5e856.pngТабл. Формат ответа C&C-сервера спам-модулю (продолжение).

Большинство проанализированных нами образцов компонента Mumblehard, который специализируется на рассылке спама, имели в своем составе другой компонент, специализирующийся на обслуживании прокси-подключений. Схема его работы довольно проста: он открывает входящий TCP-порт и прослушивает его на предмет входящих подключений.

Далее он отправляет специальное уведомление на C&C-сервер с указанием номера этого порта. Таким образом, он сообщает на сервер о готовности принятия подключений. На момент отправки уведомления на C&C-сервер, в списке разрешенных для подключения к прокси компьютеров находится только сам C&C-сервер. Далее, бот может быть проинструктирован на добавление других хостов в список разрешенных. Бот поддерживает только две команды для прокси: добавить IP-адрес в список разрешенных к подключению хостов и создать новый TCP-туннель.

Эти команды имеют определенную структуру, которая указана ниже в таблицах.

7e0a354caa8c40a8b0c9aa4362812031.pngТабл. Формат команды «Добавить разрешенный хост» компонента прокси.

ed7cb3d518a841ab8a17b2a168e78e72.pngТабл. Формат команды «Создать подключение» компонента прокси.

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

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

79d2d75fe82e4d3596eaa3ef7b3a445f.pngРис. Пример письма со спамом, рассылаемого Mumblehard.

Ссылка ведет на онлайн-магазин, специализирующийся на продаже препаратов от нарушения эрекции.

8f68cb90a5d54a688233c3593b264e5a.pngРис. Веб-сайт онлайн-магазина по продаже фармацевтических препаратов, на который перенаправляется пользователь.

Этот канадский фармацевтический сайт является хорошо задокументированным на портале spamtrackers.eu.

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

f6d0330e9fc74349b61a6a469fdd674e.png

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

Статистика зараженных компьютеров

Список управляющих C&C-серверов, используемых бэкдором Mumblehard, содержит домены, которые были заняты, но теперь они свободны и доступны для покупки. Мы приобрели один из таких доменов для получения статистики о зараженных компьютерах. Такие компьютеры (боты) достаточно легко идентифицировать по строке User Agent, которую мы упоминали выше. Две особенности бэкдора, которые были заданы авторами, помогли нам собрать статистику о жертвах этой вредоносной программы:

для получения команды бот опрашивает каждый C&C-сервер из своего списка, бот продолжает опрашивать оставшуюся часть списка, даже если один из серверов уже ответил; бот отправляет отчет обратно на каждый C&C-сервер в случае успеха или неудачи при выполнении команды, полученной от одного из них. Наш домен принимал отчет от каждого бота четыре раза в час с периодичностью в 15 мин. Это соответствует периоду времени, с которым планировщик заданий запускает в системе скрипт бэкдора, как было указано выше. Мы собирали данные между 19-м сентября 2014 г. и 22-м апреля 2015 г., но сам сервер, который получал статистику был недоступен между 7-м декабря 2014 г. и 6-м января 2015 г. В течение периода времени сбора данных, мы наблюдали запросы от 8,867 уникальных IP-адресов. Большинство из этих IP-адресов принадлежали серверам, на которых размещаются веб-сайты.01aa8f46a33d4ad59f7f1a8e045fa4a8.pngРис. Статистика количества уникальных IP-адресов, которые наблюдались каждый день.

Как мы можем видеть, количество зараженных компьютеров медленно снижалось, но периодически увеличивалось. Это свидетельствует о том, что злоумышленники время от времени инициировали волны распространения вредоносного ПО и компрометации серверов вместо постоянного распространения Mumblehard в непрерывном режиме.

Мы смогли вычислить количество успешных команд, посылаемых удаленным C&C-сервером ботам. Как было указано выше, команда включает в себя URL-адрес, по которому располагается исполняемый ELF-файл. В ответ на полученный от C&C-сервера запрос, бэкдор отправлял коды HTTP-статуса на все C&C-серверы в строке User Agent, так что наш зарегистрированный сервер также смог их получить. Успешное выполнение команды ботом соответствует HTTP-статусу 200 OK.

На самом деле, C&C-серверы не всегда посылали ботам описанные выше команды типа download-and-execute, т. е. загрузить и исполнить ELF-файл. Видно, что большую часть времени они даже не прослушивали TCP-порт 80. Существовали также пиковые значения трафика, когда боты проявляли высокую активность. Например, 27-го марта мы наблюдали 2,508 ботов, которые получили 49,729 команд. Если операторы постоянно посылали ботам команды download-and-execute с 15-минутными интервалами, то это значит, что сеть ботнета использовалась непрерывно на протяжении часов. Фиксировались также дни, когда бэкдор не привлекался к работе вообще. Из 187 дней пока происходил сбор данных, боты получали команды на протяжении 120 дней, что составляет 64% от общего времени.

Такие задержки сложно объяснить. Возможно, что операторы специально ограничивали количество отправляемого ботами спама. Это осуществлялось для некоторой маскировки вредоносных функций зараженных серверов и поддерживать хорошую репутацию их IP-адресов. С другой стороны, исходя из механизмов работы Mumblehard, демон спам-компонента на этих системах по-прежнему будет получать инструкции от C&C-сервера, даже если C&C-серверы бэкдора уже являются неактивными.

Связь с Yellsoft

IP-адреса управляющих C&C-серверов, которые жестко зашиты в код вредоносной программы, находятся в диапазон адресов от 194.54.81.162 до 194.54.81.164.

eee1be46b5404bb8bb608370feb5057e.png

Если проверить два следующих IP-адреса, 194.54.81.165 и 194.54.81.166, то выяснится, что оба они являются серверами имен yellsoft.net. Кроме этого, веб-сервер yellsoft.net также размещен по адресу 194.54.81.166. Эти IP-адреса близко расположены к адресам C&C-серверов Mumblehard, указанным в таблице. Дальнейшая проверка показывает, что пять IP-адресов с номера 162 и до 166, имеют идентичные DNS-записи NS и SOA, несмотря на то, что фактически этот диапазон адресов обслуживается доменом rx-name.com. Этот факт указывает на то, что все пять адресов размещены на одном сервере.

75ffe983f3974447967bd4e95aa08f47.png

Сама компания специализируется на продаже специального ПО для массовой рассылки электронных писем под названием DirectMailer. Согласно описанию на сайте компании, это ПО написано на Perl и предназначено для запуска на системах типа UNIX. Скрипты Mumblehard также написаны на Perl.

04b620e2c37842c5970f4830ff78ac49.pngРис. Домашняя страница Yellsoft.

На домашней странице компании указано, что она не поддерживает копии своего ПО, которые загружены пользователем с веб-страницы другого сайта под названием softexp.narod.ru.

bc1deed3ffff447ea24b229de9dead68.pngРис. Веб-страница загрузки DirectMailer на softexp.narod.ru по состоянию на 2014 г.

На сегодняшний день это ПО недоступно для загрузки с softexp.narod.ru и обнаруживается AV-продуктами ESET как вредоносное. Архив с этим ПО содержит не скрипт на языке Perl, а исполняемый ELF-файл с названием dm.pl. Интересным является тот факт, что этот ELF-файл упакован таким же упаковщиком, который был использован для вредоносного ПО Mumblehard. Анализ Perl-скрипта показывает, что функция под названием bdrp, вызывается перед непосредственным запуском главной программы. Эта функция имеет в своем составе другой дроппер, который после расшифровки генерирует еще один ELF-файл. Файл представляет из себя упакованный Perl-скрипт, в котором находится бэкдор Mumblehard. Скрипт сбрасывается в директорию файловой системы и запускается с использованием планировщика задач каждые 15 минут. Такой механизм работы уже был описан выше для вредоносного ПО Mumblehard.

e4064baa26a54d7087238515a20260be.pngРис. Код функции bdrp с комментариями.

Программа dm.pl выполняет функцию fork () для создания нового процесса и начинает прослушивать входящие TCP-подключения. После этого код скрипта отправляет сообщение на C&C-сервер о готовности к приему прокси-подключений. Этот фрагмент кода, как и его возможности, идентичны механизму прокси спам-компонента Mumblehard. Такие «cracked» копии DirectMailer предоставляют операторам бэкдора возможность создания канала на скомпрометированном компьютере для прохождения через него трафика, например, для рассылки спама.

Заключение

Вредоносное ПО для систем под управлением Linux и BSD становится все более сложным. Тот факт, что авторы использовали собственный упаковщик для сокрытия исходного текста Perl-скриптов внутри исполняемого файла добавляет Mumblehard определенный уровень сложности. Тем не менее, эта вредоносная программа не является такой же сложной как ранее описанная нами вредоносная программа Windigo.

Индикаторы компрометации (IOCs)

UDP-трафик на:

IP-адрес 194.54.81.162, порт 53 TCP-подключения на: IP-адрес 194.54.81.163, порт 80 (бэкдор) IP-адрес 194.54.81.163, порт 54321 (прокси) IP-адрес 194.54.81.163, порт 25 (спам-компонент) IP-адрес 194.54.81.164, порт 25 (спам-компонент) HTTP-запросы со следующей строкой User Agent.Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/<1_или_более_цифр>.<1_или_более_цифр >.<1_или_более_цифр> Firefox/7.0.1 Правила YARA

mumblehard_packer.yara

5679794402c54f5ea9c99a05e7ba356c.png

Образцы вредоносного ПО

SHA-1: 65a2dc362556b55cf2dbe3a10a2b337541eea4eb (ELF)Linux/Mumblehard.K.Gen (спам-компонент)

SHA-1: 331ca10a5d1c5a5f3045511f7b66340488909339 (ELF)Linux/Mumblehard.E.Gen (спам-компонент)

SHA-1: 2f2e5776fb7405996feb1953b8f6dbca209c816a (ELF)Linux/Mumblehard.D.Gen (бэкдор)

SHA-1: 95aed86918568b122712bdbbebdd77661e0e6068 (ELF)Linux/Mumblehard.J.Gen (бэкдор)

SHA-1: c83042491efade4a4a46f437bee5212033c168ee (ZIP)Linux/Mumblehard.E.Gen (пиратская копия архива DirectMailer со скриптом dm.pl Mumblehard)

SHA-1: e62c7c253f18ec7777fdd57e4ae500ad740183fb (ELF)Linux/Mumblehard.E.Gen (пиратская копия DirectMailer со скриптом dm.pl Mumblehard)

SHA-1: 58d4f901390b2ecb165eb455501f37ef8595389a (ZIP)Linux/Mumblehard.M.Gen (пиратская копия архива DirectMailer 1.5 со скриптом dm.cgi, который специализируется на открытии прокси)

SHA-1: 4ae33caebfd9f1e3481458747c6a0ef3dee05e49 (ELF)Linux/Mumblehard.M.Gen (пиратская копия DirectMailer 1.5 со скриптом dm.cgi, который специализируется на открытии прокси)

© Habrahabr.ru