Эффективное получение хеша паролей в Windows. Часть 2
В предыдущей статье из серии, я в общих словах объяснил, что такое Менеджер безопасности учетных записей (SAM) Windows, и как, получив физический или удаленный доступ к системе достать из SAM хешированные пароли локальных пользователей.
Автор: Bernardo Damele A. G
Подводим итоги по менеджеру учетных записей безопасности
В предыдущей статье из серии, я в общих словах объяснил, что такое Менеджер безопасности учетных записей (SAM) Windows, и как, получив физический или удаленный доступ к системе достать из SAM хешированные пароли локальных пользователей. При удаленном доступе существует три возможных метода получения хешей: метод, основанный на унаследованных возможностях Windows, на теневом копировании томов, и на внедрении в память процесса. Наконец, я сделал сводную электронную таблицу с описанием наиболее часто используемых утилит для дампа хешей из памяти процесса. О некоторых утилитах из этой таблице речь пойдет ниже. И опять же я хочу повторить следующую мысль: если есть возможность перемещать файлы между вашей машиной и целевой системой, то всегда сначала копируйте файлы SAM и SYSTEM с целевой системы, а затем уже доставайте хеши паролей в оффлайн-режиме. Тем не менее, простое копирование файлов не гарантирует, что вы получите хеши всех локальных учетных записей. Если все хеши вам получить так и не удалось, то придется слить их из памяти и объединить результаты. Странно, но с подобными случаями я сталкивался не раз, и, хочу подчеркнуть, что речь идет об автономных (не входящих в домен) рабочих станциях Windows.
Рекомендуемые инструменты
Лично я первое место отдаю утилите pwdump7. Утилита работает на всех версиях Windows (как 32-х, так и 64-разрядных), начиная с Windows 2000 и выше. Тем не менее, pwdump7 не может сливать хешированные пароли из памяти, и поэтому некоторые хеши вы можете так и не получить. Для того чтобы ничего не упустить, я всегда использую pwdump7 совместно с gsecdump. Когда на целевой системе мне удалось запустить Metasploit Meterpreter, я пользуюсь пост-эксплойтом smart_hashdump Карлоса Переза (Carlos Perez). Если же smart_hashdump не срабатывает, то я прибегаю к его предыдущей версии – пост-эксплойту hashdump.
Active Directory
Определение из Википедии: Active Directory выступает в роли централизованного хранилища, служащего для управления сетью и безопасностью. В функции службы каталогов входит аутентификация и авторизация всех пользователей внутри домена Windows, создание и выполнение политик безопасности […] Когда пользователь регистрируется в системе на компьютере, входящем в домен, то именно Active Directory проверяет пароль пользователя […] Информация из определения пригодится вам, после компрометации какой-либо системы из домена Windows. Для того чтобы быстро взять под контроль весь домен, вам нужно получить доступ к корневому контроллеру домена. Если же вы находитесь в домене-потомке, то ваша цель – получить доступ к контроллеру корневого домена леса с правами Администратора предприятия. В сети существует множество ресурсов, посвященных тому, как повысить свои права в домене, и поэтому в настоящей статье этой темы мы касаться не будем. В блоге pentestmonkey.net приведена вся необходимая информация по вопросу повышения прав. Также существует вероятность, что администратор использует одни и тот же пароль локального администратора на всех машинах домена. В подобном случае, вам достаточно с помощью keimpx узнать пароль всего на одной машине, и контроллер у вас в руках! Неважно, каким именно способом вы получили доступ к контроллеру домена (в идеале, подключились к корневому контроллеру домена, так как именно на нем в первую очередь отражаются изменения учетных записей пользователей), самое главное: запустить на контроллере командную строку с правами администратора (локального или доменного).
Файл базы данных NTDS.DIT
Наша цель теперь: получить хешированные пароли доменных пользователей. Пароли, как и практически вся другая информация Active Directory (пользовательские объекты, группы, информация о принадлежности к группам и.т.д.) хранится в бинарном файле %SystemRoot%\ntds\NTDS.DIT. Файл NTDS.DIT заблокирован системой. Для получения этого файла вместе с файлом SYSTEM воспользуйтесь службой теневого копирования томов, как описывалось в предыдущей статье. Как вариант, используйте функцию создания снимка утилитой ntdsutil, впервые такая функция была представлена в Windows Server 2008. Утилита сделает мгновенный снимок базы данных Active Directory, что позволит вам скопировать ntds.dit и файл SYSTEM. О том, как сделать снимок, написано в статье Microsoft TechNet.
Извлечение хешей из NTDS.DIT
- извлечь необходимые таблицы из ntds.dit: esedbdumphash
- получить хеши и дополнительные сведения об учетных записях пользователей: dsdump.py, dsdumphistory.py, dsuserinfo.py.
Скачайте и скомпилируйте пакет:
$ wget http://csababarta.com/downloads/ntds_dump_hash.zip
$ unzip ntds_dump_hash.zip
$ cd libesedb
$ ./configure && make
Воспользуйтесь esedbdumphash, чтобы извлечь таблицу datatable из ntds.dit:
$ cd esedbtools
$ ./esedbdumphash -v -t /tmp/output
$ ls -1 /tmp/output.export/
datatable
Используйте dsdump.py, чтобы получить хеши из таблицы datatable с помощью bootkey (SYSKEY) из куста SYSTEM:
$ cd ../../creddump/
$ chmod +x *.py
$ ./dsuserinfo.py /tmp/output.export/datatable
$ ./dsdump.py /tmp/output.export/datatable —include-locked
—include-disabled > domain_hashes.txt
Как и в случае с автономными рабочими станциями, вы точно так же, используя те же методы, можете слить пароли доменных пользователей, внедрившись в память процесса. Но будьте осторожны при манипуляциях с процессом LSASS на контроллере домена: в худшем случае вам придется перезагружать критически важный сервер.
Информацию обо всех описанных в этой статье утилитах я добавил в электронную таблицу.
Изменения на 4 января 2012г.
В декабре 2011 года, Ксаба Барта изучил структуру NTDS.DIT более подробно, и в результате разработал новый фреймворк под названием NTDSXtract. Фреймворк совместно с утилитой libesedb позволяет извлечь информацию из таблиц базы данных ntds.dit. NTDSXtract и libesedb корректно работают на 64х-разрядных системах.
Скачайте и установите последнюю версию libesedb.
Извлеките таблицы из ntds.dit:
$ esedbexport -l /tmp/esedbexport.log -t /tmp/ntds.dit
esedbexport 20111210
Opening file.
Exporting table 1 (MSysObjects) out of 12.
Exporting table 2 (MSysObjectsShadow) out of 12.
Exporting table 3 (MSysUnicodeFixupVer2) out of 12.
Exporting table 4 (datatable) out of 12.
Exporting table 5 (hiddentable) out of 12.
Exporting table 6 (link_table) out of 12.
Exporting table 7 (sdpropcounttable) out of 12.
Exporting table 8 (sdproptable) out of 12.
Exporting table 9 (sd_table) out of 12.
Exporting table 10 (MSysDefrag2) out of 12.
Exporting table 11 (quota_table) out of 12.
Exporting table 12 (quota_rebuild_progress_table) out of 12.
Export completed.
$ ls -1 /tmp/ntds.dit.export/
datatable.3
hiddentable.4
link_table.5
[. ]
С помощью NTDSXtract извлеките из таблицы datatable хешированные пароли и историю паролей:
~/NTDSXtract 1.0$ python dsusers.py /tmp/ntds.dit.export/datatable.3
/tmp/ntds.dit.export/link_table.5 —passwordhashes —
passwordhistory —certificates —supplcreds
Используйте этот небольшой скрипт, чтобы преобразовать результаты работы dsusers.py к более привычному виду, подобному тому, который вы увидите после работы pwdump:
$ python ntdstopwdump.py /tmp/ntds.dit.output
Administrator:500:NO
PASSWORD*********************:09b1708f0ea4832b6d87b0ce07d7764b.
Guest:501:NO PASSWORD*********************:NO
PASSWORD*********************.
[. ]
Эффективное получение хеша паролей в Windows. Часть 3.

В предыдущих двух статьях (1, 2) из серии, я рассказывал, как получить хеши паролей локальных пользователей (из SAM) и доменных пользователей (из файла NTDS.DIT на контроллере домена).Если в настройках парольной политики включен параметр “Требовать неповторяемость паролей” (“Enforce password history”), то 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 содержит информацию, необходимую для доступа и расшифровки секретов.
Cекреты 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) вы можете найти здесь.
На следующем скриншоте показаны результаты работы gsecdump на Windows Server 2003 с запущенными в контексте пользователя СУБД IBM DB2 и PostgreSQL:

Результаты работы 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, получить пароль администратора в незашифрованном виде, зайти на корневой контроллер домена, и, как следствие, получить контроль над всем доменом.
Описанные в этой статье утилиты я тоже добавил в таблицу. Буду рад вашим отзывам и предложениям!
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
PowerShell: системное администрирование и программирование
Всё о PowerShell в Windows и на Linux. Системное администрирование Windows
Настройка политики паролей домена в Active Directory
Чтобы обеспечить высокий уровень безопасности учётных записей пользователей в домене Active Directory, администратор должен настроить и реализовать политику паролей домена. Политика паролей должна обеспечивать достаточную сложность, длину пароля и частоту смены паролей учётных записей пользователей и служб. Таким образом, вы можете затруднить злоумышленнику возможность перебора или перехвата паролей пользователей при их отправке по сети.
Суть политики паролей домена заключается в том, что устанавливаются правила на минимальную длину пароля, на обязательное наличие в нём определённого количества букв разного регистра, цифр, специальных символов. Данные правила распространяются как на администратора домена, так и на всех пользователей домена.
Если компьютер подключён к домену, то политика паролей также распространяется и на локальных пользователей, но только при смене пароля. То есть если локальный пользователь не имел пароля до подключения к домену, либо имел пароль, неудовлетворяющий правилам политики, то такой пользователь не обязан устанавливать или менять пароль.
Политика паролей в политике домена по умолчанию (Default Domain Policy)
По умолчанию для установки общих требований к паролям пользователей в домене AD используются параметры групповой политики (GPO). Политика паролей учётных записей пользователей домена настраивается в Default Domain Policy (политике домена по умолчанию). Эта политика связана с корнем домена и должна применяться к контроллеру домена с ролью эмулятора PDC.
1. Чтобы настроить политику паролей учётной записи AD, откройте консоль Управления групповой политикой (gpmc.msc);
2. Разверните свой домен и найдите объект групповой политики с именем Default Domain Policy. Щёлкните его правой кнопкой мыши и выберите «Изменить»;
3. Политики паролей находятся в следующем разделе GPO: Computer configuration→ Policies→ Windows Settings → Security Settings → Account Policies → Password Policy (в русскоязычной версии это соответственно Конфигурация компьютера → Политики → Конфигурация Windows → Параметры безопасности → Политики учетных записей → Политика паролей);
4. Дважды щёлкните параметр политики, чтобы изменить его. Чтобы включить определённый параметр политики, установите флажок Define this policy settings («Определить следующий параметр политики») и укажите необходимое значение (на скриншоте ниже я установил минимальную длину пароля 8 символов). Сохраните изменения;
Новые параметры политики паролей будут применены ко всем компьютерам домена в фоновом режиме через некоторое время (90 минут), во время загрузки компьютера, или вы можете применить политику немедленно, запустив команду
gpupdate /force
Вы можете изменить параметры политики паролей из консоли управления GPO или с помощью командлета PowerShell Set-ADDefaultDomainPasswordPolicy:
Set-ADDefaultDomainPasswordPolicy -Identity ds.hackware.ru -MinPasswordLength 10 -LockoutThreshold 3
Основные параметры политики паролей в Windows
Рассмотрим все доступные настройки паролей Windows. В GPO есть шесть настроек пароля:
- Enforce password history (Вести журнал паролей) — определяет количество запоминаемых паролей, хранимых с целью недопущения их повторного использования.
Однако администратор домена или пользователь, которому были делегированы разрешения на сброс пароля в AD, могут вручную установить старый пароль для учётной записи; - Maximum password age (Максимальный срок действия пароля) — устанавливает срок действия пароля в днях. По истечении срока действия пароля Windows попросит пользователя сменить пароль. Эта настройка обеспечивает регулярность смены пароля пользователями. Не зависимо от данной политики, в Параметрах учётной записи пользователя можно включить опцию «Срок действия пароля не ограничен», эта опция будет иметь приоритет;
Вы можете узнать, когда истекает срок действия пароля конкретного пользователя, с помощью PowerShell:
Get-ADUser -Identity MiAl -Properties msDS-UserPasswordExpiryTimeComputed | Select-Object name,samaccountname,@>
Либо вывести информацию о дате истечения паролей сразу для всех пользователей:
Get-ADUser -Filter * -Properties "msDS-UserPasswordExpiryTimeComputed" | Select-Object name,samaccountname,@>
Если поле является пустым, значит срок действия пароля пользователя не ограничен.
- Minimum password length (Минимальная длина пароля) – рекомендуется, чтобы пароли содержали не менее 8 символов (если вы укажете здесь 0, то пароль станет необязательным);
- Minimum password age (Минимальный срок действия пароля) – устанавливает, как часто пользователи могут менять свои пароли. Этот параметр не позволит пользователю менять пароль слишком часто, чтобы вернуться к старому паролю, который ему нравится, удалив его из истории паролей после того, как пароль был изменён несколько раз подряд. Как правило, здесь стоит выставить 1 день, чтобы пользователи могли сами сменить пароль в случае его взлома (иначе его менять придётся администратору);
- Password must meet complexity requirements (Пароль должен отвечать требованиям сложности) — если эта политика включена, пользователь не может использовать имя учётной записи в пароле (не более 2-х символов подряд из username (имени пользователя) или Firstname (имени)), также в пароле необходимо использовать 3 типа символов: цифры (0–9), прописные буквы, строчные буквы и специальные символы ($, #,% и так далее). Также, чтобы предотвратить использование слабых паролей (из словаря паролей), рекомендуется регулярно проверять пароли пользователей в домене AD;
- Store passwords using reversible encryption (Хранить пароли, используя обратимое шифрование) – пароли пользователей хранятся в зашифрованном виде в базе данных AD, но в некоторых случаях вам необходимо предоставить доступ к паролям пользователей для некоторых приложений. Если этот параметр политики включён, пароли менее защищены (почти обычный текст). Это небезопасно (злоумышленник может получить доступ к базе данных паролей, если контроллер домена скомпрометирован; контроллеры домена только для чтения (RODC) могут использоваться в качестве одной из мер защиты).
Если пользователь попытается изменить пароль, который не соответствует политике паролей в домене, появится сообщение об ошибке:
Unable to update the password. The value provided for the new password does not meet the length, complexity, or history requirements of the domain.
В русскоязычной версии сообщение звучит так:
Введённый пароль не отвечает требованиям политики паролей. Укажите более длинный или сложный пароль.
Кроме того, в разделе GPO Account Lockout Password («Политика блокировки учётной записи») должны быть настроены следующие параметры пароля:
- Account Lockout Threshold (Пороговое значение блокировки) – количество неудачных попыток входа в систему (с неправильным паролем), которое может быть выполнено пользователем до блокировки его учётной записи;
- Account Lockout Duration (Продолжительность блокировки учётной записи) — как долго будет заблокирована учётная запись, если пользователь несколько раз ввёл неверный пароль;
- Reset account lockout counter after (Время до сброса счётчика блокировки) — количество минут, по истечении которых счётчик порога блокировки учётной записи будет сброшен.
Если конкретная учётная запись домена блокируется слишком часто, вы можете определить источник блокировки учётной записи с помощью этого метода.
Параметры политик паролей по умолчанию в домене AD перечислены в таблице ниже:
| Политика | Значение по умолчанию |
|---|---|
| Обеспечить сохранение истории паролей | 24 пароля |
| Максимальный возраст пароля | 42 дня |
| Минимальный срок действия пароля | 1 день |
| Минимальная длина пароля | 7 |
| Пароль должен соответствовать требованиям сложности | Включено |
| Хранить пароли с использованием обратимого шифрования | Отключено |
| Продолжительность блокировки учётной записи | Не задана |
| Порог блокировки учётной записи | 0 |
| Сбросить счётчик блокировки учётной записи после | Не установлено |
В Security Compliance Toolkit (наборе средств обеспечения соответствия требованиям безопасности) Microsoft рекомендует использовать следующие параметры политики паролей:
- Использовать историю паролей: 24
- Максимальный срок действия пароля: не установлен
- Минимальный возраст пароля: не установлен
- Минимальная длина пароля: 14
- Пароль должен соответствовать сложности: Включено
- Хранить пароли с использованием обратимого шифрования: Отключено
В недавней рекомендации Security Baseline 1903 Microsoft указывает, что нет необходимости включать политику истечения срока действия пароля для пользователей. Истечение срока действия пароля не увеличивает безопасность, а только создаёт ненужные проблемы (ссылка).
Как проверить текущую политику паролей в домене AD
Вы можете увидеть текущие параметры политики паролей в Default Domain Policy в консоли gpmc.msc (на вкладке Settings «Параметры»).
Вы также можете отобразить информацию о политике паролей с помощью PowerShell (на компьютере должен быть установлен Модуль Active Directory для PowerShell):
Get-ADDefaultDomainPasswordPolicy
ComplexityEnabled : True DistinguishedName : DC=ds,DC=hackware,DC=ru LockoutDuration : 00:30:00 LockoutObservationWindow : 00:30:00 LockoutThreshold : 0 MaxPasswordAge : 42.00:00:00 MinPasswordAge : 1.00:00:00 MinPasswordLength : 7 objectClass : objectGuid : 15bedbc4-3236-46fb-b01b-5bf1f0a49ba7 PasswordHistoryCount : 24 ReversibleEncryptionEnabled : False
Кроме того, вы можете проверить текущие параметры политики паролей AD на любом компьютере домена с помощью команды GPResult.
Несколько политик паролей в домене Active Directory
Контроллер домена, владелец FSMO роли эмулятора PDC, отвечает за управление политикой паролей домена. Для редактирования настроек Default Domain Policy требуются права администратора домена.
Изначально в домене могла быть только одна политика паролей, которая применяется к корню домена и затрагивает всех без исключения пользователей (есть нюансы, но о них мы поговорим позже). Даже если вы создадите новый объект групповой политики с другими настройками пароля и примените его к конкретному подразделению с параметрами принудительного и блочного наследования, он не будет применяться к пользователям.
Политика паролей домена влияет только на объекты AD типа User (пользователь). Пароли объектов Computer, обеспечивающие доверительные отношения домена, имеют собственные параметры GPO.
До Active Directory в Windows Server 2008 можно было настроить только одну политику паролей для каждого домена. В более новых версиях AD вы можете создать несколько политик паролей для разных пользователей или групп с помощью Fine-Grained Password Policies (FGPP) (детальных политик паролей). Детализированные политики паролей позволяют создавать и применять различные объекты параметров пароля (PSO). Например, вы можете создать PSO с увеличенной длиной или сложностью пароля для учётных записей администратора домена или сделать пароли некоторых учётных записей более простыми или даже полностью отключить их.
Как узнать пароль администратора домена


Всем привет ранее я рассказывал как можно взломать контроллер домена и произвести сброс пароля администратора домена, но там нужно иметь физический доступ серверу либо к хосту виртуализации, да и все это будет сразу обнаружено, так как придется контроллер домена выключать. Все можно сделать гораздо более изящнее и без шумно. В результате того метода, что я вам расскажу вы сможете узнать пароль пользователя, а в идеале и системного администратора, главное правильно это организовать. Вся информация предоставляется исключительно в ознакомительных целях, чтобы администраторы безопасности имели представление, как защититься от такой проблемы.
Получить пароль администратора домена
Большинство системных администраторов пребывают в уверенности, что 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
Если получили ошибку ERROR kuhl_m_privilege_simple ; RtlAdjustPrivilege (20) c0000061, то нужно запустить от имени администратора. Если все ок то у вас появится консольное окно с утилитой.

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

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

Как узнать пароль администратора домена-04
и далее команда для получения паролей
sekurlsa::logonpasswords
Там где null это значит что его просто нет.

Как узнать пароль администратора домена-05
Можно все экспортировать в файл с помощью команды
sekurlsa::logonpasswords /export
![]()
Как узнать пароль администратора домена-06
В итоге рядом с утилитой вы получите файл с паролями пользователей

Как узнать пароль администратора домена-07
Данная методика не сработает при наличии на системе современного антивируса, блокирующего инъекцию. В этом случае придется сначала создать дамп памяти машины и уже на другой машине «вытянуть» из него пароли для сессий всех пользователей и сможете узнать администратора.
Получение пароля пользователя из дампа памяти Windows
Далее вводим команду для монтирования minidump dmp
Get-Process lsass | Out-Minidump
Видим создался файл lsass_628.dmp это и есть наш minidump.

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

Как узнать пароль администратора домена-09
по умолчанию он сохраняется в каталоге %windir\system32%. Копируем его в папку с утилитой и выполняем следующие команды
sekurlsa::minidump lsass_628.dmp
И следующей командой получим список пользователей, работающих в системе и их пароли:
sekurlsa::logonPasswords /export

Как узнать пароль администратора домена-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
И наконец, набираем
.process /r /p fffffa800e0b3b30
!mimikatz
и получаем список пользователей Windows и их пароли в открытом виде:

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

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