Охота за кредами

Базы данных паролей

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

Данная статья представлена исключительно в образовательных целях. Red Team сообщество «GISCYBERTEAM» не несёт ответственности за любые последствия ее использования третьими лицами.

SAM

Хэши паролей всех локальных учетных записей хранятся в файле реестра SAM (System Account Manager). По своей сути, SAM — это база данных учетных записей, доступ к которой можно получить множеством различных способов. Например, можно сохранить ветки реестра HKLM\SYSTEM и HKLM\SAM, передать на свой хост и с помощью impacket-secretsdump извлечь пароли:

C:> reg save HKLM\SYSTEM SYSTEM
C:> reg save HKLM\SAM SAM
impacket-secretsdump -system SYSTEM -sam SAM

Или можно сразу сдампить пароли удаленно:

impacket-secretsdump DOMAIN/USER:PASSWORD@TARGET_IP

Еще мы можем вытащить пароли с помощью mimikatz, также предварительно сохранив файлы SAM и SYSTEM:

lsadump::sam /system:SYSTEM /sam:SAM

Либо через оболочку meterpreter в metasploit:

meterpreter> hashdump

Внимание! Для получения доступа к файлам SAM и SYSTEM необходимо обладать привилегиями бэкап-оператора, администратора или системы.

LSA и LSASS

LSA (The Local Security Authority) — это защищенная подсистема Windwos, которая хранит сведения обо всех аспектах локальной безопасности.

LSASS (The Local Security Authority Subsystem Service) — это процесс в системах Windows, который отвечает за управление различными механизмами аутентификации. Он выполняет проверку учетных данных как локальных, так и доменных пользователей, а также отвечает за хранение в памяти учетных данных пользователей.

Для дампа LSASS-процесса, как и SAM базы, существует множество инструментов и техник. Наиболее популярные среди них:

Более новые и продвинутые инструменты:

NTDS.DIT

Файл NTDS.DIT представляет собой базу данных, расположенную на контроллере домена в папке C:\Windows\NTDS\. В этой базе данных хранится информация Active Directory о пользователях, группах и членстве в группах. В эту базу данных также входят хэши паролей всех пользователей в домене.

Типы аутентификации

Теперь рассмотрим различные типы входа в системах Windows, посмотрим как генерируются события этого типа входа и рассмотрим как сохраняются учетные данные для них.

Interactive Logon

Интерактивный вход в систему — это вход на физической машине после включения либо же запуск процесса через runas:

runas /user:USER cmd.exe

В данном случае, если вход производится с локальной учетной записью, то NT хэш заносится в SAM. Если же учетная запись доменная — то хэш заносится в lsass, а компьютер дополнительно проверит переданные учетные данные путем запроса TGT билета, который будет сохранен в кэш. Содержимое кэша билетов можно посмотреть с помощью команды:

klist

5b1b9b7407f416d19d57d4de18f6fa87.png

ID для такого типа входа — 2.

30cd1f1ff9da960213aba629cb48d107.png

NewCredentials Logon

NewCredentials Logon происходит, когда используется runas с флагом /netonly:

runas /user:USER cmd.exe /netonly

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

Для этого типа входа используется ID 9.

Эти учетные данные также будут сохранены в процессе lsass.

bc8f203ff4ca6a8978a8b2caa11d3bc0.png

Network Logon

Этот тип входа осуществляется через сеть при подключении, например, к WinRM, SMB, RPC и т.п. Для аутентификации этого типа мы можем использовать пароль, хэш или Kerberos тикет, а значит при данном варианте мы можем использовать атаки Pass-the-Hash, Pass-the-Ticket или Pass-the-Key.

При network logon«е данные нигде не сохраняются. Такой тип логина логируется с ID 3.

912db3fcc3b11b234e08e80f7651a3c8.png

Batch Logon

Batch Logon тип используется при запуске задач по расписанию под каким-либо пользователем. Этот тип логина помечается с ID 4

0d0c70156fecae3cc155a59a66bd4c00.png

Учетные данные в таком случае сохраняются в lsass при запуске задачи.

4acf520cd2f13cc7f669369b5ba23159.png

Remote Interactive Logon

Remote Interactive Logon используется когда мы подключаемся к удаленной машине по RDP. Такой тип логона имеет идентификатор 10

20485f2fd70f84ce826a1900f255d15d.png

RDP использует CredSSP для аутентификации, поэтому пароли отправляются по сети на удаленный хост и кэшируются в процессе lsass.

e4c934afc527df9f8d593ec62364514d.png

Протокол CredSSP (Поставщик поддержки безопасности учетных данных) — это поставщик поддержки безопасности, который реализуется с помощью интерфейса поставщика поддержки безопасности (SSPI), позволяющий приложению делегировать учетные данные пользователя от клиента целевому серверу для удаленной проверки подлинности.

Заключение

Сегодня мы с вами разобрали основные типы логонов в Windows и выяснили, в каких ситуациях сохраняются учетные данные. Таким образом получается, что учетные данные сохраняются при Interactive Logon, Remote Interactive Logon, Batch Logon и NewCredentials Logon. В случае Network Logon креды не кэшируются.

© Habrahabr.ru