8 декабря компания FireEye сообщила, что в результате успешной атаки высококвалифицированной APT-группировке удалось получить доступ к инструментам, которые компания использовала как арсенал Red Team команды.

Невольно новость отсылает к 2017 году, когда в сеть попал инструментарий ЦРУ и АНБ для взлома инфраструктуры. Эти утечки подарили миру большое количество разнообразных утилит: от эксплойтов для домашних роутеров и Smart TV до серверов управления зараженными хостами. Наибольший резонанс произвел эксплоит EternalBlue, использовавшийся в шифровальщиках WannaCry, Petya, NotPetya, которые парализовали деятельность компаний по всему миру.
Возвращаясь к текущему кейсу, компания FireEye уверяет, что в составе утекших данных нет 0-day эксплойтов и инструментов эксплуатации неизвестных ранее техник. Также FireEye опубликовала на GitHub набор правил (YARA, Snort, OpenIOC, ClamAV) для детектирования утек��его инструментария.

На основе информации, предоставленной FireEye попробуем разобраться какой арсенал получили злоумышленники в ходе успешной атаки и удалось ли им расширить инструментарий какими-то принципиально новыми средствами.
Итак,

git clone https://github.com/fireeye/red_team_tool_countermeasures

Далее попробуем воссоздать инструментарий, которым пользуется Red Team команда FireEye на разных стадиях развития атаки. Будем рассматривать техники согласно классификатору MITRE ATT&CK

Предварительная подготовка вредоносной нагрузки (Resource Development)


  • Matryoshka – набор утилит для первоначального проникновения. Включает генератор вредоносной нагрузки, дроппер и загрузчик.
  • LNKSmasher – утилита для генерации LNK-файлов с вредоносным содержимым. Может применяться для создания эксплойтов для LNK-уязвимостей.
  • GadgetToJScript – публичный проект, позволяющий внедрять .NET-сборки в сценарии VBS, VBA, JS, HTA.
  • Redflare – фреймворк разработанный командой FireEye для проведения операций RedTeam. Фреймворк позволяет собирать вредоносный код для различных операционных систем
  • RESUMEPLEASE – шаблон для создания документов Microsoft Office c вредоносными VBA (Visual Basic for Application) макросами.
  • SinfulOffice – утилита для создания вредоносных документов Microsoft Office c внедренными OLE-объектами
  • WildChild – утилита для создания вредоносных файлов HTA (HTML Application)
  • PrepShellCode – утилита для подготовки шеллкода

Первоначальный доступ в инфраструктуру (Initial Access)


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

  • Expl-CVE-2017-11774 – эксплоит для уязвимости в Microsoft Outlook

Эксплоиты для уязвимостей в публичных сетевых сервисах:

  • Expl-CVE-2019-0708 – эксплоит для уязвимости в Microsoft Remote Desktop Services (RDS), также известной как BlueKeep.
  • Expl-CVE-2019-19781 – эксплоит для уязвимости в Citrix Application Delivery Controller (ADC) и Citrix Gateway
  • Expl-CVE-2019-8394 – эксплоит для уязвимости в Zoho ManageEngine ServiceDesk Plus (SDP)

Выполнение вредоносного кода (Execution)


  • Cobalt Strike – коммерческий фреймворк для постэксплуатации. Имеет модули для запуска различных команд.
  • DShell – Windows-троян, написанный на языке D
  • DTRIM – Модифицированная версия SharpSploit – фреймворка для выполнения широкого спектра постэксплуатационных действий. Реализованы функции запуска нативных windows-приложений, .Net-сборок, скриптов PowerShell, шеллкода напрямую.
  • DueDLLigence – публичный проект FireEye для подготовки DLL с внедренным шеллкодом.
  • Impacket-Obfuscation – модифицированная версия популярного фреймворка Impacket для проведения атак в Windows-инфраструктуре. Имеет различные функции выполнения команд (PSExec, выполнение команд через Tack Scheduler и WMI)
  • In-MemoryCompilation – утилита для компиляции вредоносного кода в памяти
  • TrimBishop – утилита базируется на проекте RuralBishop, предназначена для выполнения шеллкода в контексте другого процесса. Утилита делает маппинг специализированной секции с шеллкодом в целевой процесс и создает suspended поток для выполнения кода.
  • C_Sharp_SectionInjection – утилита для внедрения секций в PE-файл

