• Чт. Мар 28th, 2024

Способы выгрузки учетных записей из кэша домена

В этой статье будет рассмотрена атака с целью получения учетных записей из кэша домена и различные техники для извлечения хэшей паролей через эксплуатацию пользователя домена.

Domain Cache credential (DCC2)

Microsoft Windows хранит информацию о предыдущей авторизации пользователей локально. Соответственно, эти сведения используются в случае, если сервер авторизации (logon server) окажется недоступным. Эта технология носит название Domain Cache credential (или по другому MSCACHE или MSCASH хэш), которая сортирует хэши паролей пользователей, чтобы вы не смогли выполнить атаки навроде pass-the-hash. Для генерации хэшей используется алгоритм MSCACHE, хранящихся локально в реестре операционной системы Windows (по умолчанию, последние 10 хэшей).

Существует две версии MSCASH/MSCACHE (или DCC):

  • MSCACHEV1 или DCC1, используемый до Vista и Server 2003
  • MSCACHEV2 или DCC2, используемый после Vista и Server 2003

Переходим к рассмотрению техник для извлечения хэшей.

Metasploit

Metasploit – первый инструмент в нашем списке, помогающий пентестеру извлекать MSCACHE хэши, хранимые в реестре. Соответствующий модуль извлекает хэши домена, которые были закэшированы в результате настройки групповой политики (GPO). По умолчанию Windows хранит информацию о 10 последних успешных авторизаций:

use post/windows/gather/cachedump
set session 2
exploit

По результатам отработки модуля выгружаются хэши паролей из DCC2/MSCACHE, как показано на рисунке ниже:

Рисунок 1: Извлечение хэшей при помощи модуля в Metasploit

Impacket

Этот тип хэшей также можно извлечь при помощи Python и библиотек impacket. Перед использованием данной техники следует сохранить ветви реестра system и security на локальной машине при помощи следующих команд:

reg save hklm\system c:\system
reg save hklm\security c:\secuirty

Рисунок 2: Сохранение ветвей реестра на локальную машину

Далее скопируйте полученные файлы туда, где установлен impacket. В нашем случае копирование происходит в систему с Kali Linux. Затем для извлечения DCC2/MSCACHE хэшей используем следующую команду:

python secretsdump.py -security -system system LOCAL

Результат отработки скрипта показан на рисунке ниже:

Рисунок 3: Выгрузка хэшей при помощи скрипта secretsdump.py

Mimikatz

Ни для кого не секрет, что mimikatz – одна из наилучших утилит в арсенале пентестера для извлечения учетных записей в ОС Windows. С целью извлечения DCC2 / MSCACHEv2 хэшей необходимо установить mimikatz на скомпрометированной машине и выполнить следующую команду:

privilege::debug
token::elevate
lsadump::cache

Результат выполнения вышеуказанных команд показан на рисунке ниже:

Рисунок 4: Выгрузка хэшей при помощи mimikatz

PowerShell Empire

Переходим к следующей технике. В PowerShell Empire есть модуль для извлечения MSCACHEV2 хэшей из реестра скомпрометированной машины. Загрузите и запустите Empire в вашей локальной системе, скомпрометируйте целевой хост с целью использования пост-модуля, а затем введите следующую команду:

usemodule credentails/mimikatz/cache
set agent <agent_id>
execute

Результаты работы модуля по выгрузке MSCACHEv2 хэшей показаны на рисунке ниже:

Рисунок 5: Результат выгрузки хэшей при помощи модуля в PowerShell Empire

Koadic

Как и в случае с Powershell Empire, вы можете использовать утилиту Koadic для извлечения DCC2 хэшей при помощи следующего модуля:

use mimikatz_dotnet2js
set MIMICMD lsadump::cache

Результаты работы этого модуля показаны на рисунке ниже:

Рисунок 6: Извлечение хэшей при помощи Koadic

Python скрипт

Как и в примере с impacket вы можете воспользоваться скриптом mscache.py для извлечения MSCACHEV2 хэшей. Загрузите скрипт с github, и во время запуска в качестве параметров укажите пути к выгруженным файлам (как рассматривалось в разделе с impacket):

python mscache.py --security /root/Desktop/security –system /root/Desktop/system

Результаты работы скрипта показаны на рисунке ниже:

Рисунок 7: Выгрузка хэшей при помощи скрипта mscache.py

Расшифровка полученных хэшей

Как мы уже знаем, эти хэши не используются во время атак pass the hash, и нам нужна утилита john the ripper для расшифровки:

john --format=mscasch2 --wordlist=/usr/share/wordlists/rockyou.txt mhash

В результате получаем пароль в открытом виде для указанного хэша. Старайтесь не путаться между понятиями DCC2 и MSCACHEV2/MSCASH. Эти хэши идентичные и могут извлекаться при помощи вышеуказанных техник.

Рисунок 8: Расшифровка извлеченного хэша при помощи утилиты john the ripper

Автор: Andrey Kopelyan

У самурая нет цели, у самурая есть путь.