Описание вредоносного ПО

Хроники Emotet

Прошло больше шести лет с момента первого обнаружения троянца Emotet. За это время он несколько раз пропадал и возрождался, менял род деятельности, обзаводился партнерами, обрастал модулями, становился причиной громких инцидентов и источником многомиллионных убытков. Этот зловред отлично чувствует себя и сегодня и является одной из главных ИБ-угроз. Распространяется троянец с помощью спама, который сам же рассылает; умеет распространяться по локальным сетям и скачивать другие зловреды.

Подробно все «свершения» этого троянца хорошо описаны в многочисленных публикациях и отчетах различных компаний и независимых исследователей. Мы же решили подвести промежуточный итог и собрать воедино всю известную на данный момент информацию об Emotet.

2014

Июнь

Впервые Emotet был обнаружен в конце июня 2014 года компанией TrendMicro. Зловред похищал банковские учетные данные пользователей, используя технику «человек в браузере» (Man-in-the-browser). Уже тогда он был многокомпонентным: перехват трафика браузера осуществлялся отдельным модулем, который скачивался с командного сервера. Оттуда же загружался и конфигурационный файл с веб-инжектами. Основными целями банкера были клиенты немецких и австрийских банков, а основным вектором распространения — маскирующийся под банковские письма спам с вредоносными вложениями или ссылками на ZIP-архив c исполняемым файлом внутри.

Примеры вредоносных писем со ссылкой и вложением

Ноябрь

Осенью 2014 года нами была обнаружена модификация Emotet со следующими компонентами:

  • Модуль для модификации HTTP(S)-трафика.
  • Модуль для сбора почтовых адресов из Outlook.
  • Модуль для кражи учетных записей электронной почты Mail PassView (Email Password-Recovery).
  • Спам-модуль (скачивается дополнительно с адресов, не связанных с C&C, как независимый исполняемый файл).
  • Модуль для организации DDoS-атак.

Последний встречался нам в связке с другим вредоносным ПО, и мы полагаем, что он добавляется к Emotet криптором (предполагается, что в тот момент собственного криптора у автора Emotet не было и использовался сторонний, возможно, взломанный или украденный). Вполне вероятно, что авторы Emotet ничего не знают о его наличии в составе их вредоносного ПО. Как бы то ни было, командные центры этого модуля не отвечают, а сам он не обновляется (дата компиляции — 19 октября 2014 года).

Также новая модификация стала применять технологии так называемых «автозаливов» — автоматической кражи денег с банковских аккаунтов жертв. Подробнее о данной модификации можно прочесть в нашем исследовании.

Декабрь

Командные серверы перестали отвечать, и активность троянца существенно снизилась.

2015

Январь

В начале 2015 года вышла новая модификация Emotet, которая по сути не слишком отличается от предыдущей. Из изменений: новый встроенный публичный RSA-ключ, большинство строк зашифрованы, скрипты веб-инжектов с «автозаливами» очищены от комментариев, а среди целей появились клиенты швейцарских банков.

Июнь

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

2016

Декабрь

Emotet возродился: впервые за долгое время обнаружена новая модификация. Эта версия заражает жертву во время веб-серфинга с помощью набора эксплойтов RIG-E и RIG-V. Такой метод распространения не использовался троянцем ранее; забегая вперед, скажем, что и не будет применяться впоследствии. Мы считаем, что это была лишь пробная попытка использовать новый механизм распространения, результаты который не удовлетворили авторов Emotet.

В этой модификации изменился протокол общения с C&C. Если объем отправляемых данных меньше 4 Кбайт, использовался GET-запрос, а сами данные стали передаваться в поле Cookie HTTP-заголовка. При большем объеме информации использовался запрос POST. Алгоритм шифрования RC4 был заменен на AES, а сам протокол начал базироваться на слегка измененном Google Protocol Buffer. В ответ на запрос командные серверы возвращали заголовок с ошибкой «404 Not Found», что не мешало им передавать в теле ответа зашифрованную полезную нагрузку.

Примеры GET- и POST-запросов Emotet

Изменился и набор модулей, передаваемый троянцу с командного сервера:

  • Пропал модуль для перехвата и модификации HTTP(S)-трафика.
  • Появился модуль сбора аккаунтов и паролей из браузеров (WebBrowserPassView).

2017

Февраль

До этого момента у нас не было подтверждения, что Emotet может самостоятельно рассылать спам. Спустя пару месяцев после восстановления работоспособности командных серверов мы сумели получить доказательство — с C&C был загружен спам-модуль.

Апрель

В начале апреля была замечена большая рассылка спама, нацеленная на жителей Польши. В письмах, отправленных от имени логистической компании DHL, содержалась просьба скачать и открыть файл «отчета» в формате JavaScript. Интересно, что злоумышленники не пытались обмануть пользователя и спрятать исполняемый JavaScript под видом того же PDF. Видимо, расчет строился на том, что многие просто не поймут, что JavaScript — это вовсе не формат документов или отчетов.

Пример использованных имен JS-файлов:
 dhl__numer__zlecenia___4787769589_____kwi___12___2017.js (MD5:7360d52b67d9fbb41458b3bd21c7f4de)

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

invoice__924__apr___24___2017___lang___gb___gb924.js (MD5:e91c6653ca434c55d6ebf313a20f12b1)
telekom_2017_04rechnung_60030039794.js (MD5:bcecf036e318d7d844448e4359928b56)

В конце апреля тактика слегка поменялась, и в спам-письмах добавилось вложение в виде PDF-файла, при открытии которого сообщалось, что отчет в формате JavaScript можно скачать по ссылке.

Document_11861097_NI_NSO___11861097.pdf (MD5: 2735A006F816F4582DACAA4090538F40)

Пример содержимого PDF-документа

Document_43571963_NI_NSO___43571963.pdf (MD5: 42d6d07c757cf42c0b180831ef5989cb)

Пример содержимого PDF-документа

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

Сообщение об ошибке, отображаемое вредоносным JavaScript

Май

В мае немного изменился сценарий спам-сообщений, с помощью которых распространяется Emotet. На этот раз во вложении находился офисный документ (или ссылка на него) с картинкой, маскирующейся под сообщение MS Word о якобы старой версии документа. Чтобы открыть документ, пользователю предлагали разрешить выполнение макросов. В том случае, если жертва соглашалась его предоставить, выполнялся вредоносный макрос, который запускал PowerShell-скрипт, скачивающий и запускающий Emotet.

Скриншот открытого вредоносного документа ab-58829278.dokument.doc (MD5: 21542133A586782E7C2FA4286D98FD73)

Также в мае появились сообщения о том, что Emotet загружает и устанавливает банковский троянец Qbot (или QakBot). Однако мы не можем подтвердить данную информацию: среди более чем 1,2 миллионов пользователей, подвергшихся атакам Emotet, Qbot был обнаружен лишь у нескольких десятков.

Июнь

Начиная с первого июня с командных серверов Emotet начала «раздаваться» утилита для распространения вредоносного кода по локальной сети (network spreader), которая впоследствии станет одним из модулей зловреда. Вредоносное приложение представляло собой самораспаковывающийся RAR-архив, содержащий файлы  bypass.exe (MD5: 341ce9aaf77030db9a1a5cc8d0382ee1) и service.exe (MD5: ffb1f5c3455b471e870328fd399ae6b8).

Самораспаковывающийся RAR-архив с bypass.exe и service.exe

Назначение bypass.exe:

  • Перебор сетевых ресурсов с использованием перебора паролей по встроенному словарю
  • Копирование service.exe на подходящий ресурс
  • Создание в удаленной системе сервиса для автоматического запуска service.exe

Скриншот функции создания сервиса (bypass.exe)

Скриншот со списком паролей для перебора (bypass.exe)

Возможности service.exe крайне ограничены: только отправка имени компьютера на сервер злоумышленников.

Функция формирования данных для отправки на С&C

Функция отправки данных на С&C

Рассылка явно была тестовой, и уже на следующий день мы обнаружили обновленную версию файла. Самораспаковывающийся архив обзавелся скриптом для автозапуска bypass.exe (MD5: 5d75bbc6109dddba0c3989d25e41851f), который не претерпел изменений, а вот service.exe (MD5: acc9ba224136fc129a3622d2143f10fb) вырос в размере в несколько десятков раз.

Самораспаковывающийся RAR архив с bypass.exe и service.exe

Размер обновленного service.exe обуславливался тем, что в нем теперь содержалась копия Emotet в собственном теле. К возможностям добавилась функция по сохранению Emotet на диск и его запуску перед отправкой на C&C данных о зараженной машине.

Новые функции service.exe, ответственные за сохранение на диске и запуск Emotet

