Как узнать пароль пользователя в active directory
Перейти к содержимому

Как узнать пароль пользователя в active directory

Как узнать пароль администратора домена

Как узнать пароль администратора домена

Настройка серверов windows и linux

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

Получить пароль администратора домена

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

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

Так, например, механизм дайджест-аутентификации (HTTP Digest Authentication), используемый для поддержки SSO (Single Sign On), для своей работы требует знания вводимого пароля пользователя, а не только его хеша (о том, почему разработчиками это было сделано именно так, можно только догадываться). Пароли (именно пароли, а не их хэши) пользователей в зашифрованной форме хранятся в памяти ОС, а если быть более точным в процессе LSASS.EXE. Проблема в том, что шифрование паролей реализовано с помощью стандартных функций Win32 LsaProtectMemory и LsaUnprotectMemory, которые предназначены для шифрования/расшифровки некоторого участка памяти. Утилита французских разработчиков mimikatz позволяет получать зашифрованные данные из памяти и расшифровывать их с помощью функции LsaUnprotectMemory, позволяя вывести на консоль все учетные записи пользователей, авторизованных в системе, и их пароли (в открытом, уже расшифрованном виде!). Для эксплуатации уязвимости атакующий должен иметь возможность присоединить специальную библиотеку к процессу lsass.exe.

Скачать утилиту mimikatz можно тут: http://blog.gentilkiwi.com/mimikatz либо по прямой ссылке с яндекс диска пароль на архив pyatilistnik.org

Извлекаем пароли пользователей из lsass.exe через rdp или интеративную сессию

Запускаем утилиту на сервере. У вас будет два варианта один для x86 другой для x64.

Как узнать пароль администратора домена-01

Как узнать пароль администратора домена-01

Если получили ошибку ERROR kuhl_m_privilege_simple ; RtlAdjustPrivilege (20) c0000061, то нужно запустить от имени администратора. Если все ок то у вас появится консольное окно с утилитой.

Как узнать пароль администратора домена-02

Как узнать пароль администратора домена-02

Получить привилегии отладки. на что мы должны получить ответ, о том, что успешно включен режим отладки:Privilege ’20’ OK делается командой

privilege::debug

Как узнать пароль администратора домена-03

Как узнать пароль администратора домена-03

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

log logfile.txt

Как узнать пароль администратора домена-04

Как узнать пароль администратора домена-04

и далее команда для получения паролей

sekurlsa::logonpasswords

Там где null это значит что его просто нет.

Как узнать пароль администратора домена-05

Как узнать пароль администратора домена-05

Можно все экспортировать в файл с помощью команды

sekurlsa::logonpasswords /export

Как узнать пароль администратора домена-06

Как узнать пароль администратора домена-06

В итоге рядом с утилитой вы получите файл с паролями пользователей

Как узнать пароль администратора домена-07

Как узнать пароль администратора домена-07

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

Получение пароля пользователя из дампа памяти Windows

Далее вводим команду для монтирования minidump dmp

Get-Process lsass | Out-Minidump

Видим создался файл lsass_628.dmp это и есть наш minidump.

Как узнать пароль администратора домена-08

Как узнать пароль администратора домена-08

Как узнать пароль администратора домена-09

Как узнать пароль администратора домена-09

по умолчанию он сохраняется в каталоге %windir\system32%. Копируем его в папку с утилитой и выполняем следующие команды

sekurlsa::minidump lsass_628.dmp

И следующей командой получим список пользователей, работающих в системе и их пароли:

sekurlsa::logonPasswords /export

Как узнать пароль администратора домена-10

Как узнать пароль администратора домена-10

Все в итоге вы смогли узнать пароль администратора домена

Получение паролей из файлов виртуальных машины и файлов гибернации

Для этого понадобится пакет Debugging Tool for Windows (WinDbg), сам mimikatz и утилита преобразования .vmem в файл дампа памяти (для Hyper-V это может быть vm2dmp.exe или MoonSols Windows Memory toolkit для vmem файлов VMWare).

