Получение хешей паролей в ОС Windows. Часть 3

Автор: Bernardo Damele A. G

История паролей

В двух предыдущих статьях (12) из серии "Эффективное получение хеша паролей в Windows", рассказывалось, как достать хеши паролей доменных учетных записей (из файла NTDS.DIT на доменом контролере) и локальных учетных записей (из SAM).

Если в парольной политике включено “Enforce password history” (“Требовать неповторяемость паролей”), то ОС Windows сохраняет некоторое количество предыдущих паролей, для того чтоб пользователь не использовал повторно свои старые пароли. На снимке экрана показано, как включить ведение истории паролей:

Требовать неповторяемость паролей

Запустите secpol.msc: Local Security Policy -> Account Policies -> Password Policy -> Enforce password history

По умолчанию на рабочих компьютера у параметр “Требовать неповторяемость паролей” значение 0, а на доменных контроллерах –24. Благодаря этому, есть вероятность, что из ntds.dit, можно получить хеши предыдущих паролей. Знание предыдущих хешированных паролей может помочь увидеть закономерность установки паролей пользователями.

Помимо утилит Cain & Abel и PWDumpX историю паролей можно получить воспользовавшись утилиткой pwhist от Toolcrypt.

LSA секреты

LSA секреты – область реестра, где ОС Windows хранит важную информацию. К секретам относяться:

  • пароли учетных записей служб (например Network Service, Local System и Local Service).
  • пароли входа в ОС при включенном авто-входе (auto-logon); в основном пароль пользователя, который вошел на консоль (запись DefaultPassword).

LSA секреты находятся в ветке реестра по адресу HKEY_LOCAL_MACHINE/Security/Policy/Secrets. Каждый секрет имеет свой ключ. Родительский ключ HKEY_LOCAL_MACHINE/Security/Policy хранит информацию, которая нужна для доступа к секретам и их расшифровки.

LSA секреты, как и хеши SAM, можно слить не только из файлов реестра, но и из памяти процесса lsass.exe.

Если вы обладаете Административными правами, советую скопировать из реестра системные файлы SECURITY и SYSTEM  через reg.exe, regedit.exe или через службу теневого копирования, как это сделать описывалось в первой статье. Получить LSA секреты из файлов SECURITY и SYSTEM можно через утилиту Cain & Abel.

Также есть утилиты, которые получат  LSA секреты, внедрившись в процесс lsass.exe. Утилита gsecdump считается наиболее надежной, так как работает на всех архитектурах и версиях ОС Windows. Также для 32-битных ОС подойдет lsadump2. Извлеченные пароли будут в кодировке UTF-16, независимо от метода извлечения. Пароли, в отличии от хешей SAM, будут в нешифрованом виде. Детальное описание формата LSA секретов можете прочесть здесь:

  • moyix.blogspot.com/2008/02/decrypting-lsa-secrets.html

На следующем рисунке можно увидеть результат работы gsecdump в Windows 2003 с запущенными  под пользователями Системой управления базами данных IBM DB2 и PostgreSQL:

gsecdump.exe –l. Получение секретов LSA

Результаты команды gsecdump.exe –l

Чем опасно раскрытие LSA секретов

Если вы получили доступ к консоли с правами Local System, то проверьте, выполняется ли любой сервис под учетной записью пользователя ОС и извлеките пароль этой учетной записи из LSA секретов.

От имени какого пользователя запущен сервис можно узнать с помощью services.msc, отсортируйте по столбцу "Log On As" ( “Вход от имени”):

Сервисы, выполняемые под локальным пользователем Windows

Сервисы, запущенные под локальными пользователями

Также получить информацию о сервисах можно через утилиту sc.exe. Зачастую под пользователями работают такие корпоративные ПО, как Microsoft Exchange, Microsoft SQL Server. Опасны случаи, когда запускают сервисы под доменными пользователями или даже под администраторами домена. Это неправильно, и опасно, так как нарушитель может получить секреты LSA, незашифрованый пароль администратора, зайти на контроллер домена, и получить контроль над доменом.

Упомянутые в статье утилиты есть в сравнительной таблице.

Оригинал: securitylab.ru/analytics/425268.php

Понравилось? =) Поделись с друзьями:

Обсудить