Июль

По ботсети начало распространяться обновление загрузочного модуля Emotet. Из значимых изменений: отказ Emotet от GET-запросов с передачей данных в поле Cookie HTTP-заголовка. Теперь все общение C&C происходит с помощью POST (MD5: 643e1f4c5cbaeebc003faee56152f9cb).

Август

Network spreader включили в «комплект поставки» Emotet в виде DLL-библиотеки (MD5: 9c5c9c4f019c330aadcefbb781caac41), дата компиляции нового модуля — 24 июля 2017 г., однако получить данный модуль удалось только в августе. Ранее же, как мы помним, это был самораспаковывающийся архив RAR с двумя файлами — bypass.exe и service.exe. Механизм распространения особо не изменился, а вот список паролей для подбора значительно расширился — теперь их ровно 1000.

Скриншот расшифрованного списка паролей

Ноябрь

В ноябре 2017-го команда IBM X-Force опубликовала отчет о новом банкере IcedId. Согласно исследованию, в его распространении был замечен Emotet. Первый образец IcedId (MD5: 7e8516db16b18f26e504285afe4f0b21) попал к нам еще в апреле, и тогда мы обнаружили, что семпл был «накрыт» криптором, который использовался и в Emotet. Криптор был не просто похож, а практически байт в байт совпадал с криптором образца Emotet (MD5:2cd1ef13ee67f102cb99b258a61eeb20), который распространялся в это же время.

2018

Январь

Emotet начал распространять банковского троянца Panda (Zeus Panda, впервые был обнаружен в 2016 году, базировался на утекших исходных кода банкера Zbot; реализует атаки типа man-in-the-browser, перехватывает нажатия клавиш и содержимое форм ввода на сайтах).

Апрель

9 апреля

В начале апреля Emotet обзавелся модулем для распространения с помощью беспроводных сетей (MD5: 75d65cea0a33d11a2a74c703dbd2ad99), который с помощью словарного перебора пытается получить доступ к Wi-Fi. Его код схож с кодом модуля Network Spreader (bypass.exe), к возможностям которого добавились функции по подключению к Wi-Fi. В случае успешного подбора пароля модуль отправлял данные о сети на C&С.

Как и bypass.exe, модуль распространялся в виде отдельного файла (a.exe), находящегося внутри самораспаковывающегося архива (MD5: 5afdcffca43f8e7f848ba154ecf12539). В архиве присутствовал и описанный ранее service.exe (MD5: 5d6ff5cc8a429b17b5b5dfbf230b2ca4), который, как и в первой своей версии, не умел ничего, кроме отправки на C&C имени зараженного компьютера.

Самораспаковывающийся RAR-архив с компонентом для распространения по Wi-Fi

Злоумышленники довольно быстро обновили модуль, и уже в течение нескольких часов с момента обнаружения первой версии мы получили другой самораспаковывающийся архив (MD5: d7c5bf24904fc73b0481f6c7cde76e2a), содержащий новый  service.exe с Emotet внутри (MD5: 26d21612b676d66b93c51c611fa46773).

Самораспаковывающийся RAR-архив с обновленным service.exe

Модуль был впервые публично описан только в январе 2020 года компанией Binary Defense. Возврат к старому механизму распространения и использованию кода старых модулей выглядит немного странно, так как еще в 2017 году файлы bypass.exe и service.exe были объединены в один DLL-модуль.

14 апреля

Emotet вновь начал использовать одновременно GET-запросы с передачей данных в поле Cookie HTTP-заголовка при размере передаваемых данных меньше 1 килобайта и POST-запросы для больших объемов данных (MD5: 38991b639b2407cbfa2e7c64bb4063c4). Изменился и шаблон для заполнения поля Cookie. Если раньше он был вида Cookie: %X=, то теперь стал применяться Cookie: %u =. Причем между цифрами и символом = появился пробел, что упростило идентификацию трафика Emotet.

Пример GET-запроса

30 апреля

Командные серверы приостановили свою активность и восстановили ее только 16 мая. Тогда же из GET-запроса исчез пробел.

Пример исправленного GET-запроса

Июнь

Emotet начал распространять очередного банковского троянца. На этот раз это Trickster (или Trickbot) — модульный банкер, известный с 2016 года и являющийся наследником банкера Dyreza (the successor to Dyreza).

Июль