Например, в случае необходимости преобразовать файл подкачки vmem виртуальной машины VMWare в дамп, выполним команду:

bin2dmp.exe "winsrv2008r2.vmem" vmware.dmp

Полученный дамп загружаем в WinDbg (File -> Open Crash Dump), загружаем библиотеку mimikatz с именем mimilib.dll (версию выбрать в зависимости от разрядности системы):

.load mimilib.dll

Ищем в дампе процесс lsass.exe:

!process 0 0 lsass.exe

Как узнать пароль администратора домена-11

Как узнать пароль администратора домена-11

И наконец, набираем

.process /r /p fffffa800e0b3b30
!mimikatz

и получаем список пользователей Windows и их пароли в открытом виде:

Как узнать пароль администратора домена-12

Как узнать пароль администратора домена-12

Получение паролей пользователей Windows в открытом виде с помощью утилиты Mimikatz работает на следующих системах, в том числе запущенных на гипервизорах Hyper-V 2008/2012 и VMWare различных версий:

  • Windows Server 2008 / 2008 R2
  • Windows Server 2012/ R2
  • Windows 7
  • Windows 8

Как защититься от получения пароля через mimikatz?

В качестве временного решения можно предложить отключить поставщика безопасности wdigest через реестр. Для этого в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa найдите ключ Security Packages и удалить из списка пакетов строку wdigest.

Как узнать пароль администратора домена-13

Как узнать пароль администратора домена-13

Однако нужно понимать, что атакующему, при наличии соответствующих прав на реестр, не составит труда поменять вернуть настройки обратно.

Выводы. Еще раз напоминаем прописные истины:

  • Не стоит использовать одинаковые пароли для разных сервисов (особенно терминальных, находящихся во владении третьих лиц).
  • Задумайтесь о безопасности ваших паролей и данных, находящихся на виртуальных машинах в столь рекламируемых сейчас облаках, ведь вы не можете быть уверенными в том, у кого еще имеется доступ к гипервизорам и хранилищу, на котором расположены виртуальные машины.
  • Минимизируйте в своих системах количество учетных записей, обладающих правами локального администратора
  • Никогда не заходите с учетной записью администратора домена на сервера и компьютеры, доступные другим пользователям
Популярные Похожие записи:
  • Как удалить sIDHistory у объектов Active Directory
  • Как массово поменять пароль локального администратора в домене
  • Get-ADUser и примеры использованияGet-ADUser и примеры использования
  • Ошибка System Chassis 1 Chassis intro на ESXI хостеОшибка System Chassis 1 Chassis intro на ESXI хосте
  • Как узнать группу AD в Dynamics CRM по GUID
  • Настройка пароля на Digi AnywhereUSBНастройка пароля на Digi AnywhereUSB

Июл 24, 2019 18:10 Автор — Сёмин Иван

4 Responses to Как узнать пароль администратора домена

Иван, при попытке скачать Out-Minidump.ps1 антивирусы mcafee и windows defender блокируют download. Мне было бы очень интересно узнать пароль, если прочтете комментарий и сможете ответить, жду.
Михаил.

Иван Семин :
Пароль pyatilistnik.org, могу попробовать залить его на mail

Дык, как же я запущу от имени администратора, если именно этот пароль сам хочу получить этой утилитой?))

Иван Семин :
Имеется ввиду режим

Добавить комментарий

Поиск по сайту

Подписка на youtube канал

Выберите рубрику

Active directory, GPO, CA Android Apple ASUS, Sony VAIO CentOS Cisco, Mikrotik Debian, FreeBSD DNS Exchange, Power Shell HP/3Com Hyper-V IBM IIS и FTP, web и seo Juniper Lenovo, intel, EMC, Dell Microsoft Office Microsoft SQL server, Oracle Microsoft System Center NetApp Network, Телефония News Raid, LSI, Adaptec Supermicro Ubuntu Utilities Veeam Backup & Replication, Windows Server Backup Vmware, VirtualBox Windows 7 Windows 8/8.1 Windows 10, Windows 11 Windows 2008/2008 R2 Windows 2012/2012 R2 Windows Server 2016, Windows Server 2019, Windows Server 2022 WordPress, 1C Битрикс Безопасность, Kali СХД Сертификация перед сном

