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

Существуют различные способы аутентификации в системах 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

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

NewCredentials Logon

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

runas /user:USER cmd.exe /netonly

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

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

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

Network Logon

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

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

Batch Logon

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

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

Remote Interactive Logon

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

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

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

Заключение

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

Подписывайтесь на наш Telegram-канал

Комментарии (2)


  1. Shibarius
    11.04.2024 03:36

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


  1. Dzzzen
    11.04.2024 03:36

    Для дампа NTDS.DIT отлично подходит Passcape WPR