Впервые получен так называемый UPnP-модуль (MD5: 0f1d4dd066c0277f82f74145a7d2c48e), базирующийся на пакете libminiupnpc. Модуль позволяет создать перенаправление портов на роутере по запросу хоста из локальной сети. Благодаря этому злоумышленники могут не просто получить доступ к компьютерам из локальной сети, находящимся за NAT, но и превратить зараженную машину в «промежуточный C&C» (C&C-прокси).

Август

В августе появились сообщения о заражениях новым шифровальщиком Ryuk — модификацией шифровальщика Hermes, известного с 2017 года. Как выяснится чуть позже, цепочка заражений начиналась с Emotet, который скачивал Trickster, а уже тот, в свою очередь, устанавливал Ryuk. И Emotet, и Trickster к этому времени имели на вооружении функции распространения по локальной сети, причем Trickster использовал известные уязвимости в SMB, что еще больше способствовало распространению зловреда в локальной сети. В совокупности с Ryuk получалась убойная комбинация.

В конце месяца обновился список паролей в модуле для распространения по сети (Network spreader). Их по-прежнему 1000, но около ста паролей изменились (MD5: 3f82c2a733698f501850fdf4f7c00eb7).

Скриншот расшифрованного списка паролей

Октябрь

12 октября

Командные серверы приостановили свою активность, мы не регистрировали раздачи новых модулей и обновлений. Активность восстановилась только 26 октября.

30 октября

Обновился модуль кражи данных из Outlook (MD5:64C78044D2F6299873881F8B08D40995). Ключевое нововведение — возможность кражи содержимого самого письма. При этом объем похищаемых данных не может превышать 16 Кбайт (письмо большего объема будет обрезано).

Сравнение кода старой и новой версии модуля экcфильтрации данных из Outlook

Ноябрь

Командные серверы приостановили свою активность, мы не регистрировали раздач новых модулей и обновлений. Активность восстановилась только 6 декабря.

Декабрь

Снова простой, активность командных серверов возобновилась только 10 января 2019 г.

2019

Март

14 марта

Emotet вновь изменил часть HTTP-протокола, переходя на POST-запросы и использование словаря для составления пути. Поле Referer теперь заполнено, появляется Content-Type: multipart/form-data (MD5: beaf5e523e8e3e3fb9dc2a361cda0573).

Код функции формирования POST-запроса

Пример POST-запроса

20 марта

Очередное изменение HTTP-части протокола. Emotet отказался от Content-Type: multipart/form-data. Сами данные закодированы с помощью Base64 и UrlEncode (MD5: 98fe402ef2b8aa2ca29c4ed133bbfe90).

 

Код обновленной функции формирования POST-запроса

Пример POST-запроса

Апрель

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

Май

Командные серверы перестали работать на довольно долгий срок — 3 месяца. Активность восстановилась только 21 августа 2019 г. Однако несколько последующих недель серверы лишь раздавали обновления и модули, никакой спам-активности не наблюдалось. Скорее всего, это время было потрачено на восстановление связи с зараженными системами, сбор и обработку данных, распространение по локальным сетям.

Ноябрь

Незначительное изменение HTTP-части протокола. Emotet отказался от использования словаря для генерации пути и теперь использует просто случайно сгенерированную строку (MD5: dd33b9e4f928974c72539cd784ce9d20).

Пример POST-запроса

Февраль

6 февраля

Очередное изменение HTTP-части протокола. Путь теперь состоит не из одной строчки, а из нескольких случайно сгенерированных слов. Content-Type снова становится multipart/form-data.

Пример POST-запроса

Вместе с HTTP-частью обновилась и бинарная часть. Шифрование осталось тем же, но Emotet отказался от Google Protocol Buffer и перешел на свой формат. Изменился и алгоритм сжатия: zlib заменен на liblzf. Подробнее о новом протоколе можно ознакомиться в исследовании Threat Intel и CERT Polska.

7 февраля

Активность командных серверов начала снижаться, работа возобновилась лишь в июле 2020 года. В течение этого периода количество спама упало до нуля. В это же время компания Binary Defense, взаимодействуя с различными CERT и ИБ-сообществом, начала распространять EmoCrash, представляющий собой PowerShell-скрипт, создающий в системе некорректные значения ключей реестра, которые использует Emotet. Это приводит к ошибкам в работе зловреда и «падениям» во время его установки. Такой механизм «вакцинации» работал вплоть до 6 августа, когда в очередном обновлении Emotet перестал использовать уязвимые ключи.

Июль

Прошло всего несколько дней с момента восстановления спам-активности, когда в сети появились сообщения о том, что неизвестные заменяют вредоносную нагрузку Emotet, расположенную на скомпрометированных сайтах, на картинки и мемы. В результате при переходе по ссылкам из спам-писем вместо вредоносного документа открывалось обычное изображение. Это продлилось недолго — уже 28 июля вредоносные файлы перестали подменять картинками.

Итого

Несмотря на свой почтенный возраст, Emotet постоянно развивается и остается одной из наиболее актуальных угроз. Кроме взрывного роста распространения после 5 месяцев простоя, мы пока не наблюдаем ничего, чего не видели бы раньше, однако детальный анализ всегда занимает время, и мы непременно сообщим о его результатах позже. Кроме этого, в данный момент мы наблюдаем эволюцию стороннего зловреда, распространяющегося с помощью Emotet, и обязательно расскажем о нем в будущих публикациях.

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

Чтобы снизить риски, необходимо своевременно получать точные и достоверные сведения по информационной безопасности. Проверка IP-адресов, хэшей файлов, доменов или веб-адресов на портале OpenTIP позволяет определить, представляет ли объект реальную угрозу, на основе уровней риска и вспомогательной контекстной информации. Анализ файла на OpenTIP может помочь обнаружить передовые массовые и скрытые угрозы с помощью наших запатентованных технологий, включая динамический, статический и поведенческий анализ, а также благодаря нашей глобальной системе репутации.

Отслеживать постоянно эволюционирующие киберугрозы, анализировать их, вовремя реагировать на атаки и сводить к минимуму их последствия помогут сервисы Kaspersky Threat Intelligence.

IOC

Наиболее активные C&C в ноябре 2020 года:

173.212.214.235:7080
167.114.153.111:8080
67.170.250.203:443
121.124.124.40:7080
103.86.49.11:8080
172.91.208.86:80
190.164.104.62:80
201.241.127.190:80
66.76.12.94:8080
190.108.228.27:443

Ссылки на Emotet, извлеченные из вредоносных документов

hxxp://tudorinvest[.]com/wp-admin/rGtnUb5f/
hxxp://dp-womenbasket[.]com/wp-admin/Li/
hxxp://stylefix[.]co/guillotine-cross/CTRNOQ/
hxxp://ardos.com[.]br/simulador/bPNx/
hxxps://sangbadjamin[.]com/move/r/
hxxps://asimglobaltraders[.]com/baby-rottweiler/duDm64O/
hxxp://sell.smartcrowd[.]ae/wp-admin/CLs6YFp/
hxxps://chromadiverse[.]com/wp-content/OzOlf/
hxxp://rout66motors[.]com/wp-admin/goi7o8/
hxxp://caspertour.asc-florida[.]com/wp-content/gwZbk/

MD5 вредоносных офисных документов, скачивающих Emotet

59d7ae5463d9d2e1d9e77c94a435a786
7ef93883eac9bf82574ff2a75d04a585
4b393783be7816e76d6ca4b4d8eaa14a

MD5s of Emotet executable files

4c3b6e5b52268bb463e8ebc602593d9e
0ca86e8da55f4176b3ad6692c9949ba4
8d4639aa32f78947ecfb228e1788c02b
28df8461cec000e86c357fdd874b717e
82228264794a033c2e2fc71540cb1a5d
8fc87187ad08d50221abc4c05d7d0258
b30dd0b88c0d10cd96913a7fb9cd05ed
c37c5b64b30f2ddae58b262f2fac87cb
3afb20b335521c871179b230f9a0a1eb
92816647c1d61c75ec3dcd82fecc08b2

Хроники Emotet

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Отчеты

StripedFly: двуликий и незаметный

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

Азиатские APT-группировки: тактики, техники и процедуры

Делимся с сообществом подходами, которые используют азиатские APT-группировки при взломе инфраструктуры, и подробной информацией о тактиках, техниках и процедурах (TTPs) злоумышленников, основанной на методологии MITRE ATT&CK.

Как поймать «Триангуляцию»

Эксперты «Лаборатории Касперского» смогли получить все этапы «Операции Триангуляция»: эксплойты нулевого дня для iOS, валидаторы, имплант TriangleDB и дополнительные модули.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике