Ефективне отримання хешу паролів в windows

Історія паролів

Якщо в налаштуваннях пральний політики включений параметр "Вимагати неповторяемость паролів" ( "Enforce password history"), то Windows зберігає певну кількість старих паролів, перш ніж дозволити користувачеві використовувати старі паролі знову. На наступному скріншоті показано, як саме включити ведення історії паролів:

Ефективне отримання хешу паролів в windows

Local Security Policy (secpol.msc) / Account Policies / Password Policy / Enforce password history

За замовчуванням на звичайних робочих станціях параметр "Вимагати неповторяемость паролів" встановлено в 0, а на контролерах домену - в 24. Завдяки таким установкам, існує ймовірність, що при добуванні хешів з ntds.dit. Ви отримаєте хеші старих паролів. Надалі знання старих хешировать паролів може допомогти вам знайти закономірності у виборі паролів цільовими користувачами.

Крім того, знання історії паролів може полегшити вам життя на подальших етапах проведення атаки. Тому ніколи не нехтуйте інформацією, отриманою з пральний історії.

Поряд з уже відомими утилітами (Cain Abel. PWDumpX) парольний історію можна злити за допомогою утиліти pwhist від Toolcrypt.

LSA секрети

LSA секрети - це спеціальна область реєстру, в якій Windows зберігає важливу інформацію. В секрети входять:

  • паролі облікових записів служб, що вимагають запуску в контексті користувачів операційної системи (наприклад, облікові записи Local System, Network Service і Local Service).
  • паролі входу в систему при включеному автоматичному вході (auto-logon); в загальному випадку: пароль користувача, який перебуває на консоль (запис DefaultPassword).

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

Секрети LSA, як і хеши SAM, можна отримати або з файлів реєстру, або з пам'яті процесу lsass.exe.

Якщо ви володієте правами адміністратора, а цільова система задіяна на виробництві, то я раджу вибрати безпечний шлях: скопіювати системні файли SYSTEM і SECURITY з реєстру за допомогою reg.exe / regedit.exe або за допомогою служби тіньового копіювання томів, як описано в першій статті. Витягти секрети LSA з отриманих файлів SYSTEM і SECURITY можна утилітою Cain Abel.

Також існує безліч утиліт, які зіллють секрети LSA, втілившись у процес lsass.exe. З усіх таких утиліт gsecdump вважається найнадійнішим, оскільки працює на всіх версіях і архітектурі Windows. Для 32-бітних систем рекомендую також lsadump2. Незважаючи на мої очікування, двом утилітам від NirSoft (LSASecretsDump і LSASecretsView) ні на одній архітектурі не вдалося отримати паролі облікових записів служб. В незалежності від того, який саме метод ви використовували, все витягнуті паролі будуть в кодуванні UTF-16. Тобто паролі, на відміну від хешів SAM, будуть незашифрованому. Детальний опис формату секретів LSA, зроблене Бренданом Доланом-гавітом (Brandon Dolan-Gavitt) ви можете знайти тут.

Ефективне отримання хешу паролів в windows

Результати роботи gsecdump.exe -l

До яких погроз веде розкриття секретів LSA

Тепер уявіть, що ви скомпрометували сервер в домені Windows і отримали доступ до командного рядка з правами Local System. Якщо ви хочете розширити свій контроль на весь периметр мережі, то перевірте, чи виконується будь-якої сервіс в контексті користувача операційної системи, і якщо так, то витягніть пароль відповідної облікового запису із секретів LSA.

Дізнатися, від якого користувача запущений сервіс можна, виконавши services.msc в Start / Run і відсортувавши записи по полю "Вхід від імені" (Log On As):

Сервіси, що виконуються в контексті локальних користувачів Windows

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

Описані в цій статті утиліти я теж додав у таблицю. Буду радий вашим відгуків і пропозицій!

Схожі статті