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