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Файл для хранения идентификатора установки вредоносной программы
      0987654321fedcbaAES-ключ, использующийся для шифрования данных, передаваемых между вредоносной программой и сервером управления
      Таблица 1. Описание полей конфигурационной информации вредоносной программы

      После расшифровки конфигурационной информации вредоносная программа проверяет, не запущена ли она под отладчиком и существует ли в директории временных файлов файл с именем, указанным в конфигурационной информации, например 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)
      Таблица 2. Список команд, поддерживаемых PortDoor

      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
      Схема установки вредоносного ПО nccTrojan

      После запуска основной модуль nccTrojan связывается с серверами управления и ожидает команды для выполнения. Вредоносная программа выполняет попытку подключения ко всем серверам управления, указанным в исполняемом файле. Дальнейшая коммуникация осуществляется с сервером, который ответил первым.

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

      Массив с данными о зараженной системе, собранный nccTrojan

      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)
      Таблица 3. Список команд, поддерживаемых nccTrojan

      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, для расшифровки используется ключ, указанный в коде вредоносной библиотеки:

      Фрагмент кода расшифровки Cotx

      Исполняемые файлы DNSep распаковываются с помощью функции RtlDecompressBuffer.

      Расшифрованный модуль вредоносной программы загружается в память легитимного процесса с помощью техники Process Hollowing и подключается к серверу управления вредоносным ПО. В случае Cotx вредоносный код внедряется в процесс dllhost.exe, а в случае DNSep внедрение вредоносного кода производится в процесс утилиты управления электропитанием powercfg.exe.

      Ниже представлен список команд, поддерживаемых бэкдорами Cotx и DNSep:

      Код командыОписание
      1Установить идентификатор бота
      2Запустить командную строку
      3Выполнить команду в запущенной ранее командной строке
      4Собрать информацию о подключенных носителях информации
      6Загрузить файл с зараженной системы на сервер управления вредоносным ПО
      7Скопировать файл
      8Удалить файл
      9Получить размер файла
      10Переместить файл
      11Задать временной интервал обращения к серверу управления вредоносным ПО
      13Удалить вредоносное ПО
      Таблица 4. Список команд, поддерживаемых Cotx и DNSep

      Обнаруженный нами вариант Cotx очень похож на экземпляр, исследованный ранее Dr.Web, и, скорее всего, является его обновлённой версией.

      Сравнение функций самоудаления Cotx из новой серии атак (слева) и образца из исследования Dr.Web (справа)

      Logtu

      Вредоносная программа Logtu также ранее встречалась в атаках, аттрибутированных к TA428. Новая версия Logtu для обхода детектирования использует динамические импорты и зашифрованные с помощью операции xor названия функций:

      Расшифровка и получение адреса функции GetTickCount

      Загрузка, установка и запуск 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Закрыть соединение с сервером управления вредоносным ПО
      Таблица 5. Список команд, поддерживаемых Logtu

      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:

      Расшифровка модуля вредоносной программы CotSam

      После этого расшифрованный исполняемый файл записывается напрямую в память процесса 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
      Таблица 6. Список команд, поддерживаемых CotSam

      Действия злоумышленников после заражения

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

      Для запуска утилит и получения результатов их работы злоумышленники используют удаленную командную строку, предоставляемую вредоносным ПО класса бэкдор. В ходе расследования мы обнаружили серию, выполненных на зараженных системах команд, которые злоумышленник вводил вручную (на это указывают как временные интервалы между командами, так и отсутствие перенаправления вывода результата куда-либо, кроме стандартного вывода).

      Сбор сведений об инфраструктуре предприятия

      Для сканирования сети злоумышленники в основном использовали консольную утилиту NBTscan, которая попадает на компьютер жертвы в виде .cab архива под именем ace и распаковывается с помощью системной утилиты expand:

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

      • Сканировать сеть и находить различные типы устройств.
      • Выявлять уязвимости в найденных устройствах, а также эксплуатировать их.
      • Подбирать пароли доступа к ресурсам внутри сети.
      • Осуществлять поиск хешей паролей.
      • Осуществлять поиск паролей в текстовых файлах.
      • Удаленно запускать произвольный код.
      Фрагмент кода Ladon

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

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

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

      Злоумышленникам удавалось развивать атаку при помощи заражения всё новых систем, для доступа к которым они использовали результаты сканирования сети, а также учетные данные пользователей, украденные ранее. С помощью утилит net use и xcopy они устанавливали сетевое соединение с удаленной системой и копировали на неё вредоносное ПО:

      В ряде случаев запуск вредоносного ПО осуществлялся с помощью opensource VBS скрипта wmic.vbs, который злоумышленники также загружали на удаленную систему:

      Данный VBS скрипт был разработан в качестве инструмента для проведения тестирования на проникновение, однако нередко используется злоумышленниками в реальных атаках. wmic.vbs выполняет команды от имени учетной записи пользователя с правами администратора, используя командную строку WMIC (Windows Management Instrumentation Command-line). В других случаях для обеспечения автоматического запуска вредоносного ПО злоумышленники создавали задачу в планировщике задач Windows:

      В случаях, когда злоумышленникам удавалось добраться до закрытых сетей (сетей, из которых отсутствует прямое подключение к сети Интернет), они превращали промежуточные системы (системы, доступные из закрытых сетей и при этом имеющие доступ в интернет) в прокси-серверы. Таким образом вредоносное ПО, работающее на системах в закрытых сетях, получает возможность взаимодействия с сервером управления. Перенаправление сетевого трафика настраивается тривиально – также при помощи стандартных средств Windows:

      Захват домена

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

      После этого они копировали файл ntds.dit, содержащий базу данных Active Directory, и, в частности, хеши паролей пользователей. Интересным является тот факт, что файл ntds.dit постоянно используется системой и скопировать его стандартным способом не представляется возможным. Чтобы обойти это ограничение злоумышленники использовали специальную утилиту, выполняющую копирование файла с использованием теневого копирования Windows (VSS).

      Утилита для копирования файлов с использованием VSS

      Пример запуска этой утилиты представлен ниже:

      Имея содержимое системного реестра и файл ntds.dit, злоумышленники смогли получить логины и хеши от паролей всех пользователей домена. Далее, используя подбор паролей по хешам, злоумышленники получили аутентификационные данные большинства пользователей из домена атакованной организации.

      В случаях, когда ИТ-инфраструктура атакованной организации состоит из нескольких доменов, злоумышленники изучали доверительные отношения между доменами, чтобы найти учётные записи, которые позволят развивать атаку дальше:

      В процессе атаки на контроллер домена злоумышленники получали в том числе хеш пароля пользователя krbtgt (служебная учётная запись Active Directory), что позволяло им выполнить атаку, известную как Golden Ticket. Злоумышленники получали возможность самостоятельно выпускать билеты Kerberos (TGT) и выполнять аутентификацию в любом сервисе Active Directory, причем на неограниченное время.

      В одном из исследованных случаев службе безопасности атакованной организации удалось выявить подозрительную активность на контроллере домена, после чего пароли пользователей, чьи учётные записи были скомпрометированы, были изменены. Однако злоумышленники как ни в чём не бывало продолжили действовать под теми же учётными записями, используя билеты Kerberos. Таким образом, в случае атаки Golden Ticket стандартные методы реагирования на киберинциденты оказываются недостаточными.

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

      Вывод украденных данных

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

      После получения контроля над большей частью ИТ-инфраструктуры атакованной организации злоумышленники приступают к этапу кражи конфиденциальной информации. Все файлы, собираемые злоумышленниками, упаковываются в ZIP-архивы под паролем, для автоматизации этого процесса злоумышленники используют собственную сборку утилиты 7-Zip.

      Фрагмент кода сборки 7-Zip, использованной в атаке

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

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

      Схема передачи украденных данных с зараженных систем

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

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

      Жертвы атаки

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

      Целями атаки стали заводы, конструкторские бюро и НИИ, государственные агентства, министерства и ведомства нескольких стран Восточной Европы (Белоруссия, Россия, Украина), а также Афганистана.

      Информация о злоумышленниках

      C большой вероятностью за атакой стоит китайско-говорящая группа.

      1. Мы видим значительное совпадение Tactics, Techniques, and Procedures (TTPs) с активностью APT TA428.
      2. В исследуемой атаке был использован тот же weaponizer, помещающий код эксплойта CVE-2017-11882 внутрь документов, что и в предыдущих атаках APT TA428, направленных против предприятий оборонно-промышленного комплекса России.
      3. На то, что за атакой с большой вероятностью стоит именно китайско-говорящая группа, также указывает ряд косвенных улик. Например:
        • использование популярных в Китае хакерских утилит, таких как Ladon,
        • расположение сервера управления второго уровня в Китае,
        • регистрационная информация серверов управления, где среди контактных данных администратора указан адрес электронной почты на китайском домене 163.com.

      В ходе исследования мы изучили 59 сеансов подключений злоумышленников к зараженным системам (подчеркнём: речь идёт не об автоматизированной работе вредоносного ПО, а именно о случаях, когда злоумышленник подключался к зараженной системе и вводил команды вручную). Оказалось, что время дня, в которое производилось подключение, во всех случаях (за исключением одного) попадает в промежуток между 8 утра и 5 вечера по часовому поясу GMT+8, в котором расположен Китай (также, как и ряд других стран).

      Время подключения злоумышленников к зараженным системам

      Мы считаем, что выявленная нами серия атак c высокой вероятностью является продолжением уже известной кампании, которая была описана в исследованиях Cybereason, DrWeb и NTTSecurity. Об этом говорит множество обнаруженных нами факторов и улик, начиная от выбора жертв, заканчивая совпадением серверов управления вредоносным ПО.

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

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

      Выводы

      Результаты исследования показывают, что целевой фишинг остаётся одной из наиболее актуальных угроз для промышленных предприятий и государственных учреждений. В основном злоумышленники использовали известные ранее вредоносные программы класса backdoor, а также стандартные техники развития атаки и обхода детектирования антивирусных решений. При этом им удалось проникнуть на десятки предприятий, а на некоторых даже полностью захватить IT-инфраструктуру и взять под контроль системы управления защитными решениями.

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

      Мы не заканчиваем наше расследование и будем публиковать информацию о новых находках по мере их появления.

      Если после прочтения этого отчета у вас возникнут вопросы или комментарии, или у вас появится какая-либо дополнительная информация, имеющая отношение к описанной в нем вредоносной кампании, свяжитесь с нами, отправив электронное письмо по адресу ics-cert@kaspersky.com.

      Рекомендации

      1. Убедитесь, что на всех серверах и рабочих станциях установлено защитное программное обеспечение с поддержкой централизованного управления, антивирусные базы и программные модули которого находятся в актуальном состоянии.
      2. Убедитесь, что все компоненты защитного ПО включены на всех системах, а также установлена политика, запрещающая отключение защиты без ввода пароля администратора.
      3. Убедитесь, что политики Active Directory включают ограничения на попытки пользователей войти в систему. Пользователям следует разрешать входить только в те системы, доступ к которым им необходим для выполнения своих служебных обязанностей.
      4. Ограничьте (минимизируйте) сетевые соединения между системами в OT сети, включая VPN; заблокируйте соединения по всем портам, использование которых не требуется для работы технологического процесса.
      5. По возможности ограничьте доверительные отношения между доменами организации и минимизируйте количество пользователей, имеющих права доменного администратора.
      6. Обучите сотрудников организации правилам безопасной работы с интернетом, электронной почтой и другими каналами связи, в частности, объясните возможные последствия загрузки и запуска файлов из непроверенных источников. Уделите внимание вопросам выявления фишинговых писем, а также практикам безопасной работы с документами Microsoft Office.
      7. Используйте учетные записи с правами локального администратора и администратора домена только тогда, когда это необходимо для выполнения должностных обязанностей.
      8. Ограничьте возможность получения программами привилегий SeDebugPrivilege (в тех случаях, когда это возможно).
      9. Внедрите парольную политику, которая устанавливает требования к сложности паролей и требует регулярно менять пароли.
      10. Рассмотрите возможность использования продуктов и сервисов класса Managed Detection and Response, чтобы получить быстрый доступ к высокоуровневым знаниям и опыту специалистов по информационной безопасности.
      11. Используйте специальные защитные решения для промышленных предприятий. Kaspersky Industrial CyberSecurity защищает рабочие станции и обеспечивает сетевой мониторинг в OT сети для выявления и блокировки вредоносной активности.

      Приложение I – индикаторы компрометации

      Примечание: Индикаторы, представленные в этом разделе, являются актуальными на момент публикации.

      Контрольные суммы файлов (MD5)

      Пути к файлам

      Вердикты защитных решений

      Доменные имена и IP адреса