Подписка не Telegram

Подписка на телеграм канал pyatilistnikorg

Последние записи

  • Get-ADGroup: Управление группами Active Directory
  • Get-ADUser и примеры использования
  • Ошибка: There is a problem loading the Widget resources
  • Как запустить скрипт PowerShell на удаленном компьютере через SCCM
  • Служба 1С отображается абракадаброй

Как узнать, кто сбросил пароль пользователя в Active Directory

date

16.11.2022

user

itpro

directory

Active Directory, PowerShell

comments

Один комментарий

Разберемся, как в доменной среде Active Directory по журналам контроллеров домена определить, кто из администраторов сбросил пароль учетной записи определенного пользователя.

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

Default Domain Policy

  1. Откройте консоль управления групповыми политиками Group Policy Management (gpmc.msc) и отредактирует политику домена Default Domain Policy.
  2. Затем в консоли редактора групповых политик, перейдите в раздел Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Audit Policy

Примечание. Эту же политику можно включить и в разделе расширенных политик аудита (Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Configuration)

политика Audit User Account Management

  • После прохождения цикла обновления групповых политик на клиентах можно попробовать изменить пароль любого пользователя в AD.
  • После этого, откройте консоль просмотра событий на контроллере домена и перейдите в раздел Event Viewer -> Windows Logs -> Security. Щелкните ПКМ по журналу и выберите пункт Filter Current Log. фильтр журнала событий Filter Current Log
  • В параметрах фильтра укажите, что нужно вывести только события с кодом EventID 4724. EventID 4724 An attempt was made to reset an account
  • В списке событий останутся только события успешной смены пароля (An attempt was made to reset an account’s password.). При этом в расширенном представлении события можно увидеть имя учётной записи администратора, которая выполнила смену пароля (Subject:) и, собственно, учетную запись пользователя, чей пароль был сброшен (Target Account:). событие сброса пароля пользователя в журнале контроллера домена
  • Совет. В контексте получения полной информации о событиях смены пароля пользователя, в фильтр можно добавить следующие идентификаторы событий:

    Информацию о данном событии из журналов всех контроллеров домена Active Directory с помощью PowerShell командлетов Get-ADComputer и Get-WinEvent, можно получить таким образом:
    (Get-ADComputer -SearchBase ‘OU=Domain Controllers,DC=winitpro,DC=loc’ -Filter *).Name | foreach Get-WinEvent -ComputerName $_ -FilterHashtable @| Foreach $event = [xml]$_.ToXml()
    if($event)
    $Time = Get-Date $_.TimeCreated -UFormat «%Y-%m-%d %H:%M:%S»
    $AdmUser = $event.Event.EventData.Data[4].»#text»
    $User = $event.Event.EventData.Data[0].»#text»
    $dc = $event.Event.System.computer
    write-host “Admin ” $AdmUser “ reset password to ” $User “ on ” $dc “ “ $Time
    >
    >
    >

    PowerShell - сбор событий по всем контроллерам домена

    При необходимости эти данные можно записывать прямо из PowerShell во внешнюю mysql базу данных, через специальный коннектор MySQL .NET Connector по аналогии со сценарием, описанным в статье Узнаем кто удалил файл на файловом сервере.

    Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

    Как узнать пароль пользователя в active directory

    1. Указывайте версию Вашей ОС.
    2. Запрещается размещать запросы и ссылки на кряки, серийники и т.п., а также вопросы нарушения лицензии ПО и его взлома.
    3. Не разрешается давать советы из разряда «Поставь Linux».
    4. Переустановка ОС — крайнее и безотказное лекарство, которое знают все. В таких советах никто не нуждается.
    5. При публикации скриптов пользоваться тегами code. Тип подсветки кода выбирать строго в соответствии с языком публикуемого кода.
    6. Прежде чем задать вопрос, обязательно загляните в FAQ и следуйте написанным рекомендациям для устранения проблемы. И если не помогло, а поиск по разделу не дал результатов — только тогда задавайте вопрос на форуме.
    7. Вопросы, связанные с проблемами ПО, задавайте в разделе Программное обеспечение

    Модераторы: Akina
    ‘> Как узнать пароль юзера в AD? , В Win2000Srv SP4

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему

    Сообщ. #1 , 01.06.05, 13:04

    Senior Member
    Рейтинг (т): 9

    Ваще я работаю сисадмином, но есть у меня один нехороший пользователь, который всё время пароль меняет. А запретить смену я ему не могу (ну он как бы влиятельный очень ) и вот я хочу узнать его пароль. Всем остальным я сам назначил и они их не меняют! А этот!! Вощем весь отстой заключается вот в чём. У меня домен и как следствие AD, я вроде думаю ща запущу LCP 5.04 и всё типтоп, т.к. она работает c AD через pwdump2, но нифига. Понял что надо юзать коммандную строку от пользователя SYSTEM и уже через неё запускать LCP, достал GetAd2.exe но не тут то было. На простых тачках (Win2000 pro SP2) она пашет на ура, а на серваке нет! Может из-за того что там SP4? Вощем вот вопрос, как мне узнать пароль этого вредного юзера? Из инструментов имею lcp504, SAMInside, GetAd2. Но могу ещё скачать если чё понадобиться.

    Добавлено 01.06.05, 13:06
    Для модераторов: п2 правил раздела вроде бы не нарушал, т.к. сам не выкладываю никаких ссылок, и не прошу . Мне просто интересен сам способ.

    Сообщ. #2 , 01.06.05, 14:51

    Рейтинг (т): 117
    А нафига тебе его пароль?
    Если ты Админ Домена, то ты и так доступ к его компу имеешь.
    Сообщение отредактировано: Rust — 01.06.05, 14:53
    Сообщ. #3 , 01.06.05, 15:12
    чудо в перьях

    Только брутфорсом, иначе никак. Попробуй: NT Password Sweep, в описахе написано, что он создан для брутфорсинга PDC.

    Добавлено 01.06.05, 15:17
    Rust, неудобно работать на компе пользователя под своим логином — у него же свой профайл.

    Сообщ. #4 , 01.06.05, 19:18

    Senior Member
    Рейтинг (т): 9

    Rust, да просто иногда нужно зайти под ним.

    Цитата —= Eagle =— @ 01.06.05, 15:12
    неудобно работать на компе пользователя под своим логином — у него же свой профайл

    —= Eagle =—, спасиб, попробую

    Добавлено 01.06.05, 19:20
    Кстати проблему можно представить с другой стороны, мнеб получить LM и NT хэш и я б перебрал юзая SAMInside, только вот как вытащить хэш из AD?

    Извлекаем пароли пользователей из памяти Windows с помощью Mimikatz

    date

    18.05.2021

    user

    itpro

    directory

    Windows 10, Windows Server 2016, Безопасность

    comments

    комментария 33

    В этой статье, написанной в рамках серии статьей, посвященной обеспечению безопасности Windows-систем, мы познакомимся с достаточно простой методикой получения паролей пользователей Windows с помощью Open Source утилиты Mimikatz.

    Программа mimikatz позволяет извлечь из памяти Windows пароли в виде простого текста, хэши паролей, билеты kerberos из памяти и т.д. Также mimikatz позволяет выполнить атаки pass-the-hash, pass-the-ticket или генерировать Golden тикеты. Функционал mimikatz доступен также через Metasploit Framework.

    Скачать утилиту mimikatz можно c GitHub: https://github.com/gentilkiwi/mimikatz/releases/. Распакуйте архив mimikatz_trunk.zip в каталог C:\Tools\mimikatz. В этом каталоге появятся две версии mimikatz – для x64 и x86. Используйте версию для своей битности Windows.

    В этой статье мы покажем, как получить пароли пользователей в Windows Server 2016 или Windows с помощью mimikatz.

    Дисклаймер. Информация и технологии, описанные в данной статье, стоит использовать только в информационно-ознакомительных целях, и ни в коем случае не применять для получения доступа к учетным записям, информации и системам третьих лиц.

    Извлекаем хэши паролей пользователей из памяти Windows

    Попробуем извлечь хэши паролей всех залогиненых пользователей из памяти Windows (процесса lsass.exe — Local Security Authority Subsystem Service) на RDS сервере с Windows Server 2016.

    1. Запустите Mimikatz.exe с правами администратора;
    2. В контексте утилиты выполните команды: mimikatz # privilege::debug
      Данная команда предоставит текущей учетной записи права отладки процессов (SeDebugPrivilege).
    3. mimikatz # sekurlsa::logonPasswords full
      Данная команда вернет довольно большой список. Найдите в нем учетные записи пользователей.
    4. В моем случае на сервере кроме моей учетной записи есть активные сессии двух пользователей: anovach и administrator.

    anovach (NTLM: 79acff649b7a3076b1cb6a50b8758ca8) Administrator (NTLM: e19ccf75ee54e06b06a5907af13cef42)

    получение NTLM хэша пароля пользователя Windows из LSASS

    Можно использовать mimikatz не в интерактивном, а в командном режиме. Чтобы автоматически получить хэши паролей пользователей и экспортировать в текстовый файл, выполните команды:
    mimikatz.exe «privilege::debug» «sekurlsa::logonpasswords» «exit» >> c:\tools\mimikatz\output.txt

    Теперь можно воспользоваться любым офлайн (есть утилита hashcat в Kali Linux) или онлайн сервисом по расшифровке NTLM хэшей. Я воспользуюсь сервисом https://crackstation.net/

    Как вы видите, сервис быстро нашел значения для этих NTLM хэшей. Т.е. мы получили пароли пользователей в открытом виде (представьте, что один из них это администратор домена….).

    расшифровка ntlm хэшей

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

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

    Примечание. В июне 2017 года многие крупные компании России, Украины и других стран были заражены вирусом-шифровальщиком not-petya, которые для сбора паролей пользователей и администраторов домена использовал в том числе интегрированный модуль mimikatz.

    Получение хешей паролей пользователей из дампа памяти Windows

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

    Создать дамп памяти процесса в Windows довольно просто. Запустите Task Manager, найдите процесс lsass.exe, щелкните по нему правой клавишей и выберите Create dump file.

    дамп процесса lsass.exe

    Windows сохраните дам памяти в указанную папку.

    Вам осталось только разобрать дамп с помощью mimikatz (можно на другом компьютере). Загрузите дамп памяти в mimikatz:

    Mimikatz “sekurlsa::minidump C:\Users\anovach\AppData\Local\Temp\lsass.DMP”

    Вывести информацию о пользователях, и хэшах их паролей из сохраненного дампа памяти:

    получение ntlm хэшей из дампа памяти

    Вы можете получить дамп памяти с удаленного компьютера с помощью psexec, или через WinRM (при наличии прав администратора), и затем из него пароли пользователей.

    Также для получения дампа можно использовать утилиту procdump от Sysinterals.

    procdump -ma lsass.exe lsass.dmp

    Дамп памяти для процесса LSASS можно получить с помощью PowerShell функции Out-Minidump.ps1 . Импортируйте функцию Out-Minidump в PoSh и создайте дамп памяти процесса LSASS:

    Import-Module .\OutMiniDump.ps1
    Get-Process lsass | Out-Minidump

    Получение паролей пользователей из файлов виртуальных машины и файлов гибернации

    Также возможно извлечь пароли пользователей из файлов дампов памяти, файлов гибернации системы (hiberfil.sys) и. vmem файлов виртуальных машин (файлы подкачки виртуальных машин и их снапшоты).

    Для этого понадобится пакет Debugging Tool for Windows (WinDbg), сам mimikatz и утилита преобразования .vmem в файл дампа памяти (для Hyper-V это может быть vm2dmp.exe или MoonSols Windows Memory toolkit для vmem файлов VMWare).

    Например, чтобы преобразовать файл подкачки vmem виртуальной машины VMWare в дамп, выполните команду:

    bin2dmp.exe «winsrv2008r2.vmem» vmware.dmp

    Полученный дамп откройте в WinDbg (File -> Open Crash Dump). Загрузите библиотеку mimikatz с именем mimilib.dll (используйте версию библиотеки в зависимости от разрядности Windows):

    Найдите в дампе процесс lsass.exe:

    !process 0 0 lsass.exe

    Поиск в дампе памяти процесса lsass

    И наконец, выполните:

    .process /r /p fffffa800e0b3b30
    !mimikatz

    В результате вы получите список пользователей Windows, и NTLM хэши их паролей, или даже пароли в открытом виде.

    Получаем пароль пользователя Windows

    Как узнать пароли пользователей Windows в открытом виде через протокол WDigest?

    В старых версиях Windows по умолчанию разрешалась дайджест-аутентификации (HTTP Digest Authentication) с помощью протокола WDigest. Основной недостаток этого протокола – для корректной работы он использует пароль пользователя в открытом виде, а не виде его хэша. Mimikatz позволяет извлечь эти пароли из памяти процесса LSASS.EXE.

    Протокол WDigest по-умолчанию отключен во всех новых версиях Windows, в том числе Windows 10 и Windows Server 2016. Но не удален окончательно. Если у вас есть права администратора в Windows, вы можете включить протокол WDiget, дождаться входа пользователей и получить их пароли.

    Включите поддержку Wdigest:

    reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1

    Дождитесь входа пользователей (в Windows 10 нужно пользователю нужно перезайти, в Windows Server 2016 достаточно разблокировать сессию после блокировки экрана) и получите их пароли через mimikatz:

    Как вы видите, в секции wdigest содержится пароль пользователя в открытом виде:

    получение пароля пользователя в открытом виде

    Извлекаем пароли локальных пользователей Windows из SAM

    С помощью mimikatz вы можете извлечь хэши паролей локальных пользователей Windows из SAM так:

    Также можно извлечь NTLM хэши SAM из реестра.

    экспорт реестра

    1. Экспортируйте содержимое веток реестра SYSTEM и SAM в файлы: reg save hklm\sam c:\tmp\sam.hiv
      reg save hklm\security c:\tmp\sec.hiv
    2. Затем с помощью Mimikatz извлеките хэши паролей: privilege::debug
      token::elevate
      lsadump::sam c:\tmp\sam.hiv c:\tmp\sec.hiv

    извлечение ntlm хэшей из реестра

    Использование Mimikatz в pass-the-hash атаках

    Если у пользователя используется достаточно сложный пароль, и получить его быстро не удается, можно использовать Mimikatz для атаки pass-the-hash (повторное использование хэша). В этом случае хэш может использовать для запуска процессов от имени пользователя. Например, получив NTLM хэш пароля пользователя, следующая команда запустит командную строку от имени привилегированного аккаунта:

    privilege::debug
    sekurlsa::pth /user:Administrator /domain:srv01 /ntlm:e19ccf75ee54e06b06a5907af13cef42 /run:powershell.exe

    использование mimikatz для запуска команд по известному хэшу

    Также для использования NTLM хэша для выполнения команд на удаленных компьютерах можно использовать утилиту Invoke-TheHash. Позволяет также

    Просмотр сохраненных паролей в Windows

    В Windows вы можете сохранять пароли в Windows Credential Manager (это могут быть пароли для доступа к удаленным компьютерам, сайтам, пароли для RDP подключений в формате TERMSRV/server1). Mimikatz может извлечь эти пароли из Credential Manager и показать их вам:

    Как вы видите, сохраненый пароль показан в секции credman.

    получаем сохраненные пароли Windows

    Пароли для автоматического входа в Windows хранятся в реестре в открытом виде. Также просто извлечь сохраненные Wi-Fi пароли.

    Дампим пароли при входе в Windows

    Еще один интересный способ дампа паролей в Windows заключается в использовании дополнительно SSP провайдера (Security Support Provider).

    поддельный ssp провайдер mimilib.dll

    1. Скопируйте файл библиотеки Mimikatz mimilib.dll в папку C:\Windows\System32\.
    2. Зарегистрируйте дополнительного провайдер командой: reg add «hklm\system\currentcontrolset\control\lsa» /v «Security Packages» /d «kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib» /t REG_MULTI_SZ
    3. При входе каждого пользователя в Windows его пароль будет записываться в файл kiwissp.log. Можно вывести все пароли через PowerShell:
      Get-Content C:\Windows\System32\kiwissp.log

    пароли всех пользователей зписываются при входе в Windows в тектовый файл

    Как защитить Windows от извлечения паролей из памяти?

    В Windows 8.1 и Server 2012 R2 (и выше) возможности по извлечению паролей через LSASS несколько ограничены. Так, по-умолчанию в этих системах в памяти не хранятся LM хэш и пароли в открытом виде. Этот же функционал бэкпортирован и на более ранние версии Windows (7/8/2008R2/2012), в которых нужно установить специальное обновление KB2871997 (обновление дает и другие возможности усилить безопасность системы) и отключить WDigest в реестре (в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest установить параметр DWORD реестра UseLogonCredential равным 0).

    Если после установки обновления и ключа UseLogonCredential попробовать извлечь пароли из памяти, вы увидите, что mimikatz с помощью команды creds_wdigest не сможет извлечь пароли и хэши.

    mimikatz creds_wdigest не работает в Windows 8.1 / 2012 R2 и выше

    Выше мы показывали, как при наличии прав администратора можно легко установить этот ключ в уязвимое значение. После этого вы опять сможете получить доступ к паролям в памяти LSA.

    В инструментарии mimikatz есть и другие инструменты получения паролей и их хэшей из памяти (WDigest, LM-hash, NTLM-hash, модуль для захвата билетов Kerberos), поэтому в качестве рекомендаций рекомендуется реализовать следующие меры:

    • Запретить хранить пароли с использование обратимого шифрования (Reversible Encryption);
    • Отключите Wdiget;
    • Отключить NTLM
    • Запретить использование сохранённых паролей в Credential Manager
    • Запретить кэшировать учетные данные доменных пользователей (ключ CachedLogonsCount и политика Interactive logon: Number of previous logons to cache)
    • Если функциональный уровень домена не ниже Windows Server 2012 R2, можно добавить учетные записи администраторов в специальную группу Protected Users ote. В этом случае NTLM хэши для таких пользователей создаваться не будут.
    • Включите защиту LSA процесса (данный параметр разрешит доступ к LSASS памяти только процессам, подписанным Microsoft): reg add «HKLM\SYSTEM\CurrentControlSet\Control\Lsa» /v RunAsPPL /t REG_DWORD /d 00000001 /f . Можно распространить этот параметр реестра на компьютеры через GPO.
    • Используйте Credential Guard для защиты содержимого LSA процесса;
    • Запретите получение debug полномочий даже для администраторов (GPO: Windows Settings -> Security Settings -> Local Policies -> User Rights Assignment -> Debug programs). Впрочем, это легко обходится при наличии прав SYSTEM или так.

    Совет. Подробная статья о способах защите памяти Windows систем от извлечения паролей и хэшей — Методы защиты от mimikatz в домене Windows.

    Выводы. Еще раз напоминаем прописные истины:

    • Не стоит использовать одинаковые пароли для разных сервисов (особенно RDP/RDS хостов, находящихся во владении третьих лиц);
    • Задумайтесь о безопасности ваших паролей и данных, находящихся на виртуальных машинах в облаках, ведь вы не можете быть уверенными в том, у кого еще имеется доступ к гипервизорам и хранилищу, на котором расположены файлы виртуальных машины;
    • Минимизируйте в своих системах количество учетных записей, обладающих правами локального администратора (см. гайд об организации защиты учетных записей администраторов в среде Windows);
    • Никогда не заходите с учетной записью администратора домена на сервера и компьютеры, доступные другим пользователям.

    Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *