Исследование нового бэкдора кибергруппы TeleBots, стоящей за эпидемией шифратора NotPetya, выявило значительное сходство кода с основным бэкдором Industroyer, что подтверждает взаимосвязь, о которой ранее только распространялись слухи.
В числе крупнейших киберинцидентов последних лет – атаки на украинские энергетические предприятия и эпидемия шифратора NotPetya. В посте мы рассмотрим взаимосвязь между этими событиями.
Первое в истории массовое отключение электроэнергии, вызванное кибератакой, произошло в декабре 2015 года, его причина – комплекс вредоносных программ BlackEnergy. Специалисты ESET отслеживали активность АРТ-группы, использующей BlackEnergy, как до, так и после этого события. После блэкаута 2015 года группа, по всей видимости, свернула активную работу с BlackEnergy и эволюционировала в то, что мы сейчас называем TeleBots.
Здесь надо отметить, что, говоря об АРТ группе, мы имеем в виду общие технические индикаторы: сходство кода, общую сетевую (C&C) инфраструктуру, цепочки выполнения вредоносных программ и пр. Как правило, мы не принимаем непосредственного участия в расследовании и идентификации разработчиков или операторов. Термин «АРТ группа» не имеет четкого определения и часто используется для характеристики параметров вредоносного ПО. По этим причинам мы воздерживаемся от предположений относительно источника атак, национальной или государственной принадлежности атакующих.
В любом случае, мы обнаружили связь между атаками BlackEnergy (нацеленными на украинские энергокомпании, а также другие отрасли и высокоранговые объекты) и кампаниями группы TeleBots (преимущественно против украинского финансового сектора).
В июне 2017 года компании по всему миру пострадали от вайпера Diskcoder.C (более известного как Petya/NotPetya) — массовый характер заражения, по всей видимости, был неким побочным эффектом. Изучая инцидент, мы выяснили, что «нулевым пациентом» этой эпидемии стали компании, зараженные бэкдором группы TeleBots, в результате компрометации популярного в украинских компаниях бухгалтерского ПО M.E.Doc.
Вопрос в том, какое отношение к этой истории имеет Industroyer – сложный вредоносный комплекс, ставший причиной блэкаута в Киеве в декабре 2016 года. Сразу после публикации отчета ESET некоторые ИБ-компании и СМИ предположили, что Industroyer тоже разработала группа BlackEnergy/TeleBots (иногда также называемая Sandworm). Тем не менее, доказательств до настоящего времени представлено не было.
В апреле 2018 года мы зафиксировали новую активность группы TeleBots – попытку развернуть новый бэкдор Win32/Exaramel. Наш анализ показал, что этот бэкдор является усовершенствованной версией основного бэкдора Industroyer – что и стало первым доказательством.
Анализ бэкдора Win32/Exaramel
Бэкдор Win32/Exaramel изначально устанавливается с помощью дроппера. Согласно метаданным дроппера, бэкдор скомпилирован в Microsoft Visual Studio непосредственно перед развертыванием на конкретном скомпрометированном компьютере.
Рисунок 1. Временная метка PE дроппера бэкдора Win32/Exaramel
После выполнения дроппер размещает бинарный файл Win32/Exaramel в системном каталоге Windows и запускает службу Windows с именем wsmproav
с описанием «Windows Check AV». Название файла и описание службы Windows жестко закодировано в дроппере.
Рисунок 2. Настройки реестра службы Windows, созданные бэкдором Win32/Exaramel
Кроме того, дроппер записывает конфигурацию бэкдора в реестр Windows в формате XML.
Рисунок 3. XML-конфигурация Win32/Exaramel
Конфигурация состоит из нескольких блоков:
— Interval – время в миллисекундах, используемое для функции Sleep
— Servers – список командных серверов (C&C)
— Check – веб-сайт, используемый для определения того, имеет ли хост доступ к интернету
— Proxy – прокси-сервер в сети хоста
— Storage – путь, используемый для хранения файлов, предназначенных для эксфильтрации
Как видно из первой строки конфигурации, злоумышленники группируют цели на основе используемых антивирусных продуктов. Подобный подход применяется в комплексе Industroyer – в частности, некоторые бэкдоры Industroyer были также замаскированы как служба, связанная с антивирусом (развернутая под именем avtask.exe
) и использовали тот же подход к образованию групп.
Еще один интересный факт – бэкдор использует C&C-серверы, доменные имена которых имитируют домены, принадлежащие ESET. В дополнение к esetsmart[.]org
из вышеупомянутой конфигурации мы обнаружили похожий домен um10eset[.]net
, который использовался недавно открытой Linux-версией вредоносного ПО TeleBots. Важно отметить, что эти контролируемые атакующими серверы не имеют отношения к легитимной сетевой инфраструктуре ESET. В настоящее время мы не обнаружили, чтобы Exaramel использовал домены, имитирующие инфраструктуру других ИБ-компаний.
После запуска бэкдор устанавливает связь с C&C-сервером и получает команды для выполнения в системе. Ниже список доступных команд:
— Запуск процесса
— Запуск процесса от определенного пользователя Windows
— Запись данных в файл по заданному пути
— Скопировать файл в подкаталог хранилища (Загрузить файл)
— Выполнить шелл-команду
— Выполнить шелл-команду от определенного пользователя Windows
— Выполнить VBS-код, используя MSScriptControl.ScriptControl.1
Код командного цикла и реализация первых шести команд в Win32/Exaramel очень напоминает бэкдор из программного комплекса Industroyer.
Рисунок 4. Сравнение декомпилированного кода бэкдоров Win32/Exaramel (слева) и Win32/Industroyer (справа)
Оба семейства вредоносных программ используют файл отчета для хранения выходных результатов выполненных шелл-команд и запущенных процессов. В случае с бэкдором Win32/Industroyer файл отчета хранится во временной папке с рандомным названием; в Win32/Exaramel файл отчета называется report.txt
, а его путь к хранилищу задан в файле конфигурации бэкдора.
Чтобы перенаправить стандартный вывод (stdout) и стандартную ошибку (stderr) в файл отчета, оба бэкдора задают параметры hStdOutput
и hStdError
дескриптору файла отчета. Это еще одно сходство между этими семействами вредоносных программ.
Рисунок 5. Сравнение декомпилированного кода бэкдоров Win32/Exaramel и Win32/Industroyer соответственно
Если операторы вредоносного ПО хотят эксфильтровать файлы с компьютера жертвы, им достаточно скопировать эти файлы в подкаталог пути хранения data
, заданный в конфигурации. Перед установкой нового соединения с C&C-сервером бэкдор автоматически сожмет и зашифрует эти файлы, прежде чем их отправить.
Главное различие бэкдора Industroyer и нового бэкдора TeleBots в том, что последний использует формат XML для связи и конфигураций вместо кастомного бинарного формата.
Вредоносные инструменты для кражи паролей
Вместе с Exaramel группа TeleBots использует некоторые из старых инструментов, включая средство для кражи паролей (внутреннее название – CredRaptor или PAI) и незначительно модифицированный Mimikatz.
Усовершенствованный инструмент для кражи паролей CredRaptor, используемый только этой группой с 2016 года, был доработан. В отличие от предыдущих версий, он собирает сохраненные пароли не только из браузеров, но и из Outlook и ряда FTP-клиетов. Ниже список поддерживаемых приложений:
— BitKinex FTP
— BulletProof FTP Client
— Classic FTP
— CoffeeCup
— Core FTP
— Cryer WebSitePublisher
— CuteFTP
— FAR Manager
— FileZilla
— FlashFXP
— Frigate3
— FTP Commander
— FTP Explorer
— FTP Navigator
— Google Chrome
— Internet Explorer 7 – 11
— Mozilla Firefox
— Opera
— Outlook 2010, 2013, 2016
— SmartFTP
— SoftX FTP Client
— Total Commander
— TurboFTP
— Windows Vault
— WinSCP
— WS_FTP Client
Доработки позволяют атакующим собирать данные от учетных записей веб-мастеров веб-сайтов и от серверов во внутренней инфраструктуре. Получив доступ к таким серверам, можно установить дополнительные бэкдоры. Достаточно часто на этих серверах установлена ОС, отличная от Windows, поэтому атакующим приходится адаптировать бэкдоры.
В ходе мероприятий по реагированию на инцидент мы обнаружили Linux-бэкдор группы TeleBots – Linux/Exaramel.A.
Анализ бэкдора Linux/Exaramel
Бэкдор написан на языке программирования Go и скомпилирован как 64-битный бинарный файл ELF. Атакующие могут развернуть бэкдор в выбранном каталоге под любым именем.
Если бэкдор выполнен атакующими со строкой ‘none’ в качестве аргумента командной строки, он пытается использовать механизмы персистентности, чтобы автоматически запускаться после перезагрузки. Если бэкдор не выполняется под учетной записью root, он использует файл crontab
. Однако если он запущен с правами root, он поддерживает различные системы Linux init
. Он определяет, какая init
система используется в настоящее время, выполняя команду:
strings /sbin/init | awk 'match($0, /(upstart|systemd|sysvinit)/){ print substr($0, RSTART, RLENGTH);exit; }'
В зависимости от результата бэкдор использует следующие жестко закодированные локации для обеспечения персистентности (далее — Init система и ее расположение):
sysvinit — /etc/init.d/syslogd
upstart — /etc/init/syslogd.conf
systemd — /etc/systemd/system/syslogd.service
В ходе запуска бэкдор пытается открыть файл конфигурации, который хранится в том же каталоге, что и бэкдор, под именем config.json
. Если файла конфигурации не существует, создается новый файл. Конфигурация шифруется с помощью ключа s0m3t3rr0r и алгоритма RC4.
Рисунок 6. Расшифрованная конфигурация JSON бэкдора Linux/Exaramel
Бэкдор подключается к жестко закодированному C&C (по умолчанию 176.31.225[.]204 в образце, который мы видели) или к C&C-серверу, указанному в файле конфигурации в значении Hosts
. Коммуникации осуществляются через HTTPS. Бэкдор поддерживает следующие команды:
App.Update — обновление до новой версии
App.Delete — самоудаление из системы
App.SetProxy — задать параметры прокси-сервера в конфигурации
App.SetServer — обновление C&C-сервера в конфигурации
App.SetTimeout — установка значения таймаута (интервалы между соединениями с C&C-сервером)
IO.WriteFile — загрузка файла с удаленного сервера
IO.ReadFile — выгрузка файла с локального диска на C&C-сервер
OS.ShellExecute — выполнить шелл-команду
Вывод
Открытие Exaramel показывает, что группа TeleBots сохраняет активность в 2018 году, и атакующие продолжают совершенствовать тактику и инструментарий.
Значительное сходство кода Win32/Exaramel и основного бэкдора Industroyer – первое публично представленное доказательство, связывающее Industroyer с группой TeleBots и, следовательно, с киберкампаниями NotPetya и BlackEnergy. Устанавливая связь между источниками кибератак, стоит принимать во внимание возможность ошибки или преднамеренного обмана, однако в этом случае мы считаем это маловероятным.
Стоит отметить, что Win32 и Linux-версии бэкдора Exaramel обнаружены в организации, которая не имеет отношение к промышленности. Специалисты ESET сообщили о находке в следственные органы Украины, благодаря чему атака была своевременно локализована и предотвращена.
ESET продолжает отслеживать активность данной кибергруппы.
Индикаторы компрометации (IoCs)
Детектирование продуктами ESET
Win32/Exaramel trojan
Win32/Agent.TCD trojan
Linux/Agent.EJ trojan
Linux/Exaramel.A trojan
Win32/PSW.Agent.OEP trojan
Win32/RiskWare.Mimikatz.Z application
Win64/Riskware.Mimikatz.AI application
Хеши SHA-1
Бэкдор Win32/Exaramel кибергруппы TeleBots
65BC0FF4D4F2E20507874F59127A899C26294BC7
3120C94285D3F86A953685C189BADE7CB575091D
Инструмент для кражи паролей
F4C4123849FDA08D1268D45974C42DEB2AAE3377
970E8ACC97CE5A8140EE5F6304A1E7CB56FA3FB8
DDDF96F25B12143C7292899F9D5F42BB1D27CB20
64319D93B69145398F9866DA6DF55C00ED2F593E
1CF8277EE8BF255BB097D53B338FC18EF0CD0B42
488111E3EB62AF237C68479730B62DD3F52F8614
Mimikatz
458A6917300526CC73E510389770CFF6F51D53FC
CB8912227505EF8B8ECCF870656ED7B8CA1EB475
Linux/Exaramel
F74EA45AD360C8EF8DB13F8E975A5E0D42E58732
C&C-серверы
um10eset[.]net (IP: 176.31.225.204)
esetsmart[.]org (IP: 5.133.8.46)
Автор: esetnod32