
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
Persistence
Privilege Escalation
Defense Evasion
Credential Access
Discovery
Lateral Movement
Command and Control
- 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