Закрепление в инфраструктуре (Persistence)


  • Cobalt Strike – коммерческий фреймворк для постэксплуатации, при использовании совместно с расширением StayKit обретает набор методов закрепления (реестр, задачи планировщика, LNK, системный сервис, WMI)
  • Mofcomp — Вредоносные файлы MOF (Managed Object Format) для регистрации записей в WMI. Используются как механизм закрепления.
  • SharPersist – публично доступных проект FireEye для закрепления на Windows-хостах. В утилите реализованы различные методы закрепления: бэкдор в конфигурации KeePass, задача планировщика, дополнительное задание к существующей задаче планировщика, ярлык в папке автозапуска, SVN hook, сервис,
  • SharPivot – консольная .Net утилита для выполнения команд на удаленном хосте. Реализует различные техники и протоколы: WMI, RPC, Создание нового задания планировщика, Модификацию задания планировщика, WinRM, COM, регистрацию нового сервиса, регистрацию нового протокольного обработчика
  • SharpSchtask – утилита для закрепления на хосте при помощи заданий планировщика
  • Justtask – утилита для создания заданий планировщика заданий
  • Keepersist – утилита для закрепления на хосте

Получение повышенных привилегий (Privilege Escalation)


  • Cobalt Strike – коммерческий фреймворк для постэксплуатации. Для фреймворка доступен ElevateKit, содержащий ряд эксплоитов для повышения привилегий (CVE 2020-0796, CVE-2014-4113, CVE 2015-1701, CVE 2016-0051, CVE-2016-099)
  • Sharpzerologon – публично доступный эксплойт для уязвимости в сервисе Netlogon (CVE-2020-1472), получившей название Zerologon. Успешная эксплуатация приводит к компрометации учетной записи доменного администратора. Код эксплойта адаптирован для использования из Cobalt Strike
  • Expl-CVE-2014-1812 – эксплоит для уязвимости Group Policy на Windows
  • Expl-CVE-2016-0167 – эксплоит для уязвимости Windows kernel-mode driver
  • Expl-CVE-2020-1472 – эксплоит для уязвимости в службе Netlogon
  • Expl-CVE-2018-8581 – эксплоит для уязвимости в Microsoft Exchange

Обход средств обнаружения (Defense Evasion)


  • Cobalt Strike – коммерческий фреймворк для постэк��плуатации, В составе есть инструменты позволяющие гибко настроить протокол общения с зараженными хостами для усложнения сетевого обнаружения.
  • DTRIM – Модифицированная версия SharpSploit – фреймворка для выполнения широкого спектра постэксплуатационных действий. Реализованы функции обхода AMSI а также патчинг ETWEventWrite для отключения ETW для текущего процесса
  • Matryoshka – набор утилит для первоначального проникновения. Включает генератор вредоносной нагрузки, дроппер и загрузчик. Загрузчик использует технику Process Hollowing для скрытия своей работы
  • NoAmci – утилита для патчинга AMSI.dll c целью обхода AMSI (Antimalware Scan Interface) при вызове метода Assembly.Load(). Используется для внедрения .NET-сборки в сторонний процесс.
  • PGF – утилита для создания бэкдора. Состоит из генератора вредоносной нагрузки и ряда загрузчиков. Может обходить механизмы Application Whitelistening путем внедрения DLL в легитимные процессы
  • SharpStomp – утилита для модификации файловых атрибутов: даты создания, даты модификации, даты последнего обращения
  • NET-Assembly-Inject – утилита для внедрения кода написанного для .Net в легитимные приложения
  • NetshShellCodeRunner – утилита использует легитимную утилиту NetSh.exe для запуска кода из вредоносной DLL

Получение учетных записей (Credential Access)


  • Cobalt Strike – коммерческий фреймворк для постэксплуатации. В состав входят средства для дампа учетных записей.
  • Adpasshunt — утилита для дампа паролей из Group Policy Preferences и атрибутов msSFU30Password и UserPassword Active Directory
  • DTRIM – Модифицированная версия SharpSploit – фреймворка для выполнения широкого спектра постэксплуатационных действий. Реализован функции дампа учетных записей и проведения атак на протокол Kerberos
  • Excavator – утилита для дампа памяти процессов. Может использоваться для кражи учетных записей
  • Rubeus — фреймворк для различных манипуляций с тикетами Kerberos, в том числе для проведения атак перебора паролей и Kerberoasting
  • Fluffy – внутренний форк проекта Rubeus.
  • Impacket-Obfuscation — модифицированная версия популярного фреймворка Impacket для проведения атак в Windows-инфраструктуре. Имеет функции дампа секретов (SAM, LSA, NTDS.dit), проведения атак на Kerberos (Манипуляции с Kerberos-тикетами, Golden Ticket), проведения MiTM-атак на протокол NTLM.
  • InveighZero – утилита для проведения MiTM-атак на протоколы LLMNR, NBNS, mDNS, DNS, DHCPv6
  • KeeFarce – утилита для получения паролей из KeePass 2.x. Данные получаются путем внедрения DLL в работающий процесс KeePass
  • PXELoot (PAL) – утилита для исследования и эксплуатации уязвимостей в конфигурации WDS (Windows Deployment Services)
  • SafetyKatz – публичный проект для дампа учетных записей из процесса LSASS. Сочетает в себе модифицированную версию Mimikatz и загрузчик PE написанный на C#
  • TitoSpecial – утилита разработанная на базе проекта AndrewSpecial для дампа паролей из процесса LSASS. В утилите используются техники обхода EDR
  • CredSnatcher – утилита для кражи учетных данных
  • WCMDump – утилита для кражи учетных данных из Windows Credential Manager
  • Expl-CVE-2018-13379 – эксплоит для уязвимости FortiOS SSL VPN, позволяющий получить учетные данные пользователей
  • Expl-CVE-2019-11510 – эксплоит для уязвимости Pulse Secure SSL VPN, позволяющий получить учетные данные пользователей

Исследование инфраструктуры (Discovery)


  • Cobalt Strike – коммерческий фреймворк для постэксплуатации. В состав входят модули для сбора различной информации на хосте и по сети.
  • Seatbelt – публично доступная утилита для сбора различной информации с ОС Windows
  • CoreHound — .Net утилита, предположительно fork SharpHound утилиты для изучения структуры домена Active Directory и сбора всевозможных данных о настройках безопасности.
  • PuppyHound – модифицированная версия фреймворка SharpHound для исследования Active Directory
  • DTRIM – Модифицированная версия SharpSploit – фреймворка для выполнения широкого спектра постэксплуатационных действий. Реализованы функции получения различных данных на уровне хоста и по сети.
  • EWSRT – Проект базирующийся на утилите RT-EWS для получения различных данных с серверов Exchange, в том числе с Office 365
  • Getdomainpasswordpolicy – утилита для получения данных парольной политике в домене Active Directory
  • gpohunt – утилита для получения данных групповых политик в домене Active Directory
  • SharpUtils – набор утилит, написанных на C# для запуска через метод execute assembly фреймворка Cobalt Strike
  • WMISharp – утилита для работы с WMI
  • WMIspy – утилита для сбора данных через WMI
  • modifiedsharpview — модифицированная версия SharpView, утилита для поиска информации в Active Directory

Перемещение по инфраструктуре (Lateral Movement)


  • Cobalt Strike – коммерческий фреймворк для постэксплуатации. Фреймворк укомплектован модулями горизонтального перемещения (PsExec, WinRM, Windows Admin Shares)
  • DTRIM – Модифицированная версия SharpSploit – фреймворка для выполнения широкого спектра постэксплуатационных действий. Для горизонтального перемещения использует WMI, DCOM, Создание сервиса на удаленном хосте, PowerShell Remoting.
  • Impacket-Obfuscation – модифицированная версия популярного фреймворка Impacket для проведения атак в Windows-инфраструктуре. Имеет различные функции выполнения команд (PSExec, выполнение команд через Tack Scheduler и WMI) а также эксплоиты для уязвимостей Samba (CVE-2017-7494), Kerberos (CVE-2016-0049), Netlogon (CVE-2015-0005)
  • WMIRunner – утилита для запуска команд через WMI
  • SharPivot – консольная .Net утилита для выполнения команд на удаленном хосте. Реализует различные техники и протоколы: WMI, RPC, Создание нового задания планировщика, Модификацию задания планировщика, WinRM, COM, регистрацию нового сервиса, регистрацию нового протокольного обработчика
  • Expl-CVE-2018-15961 – эксплоит для уязвимости в Adobe ColdFusion
  • Expl-CVE-2019-0604 – эксплоит для уязвимости в Microsoft Sharepoint
  • Expl-CVE-2019-0708 – эксплоит для уязвимости в Microsoft Remote Desktop Services (RDS), также известной как BlueKeep
  • Expl-CVE-2019-11580 – эксплоит для уязвимости в Atlassian Crowd
  • Expl-CVE-2019-3398 – эксплоит для уязвимости в Atlassian Confluence Server
  • Expl-CVE-2020-0688 – эксплоит для уязвимости в Microsoft Exchange
  • Expl-CVE-2020-10189 – эксплоит для уязвимости в ZoHo ManageEngine Desktop Central

Удаленное управление (Command and Control)


  • Cobalt Strike – коммерческий фреймворк для постэксплуатации. Включает в себя Team Server для централизации управления скомпрометированными хостами в инфраструктуре.
  • DShell – Windows-троян, написанный на языке D
  • Redflare – фреймворк разработанный командой FireEye для проведения операций RedTeam. Включает в себя командный сервер
  • GoRAT – модульный бэкдор для различных систем (Windows, MacOS), является частью фреймворка Redflare. Написан на языке Go
  • DoHC2 – расширение фреймворка Cobalt Strike для организации канала управления через протокол DNS over HTTPS (DoH)
  • prat – remote access trojan

Вспомогательные утилиты


  • SharpGrep – утилита поиска по контенту файлов
  • sharpdacl – утилита для работы с ACL
  • sharpdns – утилита для работы с протоколом DNS
  • sharpgopher – утилита для работы с протоколом Gopher
  • sharpnativezipper – утилита для использования штатный средств ОС для компрессии данных
  • sharpnfs – утилита для работы с протоколом NFS
  • sharppatchcheck – утилита для проверки установленных обновлений
  • sharpsqlclient – SQL-клиент
  • sharpwebcrawler – Crawler веб страниц
  • sharpziplibzipper – утилита для компрессии, использующая libzip

Утилиты неизвестного назначения


По предоставленной информации назначение данных утилит понять не удалось.

  • Allthethings
  • SharpGenerator
  • Lualoader
  • MSBuildMe
  • Revolver
  • Sharpsack
  • Sharpy
  • red_team_materials
  • sharptemplate

Итоги проведенного анализа


  • Большая часть инструментария предназначена для проведения атак в инфраструктуре Microsoft Windows
  • Для развития атаки применяется коммерческий фреймворк Cobalt Strike а также модифицированные версии известных open source проектов (SharpView, SharpSploit, Impacket, SharpHound, SafetyKatz)
  • Модификация open source во многом связана с дополнительными техниками обхода средств обнаружения
  • В компании есть большое количество собственных разработок, преимущественно на C#
  • FireEye применяет многоступенчатое вредоносное ПО для атаки.
  • В арсенале присутствует ряд эксплойтов для опасных уязвимостей, но все эксплойты можно найти на просторах интернета

