HiveNightmare

hacking tools

Файл диспетчера учетных записей безопасности (SAM) содержит хэши паролей пользователей в системе Windows. Поскольку он считается конфиденциальным файлом, для просмотра его содержимого требуются привилегии уровня СИСТЕМЫ. Поэтому файл SAM представляет интерес для любого пентеста, поскольку хэши паролей могут быть получены для автономного взлома после достижения локального повышения привилегий. Однако, как было обнаружено Джонасом Ликом, различные версии Windows 10 и Windows 11 позволяют обычному пользователю читать файл SAM из-за неправильной настройки прав доступа к файлу.

Так как файл SAM содержит хэши паролей всех пользователей системы, включая администратора, его можно использовать как метод повышения привилегий. Чтобы система была уязвима для этого метода, который называется HiveNightmare, необходимо выполнение следующих двух условий:

  • Включена защита системы
  • Точка восстановления (теневое копирование тома)

Защита системы включена по умолчанию в операционных системах Windows, поэтому, если точка восстановления была создана, обычный пользователь может получить доступ и прочитать файл SAM из теневой копии тома и файлов SECURITY и SYSTEM. Изначально все эти файлы можно найти в следующем каталоге:

C:\Windows\System32\config\SAM
C:\Windows\System32\config\SECURITY
C:\Windows\System32\config\SYSTEM
Системная защита
Защита системы

Существует множество наступательных операций по обеспечению безопасности, которые можно проводить с помощью техники HiveNightmare:

  • Сброс хэшей
  • Повышение привилегий
  • Выдача себя за пользователя
  • Изменение паролей
  • Захват аккаунта (через ответы на контрольные вопросы)

Дамп хэшей

Первоначально Кевин Бомонт разработал на C ++ исполняемый файл под названием HiveNightmare. Инструмент скопирует файлы SAM, SECURITY и SYSTEM из теневой копии тома в текущий каталог.

HiveNightmare - Версия C ++
HiveNightmare — Версия C ++

C # версия HiveNightmare была разработана Cube0x0, что позволяет красным командам использовать ее в памяти посредством выполнения сборки Cobalt Strike или через любую другую структуру управления и контроля, такую ​​как Covenant. Хеши паролей, ответы на вопросы безопасности и другая интересная информация будут отображаться в консоли, избегая записи каких-либо файлов на диск.

HiveNightmare – C#
HiveNightmare – C#

Точно так же существует сценарий PowerShell под названием Invoke-HiveNightmare от Фернандо Томлисона, который может выгружать кусты SAM, SECURITY и SYSTEM в текущий рабочий каталог в качестве исполняемого файла HiveNightmare.

HiveNightmare - PowerShell
HiveNightmare — PowerShell

В качестве альтернативы сценарий SeriousSam может копировать из теневой копии тома файлы из уязвимой системы.

SeriousSAM
SeriousSAM

Кристиан Мелмауэр реализовал эту технику на языке го. Исполняемый файл hive.exe сбрасывает файлы в текущий рабочий каталог с отметкой времени.

HiveNighmare – Go
HiveNighmare – Go

Наконец, Mimikatz содержит модуль «lsadump :: sam», который может читать файл SAM, если флаг «/ sam» используется с полным путем к файлу SAM в теневой копии тома.

lsadump::sam /system:\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\system32\config\SYSTEM /sam:\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\system32\config\SAM
Mimikatz - Дамп-хэша
Mimikatz — Дамп-хэша
Mimikatz - NTLM Hash
Mimikatz — NTLM Hash

Инструменты, которые могли копировать файлы из теневой копии тома и не отображали хэши в выводе консоли, например Mimikatz, могут быть перенесены в другую систему, где установлен пакет impacket, для использования через инструмент Python secretsdump.

Повышение привилегий