Факты, которые меня удивили:

  • Отсутствие инструментов для работы с Linux и другими Unix-подобными операционными системами
  • Отсутствие утилит для атаки на сетевые устройства
  • Отсутствие арсенала для работы с Web-приложениями
  • Достаточно скромная подборка эксплойтов для первичного проникновения в инфраструктуру

Выводы


Успешная атака на гиганта рынка информационной безопасности несомненно войдет в перечень значимых событий нашей отрасли, но также нужно понимать, что инструментарий Red Team точно не являлся целью атакующих. Компания FireEye выполняла работы для крупных компаний по всему миру а также являлась подрядчиком государственных структур США, таких как Department of Defense, Health and Human Services, Treasury, Homeland Security и др. Данные этих организаций более лакомый кусок для про государственных хакеров чем подборка эксплоитов и утилит.

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

Разбор утилит по техникам MITRE ATT&CK
Execution
  • T1059.001 Command and Scripting Interpreter: PowerShell (Cobalt Strike)
  • T1059.003 Command and Scripting Interpreter: Windows Command Shell (Cobalt Strike, DShell)
  • T1059.005 Command and Scripting Interpreter: Visual Basic (Cobalt Strike)
  • T1059.006 Command and Scripting Interpreter: Python (Cobalt Strike)
  • T1059.007 Command and Scripting Interpreter: JavaScript/JScript (GadgetToJscript)
  • T1106 Native API (Cobalt Strike, DTRIM)
  • T1129 Shared Modules (DueDDLigence)
  • T1203 Exploitation for Client Execution (Expl-CVE-2017-11774, Expl-CVE-2019-0708, Expl-CVE-2019-19781, Expl-CVE-2019-8394)
  • T1569.002 System Services: Service Execution (Cobalt Strike, Impacket-Obfuscation)

Persistence
  • T1053.005 Scheduled Task/Job: Scheduled Task (SharPersist)
  • T1543.003 Create or Modify System Process: Windows Service (Cobalt Strike, SharPersist)
  • T1546.003 Event Triggered Execution: Windows Management Instrumentation Event Subscription (Mofcomp)

Privilege Escalation
  • T1068 Exploitation for Privilege Escalation (Cobalt Strike, Sharpzerologon, Expl- CVE-2014-1812, Expl-CVE-2016-0167, Expl-CVE-2020-1472, Expl-CVE-2018-8581)
  • T1134.001 Access Token Manipulation: Token Impersonation/Theft (Cobalt Strike)
  • T1134.003 Access Token Manipulation: Make and Impersonate Token (Cobalt Strike)
  • T1134.004 Access Token Manipulation: Parent PID Spoofing (Cobalt Strike)

Defense Evasion
  • T1027.005 Obfuscated Files or Information: Indicator Removal from Tools (Cobalt Strike)
  • T1055 Process Injection (Cobalt Strike, NET-Assembly-Inject)
  • T1055.012 Process Injection: Process Hollowing (Cobalt Strike, Matryoshka)
  • T1070.006 Indicator Removal on Host: Timestomp (Cobalt Strike, SharpStomp)
  • T1197 BITS Jobs (Cobalt Strike)
  • T1548.002 Abuse Elevation Control Mechanism: Bypass User Account Control (Cobalt Strike) T1562.001 Impair Defenses: Disable or Modify Tools (DTRIM, NoAmci)
  • T1562.002 Impair Defenses: Disable Windows Event Logging (DTRIM)
  • T1572 Protocol Tunneling (Cobalt Strike)

Credential Access
  • T1003 OS Credential Dumping: Security Account Manager (Cobalt Strike, DTRIM, Excavator, Impacket-Obfuscation, SafetyKatz, TitoSpecial)
  • T1110 Brute Force (Rubeus, Fluffy)
  • T1056.001 Input Capture: Keylogging (Cobalt Strike)
  • T1552.006 Unsecured Credentials: Group Policy Preferences (Adpasshunt)
  • T1555 Credentials from Password Stores (Expl-CVE-2018-13379, Expl-CVE-2019-11510)
  • T1557.001 Man-in-the-Middle: LLMNR/NBT-NS Poisoning and SMB Relay (Impacket-Obfuscation, InveighZero)
  • T1558 Steal or Forge Kerberos Tickets (DTRIM, Rubeus, Fluffy, Impacket-Obfuscation)
  • T1040 Network Sniffing (Impacket-Obfuscation)
  • T1555.001 Process Injection: Dynamic-link Library Injection (KeeFarce)

Discovery
  • T1007 System Service Discovery (Seatbelt)
  • T1012 Query Registry (Seatbelt)
  • T1016 System Network Configuration Discovery (Cobalt Strike, Seatbelt)
  • T1018 Remote System Discovery (Cobalt Strike)
  • T1033 System Owner/User Discovery (Seatbelt)
  • T1046 Network Service Scanning (Cobalt Strike, DTRIM)
  • T1049 System Network Connections Discovery (Seatbelt)
  • T1057 Process Discovery (Cobalt Strike, DTRIM)
  • T1069.001 Permission Groups Discovery: Local Groups (Seatbelt, DTRIM)
  • T1069.002 Permission Groups Discovery: Domain Groups (CoreHound, DTRIM, PuppyHound, modifiedsharpview)
  • T1082 System Information Discovery (Seatbelt)
  • T1087.001 Account Discovery: Local Account (Seatbelt, DTRIM)
  • T1087.002 Account Discovery: Domain Account (Cobalt Strike, CoreHound, DTRIM, PuppyHound)
  • T1087.002 Account Discovery: Email Account (EWSRT)
  • T1087.004 Account Discovery: Cloud Account (Seatbelt, EWSRT)
  • T1124 System Time Discovery (Seatbelt)
  • T1135 Network Share Discovery (Cobalt Strike, Seatbelt, DTRIM)
  • T1201 Password Policy Discovery (Seatbelt, Getdomainpasswordpolicy)
  • T1217 Browser Bookmark Discovery (Seatbelt)
  • T1518 Software Discovery (Seatbelt)
  • T1482 Domain Trust Discovery (CoreHound, PuppyHound)

Lateral Movement
  • T1021.001 Remote Services: Remote Desktop Protocol (Cobalt Strike)
  • T1021.002 Remote Services: SMB/Windows Admin Shares (Cobalt Strike)
  • T1021.003 Remote Services: Distributed Component Object Model (Cobalt Strike, DTRIM)
  • T1021.004 Remote Services: SSH (Cobalt Strike)
  • T1021.006 Remote Services: Windows Remote Management (Cobalt Strike, DTRIM, Impacket-Obfuscation, WMIRunner)
  • T1047 Windows Management Instrumentation (Cobalt Strike, DTRIM)
  • T1210 Exploitation of Remote Services (Impacket-Obfuscation, Expl-CVE-2018-15961, Expl-CVE-2019-0604, Expl-CVE-2019-0708, Expl-CVE-2019-11580, Expl-CVE-2019-3398, Expl-CVE-2020-0688, Expl-CVE-2020-10189)
  • T1550.002 Use Alternate Authentication Material: Pass the Hash (Cobalt Strike)

Command and Control
  • T1071.001 Application Layer Protocol: Web Protocols (Cobalt Strike)
  • T1071.004 Application Layer Protocol: DNS (Cobalt Strike)
  • T1090.001 Proxy: Internal Proxy (Cobalt Strike)


Сергей Рублев. Директор по развитию Пангео Радар, CISSP