Хэши паролей для учетных записей с повышенным доступом (локальный администратор) могут быть взломаны в автономном режиме для использования в системе и повышения привилегий. Однако получение хэша пароля локального администратора можно использовать напрямую через psexec для аутентификации в среде с привилегиями уровня SYSTEM. Секретный дамп из набора impacket может читать данные, хранящиеся в кусте реестра SAM и SECURITY, выполнив следующую команду:

secretsdump.py -sam SAM -system SYSTEM -security SECURITY LOCAL
HiveNightmare - secretsdump
HiveNightmare — secretsdump

Попытка пройти аутентификацию с помощью psexec с использованием хэш-значения локальной учетной записи администратора может предоставить доступ к оболочке как SYSTEM. Этот метод создаст службу в системе Windows и не считается безопасным для opsec. Однако устраняет необходимость взламывать хэш NTLM в случае выбора надежного пароля.

psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:58a478135a93ac3bf058a5ea0e8fdb71 pentestlab@10.0.0.9 cmd.exe
HiveNightmare - psexec
HiveNightmare — psexec

Следует отметить, что для работы psexec учетная запись должна быть частью локальной группы администраторов, а управление учетными записями удаленных пользователей должно быть отключено. Это регулируется ключом реестра LocalAccountTokenFilterPolicy, который должен присутствовать в системе и иметь значение «1» (отключено).

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Политика фильтрации токенов локальной учетной записи
Политика фильтрации токенов локальной учетной записи

Выдача себя за пользователя

Альтернативный подход — использовать инструмент C # под названием SharpNamedPipePTH, который был разработан ShitSecure, чтобы выдавать себя за других пользователей системы. Инструмент использует локальный именованный канал и метод передачи хэша для аутентификации, чтобы выполнять двоичные файлы от имени другого пользователя или из командной строки. Поскольку инструмент был разработан на C #, его можно использовать в различных фреймворках C2. Получение оболочки с повышенными или ограниченными правами в зависимости от прав пользователя может использоваться для различных сценариев, таких как доступ к документам, файлам, содержащим строки подключения, и ограничение действий скомпрометированного пользователя до необходимого уровня.

SharpNamedPipePTH.exe username:pentestlab hash:8c3efc486704d2ee71eebe71af14d86c binary:C:\windows\system32\cmd.exe
HiveNightmare – SharpNamedPipePTH
HiveNightmare – SharpNamedPipePTH
HiveNightmare – Token Impersonation
HiveNightmare – Token Impersonation

Изменение паролей

Несколько раз во время оценки системы могли содержать старые учетные записи, которые не использовались в течение длительного периода времени. Поскольку эти учетные записи активно не используются, очень вероятно, что они не будут отслеживаться и, следовательно, могут использоваться в качестве метода перехода от одной учетной записи к другой и скрытия следов. Модуль Mimikatz «lsadump :: sam» можно использовать для дампа хэшей из теневой копии тома, как это обсуждалось ранее в этой статье:

lsadump::sam /system:\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\system32\config\SYSTEM /sam:\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\system32\config\SAM
Mimikatz - модуль lsadump
Mimikatz — модуль lsadump
Mimikatz – NTLM Hash pentestlab User
Mimikatz – NTLM Hash pentestlab User

Модуль «lsadump :: changentlm» от Mimikatz можно использовать для изменения пароля пользователя, просто используя хэш текущего пароля.

lsadump::changentlm /user:pentestlab /oldntlm:58a478135a93ac3bf058a5ea0e8fdb71 /newpassword:Password1234
Mimikatz - Смена пароля
Mimikatz — Смена пароля

Захват аккаунта

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

HiveNightmare - Вопросы безопасности
HiveNightmare — Вопросы безопасности

Точно так же Mimikatz также будет отображать ответы на вопросы безопасности в ясном виде, когда используется модуль «lsadump :: secrets». Информация хранится в файле SECURITY, поэтому необходимо использовать переключатель «/ security», чтобы указать местоположение файла в теневой копии тома.

Mimikatz- Read Security Hive
Mimikatz- Read Security Hive

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

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *