1 / 1 / 0 Регистрация: 21.01.2012 Сообщений: 5 |
|
1 |
|
Как узнать пароль пользователя19.02.2014, 08:08. Показов 69148. Ответов 9
Нужно узнать пароль пользователей (других вариантов нет, сменить пароль не предлагать) К серверу подключаются терминалы, чтобы ничего не поломать и не наградить себя плясками с бубном (загрузка идет с PXE и судя по всему конфигурационный файл записан вместе с загрузчиком), нужно узнать пароль пользователей т.е. терминалов. гугл ответов не дал, все ссылаются на потерю безопасности, в данном случае это безразлично.
0 |
Почетный модератор 28044 / 15777 / 982 Регистрация: 15.09.2009 Сообщений: 67,752 Записей в блоге: 78 |
|
19.02.2014, 08:28 |
2 |
да никак.
1 |
Alli_Lupin |
19.02.2014, 14:37
|
Не по теме: терморектальный метод криптоанализа
0 |
evgenii3000 |
21.02.2014, 15:08
|
Не по теме: Mad_Zhek, чтобы узнать что-то не нужен компьютер, нужен утюг
0 |
0 / 0 / 0 Регистрация: 24.12.2013 Сообщений: 14 |
|
02.04.2014, 17:34 |
5 |
Я вижу только один вантант решения проблемы — установка на компы этих пользователей какой-нибудь «следилки» нажатых клавиш, которая умеет делать скрины и т.д. и т.п. Таких на просторах интернета море
0 |
84 / 84 / 14 Регистрация: 15.02.2011 Сообщений: 252 |
|
19.04.2014, 21:53 |
6 |
Легко. Идем к рабочему месту пользователя. Пароль будет написан на бумажке, приклеиной на монитор, либо написан прямо на нем, посмотри под клавиатурой.
1 |
Ушел с форума 16468 / 7432 / 1186 Регистрация: 02.05.2013 Сообщений: 11,617 Записей в блоге: 1 |
|
20.04.2014, 10:27 |
7 |
Mad_Zhek, я бы смотрел в сторону программных решений.
Легко. Идем к рабочему месту пользователя. Пароль будет написан на бумажке, приклеиной на монитор, либо написан прямо на нем, посмотри под клавиатурой.
2 |
3 / 3 / 0 Регистрация: 08.05.2013 Сообщений: 55 |
|
25.04.2014, 21:07 |
8 |
Я вижу только один вантант решения проблемы — установка на компы этих пользователей какой-нибудь «следилки» нажатых клавиш, которая умеет делать скрины и т.д. и т.п. Таких на просторах интернета море
Нужно узнать пароль пользователей Staffcop вроде это умеет, клавиатурный шпион самое то, поддерживаю yurka51
0 |
Почетный модератор 28044 / 15777 / 982 Регистрация: 15.09.2009 Сообщений: 67,752 Записей в блоге: 78 |
|
25.04.2014, 21:21 |
9 |
нужно поднять АД, настроить права, и не «любить» мозги ни себе ни людям. Добавлено через 2 минуты
0 |
3 / 3 / 0 Регистрация: 08.05.2013 Сообщений: 55 |
|
01.05.2014, 10:12 |
10 |
Наильжон, я посмотрбю на тебя пока ты будешь бегать по компам юзерофф и ставить на них кейлоггер… а потом париться из за того что антивирь после каждого обновления его блочит… Ставиться удаленно — раз, касп, eset не блокирует — два (проверено)
0 |
В этой статье, написанной в рамках серии статьей, посвященной обеспечению безопасности 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
- Получение паролей пользователей из файлов виртуальных машины и файлов гибернации
- Как узнать пароли пользователей Windows в открытом виде через протокол WDigest?
- Извлекаем пароли локальных пользователей Windows из SAM
- Использование Mimikatz в pass-the-hash атаках
- Просмотр сохраненных паролей в Windows
- Дампим пароли при входе в Windows
- Как защитить Windows от извлечения паролей из памяти?
Извлекаем хэши паролей пользователей из памяти Windows
Попробуем извлечь хэши паролей всех залогиненых пользователей из памяти Windows (процесса lsass.exe — Local Security Authority Subsystem Service) на RDS сервере с Windows Server 2016.
- Запустите Mimikatz.exe с правами администратора;
- В контексте утилиты выполните команды:
mimikatz # privilege::debug
Данная команда предоставит текущей учетной записи права отладки процессов (SeDebugPrivilege). -
mimikatz # sekurlsa::logonPasswords full
Данная команда вернет довольно большой список. Найдите в нем учетные записи пользователей. - В моем случае на сервере кроме моей учетной записи есть активные сессии двух пользователей: anovach и administrator.
- Скопируйте их NTLM хэши (выделено на скриншоте). В моем случае получились такие данные:
anovach (NTLM: 79acff649b7a3076b1cb6a50b8758ca8) Administrator (NTLM: e19ccf75ee54e06b06a5907af13cef42)
Можно использовать mimikatz не в интерактивном, а в командном режиме. Чтобы автоматически получить хэши паролей пользователей и экспортировать в текстовый файл, выполните команды:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit" >> c:\tools\mimikatz\output.txt
Теперь можно воспользоваться любым офлайн (есть утилита hashcat в Kali Linux) или онлайн сервисом по расшифровке NTLM хэшей. Я воспользуюсь сервисом https://crackstation.net/
Как вы видите, сервис быстро нашел значения для этих NTLM хэшей. Т.е. мы получили пароли пользователей в открытом виде (представьте, что один из них это администратор домена….).
Как вы видите, благодаря mimikatz мы получили NTLM хеши всех активных пользователей! Все это благодаря тому, что на данном компьютере разрешено использовать режим отладки, выставляя флаг SeDebugPrivilege для нужного процесса. В этом режиме программы могут получать низкоуровневый доступ к памяти процессов, запущенных от имени системы.
Примечание. В июне 2017 года многие крупные компании России, Украины и других стран были заражены вирусом-шифровальщиком not-petya, которые для сбора паролей пользователей и администраторов домена использовал в том числе интегрированный модуль mimikatz.
Получение хешей паролей пользователей из дампа памяти Windows
Рассмотренная выше методика получения хэшей пароля не сработает, если на сервере установлен антивирус, блокирующего инъекцию. В этом случае придется сначала создать дамп памяти процесса LSASS на целевом сервере, и затем на другом компьютере с помощью mimikatz извлечь из него хэши пароли для сессий пользователей.
Создать дамп памяти процесса в Windows довольно просто. Запустите Task Manager, найдите процесс lsass.exe, щелкните по нему правой клавишей и выберите Create dump file.
Windows сохраните дам памяти в указанную папку.
Вам осталось только разобрать дамп с помощью mimikatz (можно на другом компьютере). Загрузите дамп памяти в mimikatz:
Mimikatz “sekurlsa::minidump C:\Users\anovach\AppData\Local\Temp\lsass.DMP”
Вывести информацию о пользователях, и хэшах их паролей из сохраненного дампа памяти:
# sekurlsa::logonPasswords
Вы можете получить дамп памяти с удаленного компьютера с помощью 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):
.load mimilib.dll
Найдите в дампе процесс lsass.exe:
!process 0 0 lsass.exe
И наконец, выполните:
.process /r /p fffffa800e0b3b30
!mimikatz
В результате вы получите список пользователей Windows, и NTLM хэши их паролей, или даже пароли в открытом виде.
Как узнать пароли пользователей 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
Обновите GPO:
gpupdate /force
Дождитесь входа пользователей (в Windows 10 нужно пользователю нужно перезайти, в Windows Server 2016 достаточно разблокировать сессию после блокировки экрана) и получите их пароли через mimikatz:
privilege::debug
sekurlsa::wdigest
Как вы видите, в секции wdigest содержится пароль пользователя в открытом виде:
Извлекаем пароли локальных пользователей Windows из SAM
С помощью mimikatz вы можете извлечь хэши паролей локальных пользователей Windows из SAM так:
privilege::debug
token::elevate
lsadump::sam
Также можно извлечь NTLM хэши SAM из реестра.
- Экспортируйте содержимое веток реестра SYSTEM и SAM в файлы:
reg save hklm\sam c:\tmp\sam.hiv
reg save hklm\security c:\tmp\sec.hiv
- Затем с помощью Mimikatz извлеките хэши паролей:
privilege::debug
token::elevate
lsadump::sam c:\tmp\sam.hiv c:\tmp\sec.hiv
Использование Mimikatz в pass-the-hash атаках
Если у пользователя используется достаточно сложный пароль, и получить его быстро не удается, можно использовать Mimikatz для атаки pass-the-hash (повторное использование хэша). В этом случае хэш может использовать для запуска процессов от имени пользователя. Например, получив NTLM хэш пароля пользователя, следующая команда запустит командную строку от имени привилегированного аккаунта:
privilege::debug
sekurlsa::pth /user:Administrator /domain:srv01 /ntlm:e19ccf75ee54e06b06a5907af13cef42 /run:powershell.exe
Также для использования NTLM хэша для выполнения команд на удаленных компьютерах можно использовать утилиту Invoke-TheHash. Позволяет также
Просмотр сохраненных паролей в Windows
В Windows вы можете сохранять пароли в Windows Credential Manager (это могут быть пароли для доступа к удаленным компьютерам, сайтам, пароли для RDP подключений в формате TERMSRV/server1). Mimikatz может извлечь эти пароли из Credential Manager и показать их вам:
privilege::debug
sekurlsa::credman
Как вы видите, сохраненый пароль показан в секции credman.
Дампим пароли при входе в Windows
Еще один интересный способ дампа паролей в Windows заключается в использовании дополнительно SSP провайдера (Security Support Provider).
- Скопируйте файл библиотеки Mimikatz mimilib.dll в папку C:\Windows\System32\.
- Зарегистрируйте дополнительного провайдер командой:
reg add "hklm\system\currentcontrolset\control\lsa" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /t REG_MULTI_SZ
- При входе каждого пользователя в Windows его пароль будет записываться в файл kiwissp.log. Можно вывести все пароли через PowerShell:
Get-Content C:\Windows\System32\kiwissp.log
Как защитить 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 не сможет извлечь пароли и хэши.
Выше мы показывали, как при наличии прав администратора можно легко установить этот ключ в уязвимое значение. После этого вы опять сможете получить доступ к паролям в памяти 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 или так.
Выводы. Еще раз напоминаем прописные истины:
- Не стоит использовать одинаковые пароли для разных сервисов (особенно RDP/RDS хостов, находящихся во владении третьих лиц);
- Задумайтесь о безопасности ваших паролей и данных, находящихся на виртуальных машинах в облаках, ведь вы не можете быть уверенными в том, у кого еще имеется доступ к гипервизорам и хранилищу, на котором расположены файлы виртуальных машины;
- Минимизируйте в своих системах количество учетных записей, обладающих правами локального администратора (см. гайд об организации защиты учетных записей администраторов в среде Windows);
- Никогда не заходите с учетной записью администратора домена на сервера и компьютеры, доступные другим пользователям.
Обновлено 25.05.2019
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В предыдущей части мы разобрали «Как создать и добавить локального пользователя (администратора) через групповые политики в windows server 2008R2 / 2012R2», теперь давайте узнаем «Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2/2012R2». Как оказалось на практике все очень просто и даже увлекательно, когда понимаешь на сколько ты не защищен.
Для начала узнаем GUID нашей GPO это ускорит процесс, злоумышленник же потратит на это чуть дальше времени. Идем в Управление групповой политикой и выбираем ту что создает нового локального администратора. Щелкаем изменить и заходим в свойства.
Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2-2012R2-01
Видим уникальное имя.
Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2-2012R2-02
При поднятии домена создаются и расшариваются папки такие как Sysvol. Попасть в нее можно с любого компа в домене по unc пути \ваш домен. Дальше SYSVOLваш доменPolicrsимя вашей политики
Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2-2012R2-03
Machine-PreferencesGroupsGroups.xml
Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2-2012R2-04
Сохраним его и откроем. Нас интересует строчка cpassword=тут и есть кэш данного пароля его то и будем ломать. Теоритически AES256 тажело расшифровать, но только не в нашем случае.
Для расшифровки качаем CrypTool – очень полезную утилиту для работы с хэшами.
https://www.cryptool.org/en/. Про то как установить CrypTool писал в данной статье.
Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2-2012R2-05
Запускаем его и добавляем в него наш хэш. Особенности Base64 в том, что его длина должна быть кратна 4. Поэтому считаем блоки по 4, и если в последнем блоке не хватает символов, то недостающие дописываем символами =. В моем случае это был один символ =.
Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2-2012R2-06
Теперь декодируем его из Base64.
Indiv. Procedures – Tools – Codes – Base64 Encode/Decode – Base64 Decode
Полученный код зашифрован AES256 и ситуация кажется безисходной, только вот ключ расшифровки Microsoft сама выложила в открытые источники (MSDN 2.2.1.1.4 Password Encryption).
И этот код (hex):
4e9906e8fcb66cc9faf49310620ffee8f496e806cc057990209b09a433b66c1b
Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2-2012R2-07
Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2-2012R2-08
Для этого выбираем Analysis – Symmetric Encryption (modern) – AES (CBC)…
Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2-2012R2-09
В длине ключа (Key length:) выбираем 256 bits, вводим ключ, официально полученный от Microsoft и нажимаем Start.
Через секунду получаем наш код:
Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2-2012R2-10
Итого нам остается только удалить из ключа лишние точки, которыми разделены символы, и у нас есть пароль локально администратора всех компьютеров, к которым применяется эта политика безопасности
Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2-2012R2-11
Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2-2012R2-12
Добро пожаловать в систему. P.S. На заметку администраторам: если данным методом все-таки необходимо воспользоваться, то отключите политику сразу после того как она была выполнена.
В этой статье, написанной в рамках серии статьей, посвященной обеспечению безопасности 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:Toolsmimikatz. В этом каталоге появятся две версии mimikatz – для x64 и x86. Используйте версию для своей битности Windows.
В этой статье мы покажем, как получить пароли пользователей в Windows Server 2016 или Windows с помощью mimikatz.
Дисклаймер. Информация и технологии, описанные в данной статье, стоит использовать только в информационно-ознакомительных целях, и ни в коем случае не применять для получения доступа к учетным записям, информации и системам третьих лиц.
Содержание:
- Извлекаем хэши паролей пользователей из памяти Windows
- Получение хешей паролей пользователей из дампа памяти Windows
- Получение паролей пользователей из файлов виртуальных машины и файлов гибернации
- Как узнать пароли пользователей Windows в открытом виде через протокол WDigest?
- Извлекаем пароли локальных пользователей Windows из SAM
- Использование Mimikatz в pass-the-hash атаках
- Просмотр сохраненных паролей в Windows
- Дампим пароли при входе в Windows
- Как защитить Windows от извлечения паролей из памяти?
Попробуем извлечь хэши паролей всех залогиненых пользователей из памяти Windows (процесса lsass.exe — Local Security Authority Subsystem Service) на RDS сервере с Windows Server 2016.
- Запустите Mimikatz.exe с правами администратора;
- В контексте утилиты выполните команды:
mimikatz # privilege::debug
Данная команда предоставит текущей учетной записи права отладки процессов (SeDebugPrivilege).
-
mimikatz # sekurlsa::logonPasswords full
Данная команда вернет довольно большой список. Найдите в нем учетные записи пользователей.
- В моем случае на сервере кроме моей учетной записи есть активные сессии двух пользователей: anovach и administrator.
- Скопируйте их NTLM хэши (выделено на скриншоте). В моем случае получились такие данные:
anovach (NTLM: 79acff649b7a3076b1cb6a50b8758ca8) Administrator (NTLM: e19ccf75ee54e06b06a5907af13cef42)
Можно использовать mimikatz не в интерактивном, а в командном режиме. Чтобы автоматически получить хэши паролей пользователей и экспортировать в текстовый файл, выполните команды:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit" >> c:toolsmimikatzoutput.txt
Теперь можно воспользоваться любым офлайн (есть утилита hashcat в Kali Linux) или онлайн сервисом по расшифровке NTLM хэшей. Я воспользуюсь сервисом https://crackstation.net/
Как вы видите, сервис быстро нашел значения для этих NTLM хэшей. Т.е. мы получили пароли пользователей в открытом виде (представьте, что один из них это администратор домена….).
Как вы видите, благодаря mimikatz мы получили NTLM хеши всех активных пользователей! Все это благодаря тому, что на данном компьютере разрешено использовать режим отладки, выставляя флаг SeDebugPrivilege для нужного процесса. В этом режиме программы могут получать низкоуровневый доступ к памяти процессов, запущенных от имени системы.
Примечание. В июне 2017 года многие крупные компании России, Украины и других стран были заражены вирусом-шифровальщиком not-petya, которые для сбора паролей пользователей и администраторов домена использовал в том числе интегрированный модуль mimikatz.
Получение хешей паролей пользователей из дампа памяти Windows
Рассмотренная выше методика получения хэшей пароля не сработает, если на сервере установлен антивирус, блокирующего инъекцию. В этом случае придется сначала создать дамп памяти процесса LSASS на целевом сервере, и затем на другом компьютере с помощью mimikatz извлечь из него хэши пароли для сессий пользователей.
Создать дамп памяти процесса в Windows довольно просто. Запустите Task Manager, найдите процесс lsass.exe, щелкните по нему правой клавишей и выберите Create dump file.
Windows сохраните дам памяти в указанную папку.
Вам осталось только разобрать дамп с помощью mimikatz (можно на другом компьютере). Загрузите дамп памяти в mimikatz:
Mimikatz “sekurlsa::minidump C:UsersanovachAppDataLocalTemplsass.DMP”
Вывести информацию о пользователях, и хэшах их паролей из сохраненного дампа памяти:
# sekurlsa::logonPasswords
Вы можете получить дамп памяти с удаленного компьютера с помощью 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):
.load mimilib.dll
Найдите в дампе процесс lsass.exe:
!process 0 0 lsass.exe
И наконец, выполните:
.process /r /p fffffa800e0b3b30
!mimikatz
В результате вы получите список пользователей Windows, и NTLM хэши их паролей, или даже пароли в открытом виде.
Как узнать пароли пользователей Windows в открытом виде через протокол WDigest?
В старых версиях Windows по умолчанию разрешалась дайджест-аутентификации (HTTP Digest Authentication) с помощью протокола WDigest. Основной недостаток этого протокола – для корректной работы он использует пароль пользователя в открытом виде, а не виде его хэша. Mimikatz позволяет извлечь эти пароли из памяти процесса LSASS.EXE.
Протокол WDigest по-умолчанию отключен во всех новых версиях Windows, в том числе Windows 10 и Windows Server 2016. Но не удален окончательно. Если у вас есть права администратора в Windows, вы можете включить протокол WDiget, дождаться входа пользователей и получить их пароли.
Включите поддержку Wdigest:
reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1
Обновите GPO:
gpupdate /force
Дождитесь входа пользователей (в Windows 10 нужно пользователю нужно перезайти, в Windows Server 2016 достаточно разблокировать сессию после блокировки экрана) и получите их пароли через mimikatz:
privilege::debug
sekurlsa::wdigest
Как вы видите, в секции wdigest содержится пароль пользователя в открытом виде:
Извлекаем пароли локальных пользователей Windows из SAM
С помощью mimikatz вы можете извлечь хэши паролей локальных пользователей Windows из SAM так:
privilege::debug
token::elevate
lsadump::sam
Также можно извлечь NTLM хэши SAM из реестра.
- Экспортируйте содержимое веток реестра SYSTEM и SAM в файлы:
reg save hklmsam c:tmpsam.hiv
reg save hklmsecurity c:tmpsec.hiv
- Затем с помощью Mimikatz извлеките хэши паролей:
privilege::debug
token::elevate
lsadump::sam c:tmpsam.hiv c:tmpsec.hiv
Использование Mimikatz в pass-the-hash атаках
Если у пользователя используется достаточно сложный пароль, и получить его быстро не удается, можно использовать Mimikatz для атаки pass-the-hash (повторное использование хэша). В этом случае хэш может использовать для запуска процессов от имени пользователя. Например, получив NTLM хэш пароля пользователя, следующая команда запустит командную строку от имени привилегированного аккаунта:
privilege::debug
sekurlsa::pth /user:Administrator /domain:srv01 /ntlm:e19ccf75ee54e06b06a5907af13cef42 /run:powershell.exe
Также для использования NTLM хэша для выполнения команд на удаленных компьютерах можно использовать утилиту Invoke-TheHash. Позволяет также
Просмотр сохраненных паролей в Windows
В Windows вы можете сохранять пароли в Windows Credential Manager (это могут быть пароли для доступа к удаленным компьютерам, сайтам, пароли для RDP подключений в формате TERMSRV/server1). Mimikatz может извлечь эти пароли из Credential Manager и показать их вам:
privilege::debug
sekurlsa::credman
Как вы видите, сохраненый пароль показан в секции credman.
Дампим пароли при входе в Windows
Еще один интересный способ дампа паролей в Windows заключается в использовании дополнительно SSP провайдера (Security Support Provider).
- Скопируйте файл библиотеки Mimikatz mimilib.dll в папку C:WindowsSystem32.
- Зарегистрируйте дополнительного провайдер командой:
reg add "hklmsystemcurrentcontrolsetcontrollsa" /v "Security Packages" /d "kerberosmsv1_0schannelwdigesttspkgpku2umimilib" /t REG_MULTI_SZ
- При входе каждого пользователя в Windows его пароль будет записываться в файл kiwissp.log. Можно вывести все пароли через PowerShell:
Get-Content C:WindowsSystem32kiwissp.log
Как защитить Windows от извлечения паролей из памяти?
В Windows 8.1 и Server 2012 R2 (и выше) возможности по извлечению паролей через LSASS несколько ограничены. Так, по-умолчанию в этих системах в памяти не хранятся LM хэш и пароли в открытом виде. Этот же функционал бэкпортирован и на более ранние версии Windows (7/8/2008R2/2012), в которых нужно установить специальное обновление KB2871997 (обновление дает и другие возможности усилить безопасность системы) и отключить WDigest в реестре (в ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersWDigest установить параметр DWORD реестра UseLogonCredential равным 0).
Если после установки обновления и ключа UseLogonCredential попробовать извлечь пароли из памяти, вы увидите, что mimikatz с помощью команды creds_wdigest не сможет извлечь пароли и хэши.
Выше мы показывали, как при наличии прав администратора можно легко установить этот ключ в уязвимое значение. После этого вы опять сможете получить доступ к паролям в памяти 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 "HKLMSYSTEMCurrentControlSetControlLsa" /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 или так.
Выводы. Еще раз напоминаем прописные истины:
- Не стоит использовать одинаковые пароли для разных сервисов (особенно RDP/RDS хостов, находящихся во владении третьих лиц);
- Задумайтесь о безопасности ваших паролей и данных, находящихся на виртуальных машинах в облаках, ведь вы не можете быть уверенными в том, у кого еще имеется доступ к гипервизорам и хранилищу, на котором расположены файлы виртуальных машины;
- Минимизируйте в своих системах количество учетных записей, обладающих правами локального администратора (см. гайд об организации защиты учетных записей администраторов в среде Windows);
- Никогда не заходите с учетной записью администратора домена на сервера и компьютеры, доступные другим пользователям.
Время на прочтение
5 мин
Количество просмотров 59K
Есть способ, который позволяет узнать пароль администратора в случае, если какая-либо служба запускается от его имени.
Пароли учетных записей, от которых запускаются службы Windows, хранятся в зашифрованном виде в реестре (LSA Secrets) по пути:
HKEY_LOCAL_MACHINE/Security/Policy/Secrets
Существуют способы, которые позволяют извлечь пароли из LSA Secrets:
- Скопировать путь реестра во временный путь, а затем расшифровать зашифрованные пароли
- Использовать теневые копии
- Использовать специальные утилиты для работы с процессом lsass.exe
Попробуем получить пароль от учетной записи под которой запускается служба SQL Server.
Имеется:
Контроллер домена на Windows Server 2012 R2
SQL Server Express 2012
При установке SQL Server, для запуска службы, специально укажем существующую доменную учётную запись (пароль меньше 14 символов).
Воспользуемся утилитой gsecdump для извлечения паролей.
Запустим PowerShell от имени администратора и выполним команду: gsecdump-v2b5.exe -l
Результат:
Чтобы защититься от такого рода атак в Windows Server 2008 R2 был придуман механизм Managed Service Accounts.
Managed Service Accounts являются управляемыми учетными записями в домене, которые обеспечивают автоматическое управление паролями и упрощенное управление именами служб-участников, включая делегирование управления другим администраторам.
Преимущества управляемых учетных записей служб:
- Автоматическая смена паролей. По умолчанию смена пароля – раз в 30 дней
- Сложный пароль. Используется комплексный автоматически генерируемый пароль из 240 символов в случайном порядке (первая половина — буквы английского алфавита, вторая половина — цифры и другие символы)
- Отсутствие избыточных прав
- Возможность использования одного MSA на нескольких серверах (gMSA). В случае, когда требуется, чтобы все экземпляры служб использовали один и тот же субъект, например для использования в службе NLB
- Управление SPN
Автоматическое обновление SPN при переименовании
— учетной записи сервера
— свойства dnshostname учетной записи сервера
— изменении свойства addition¬aldnshostname учетной записи сервера
— изменении свойства additionalsam¬accountname учетной записи сервера
Сервисы и службы, которые поддерживают MSA:
- IIS
- AD LDS
- SQL Server 2008 R2 SP1, 2012
- MS Exchange 2010, 2013
Требования MSA:
- Уровень домена и леса – Windows Server 2008 R2
- Windows Server 2008 R2, Windows 7 (Professional, Enterprise, Ultimate)
- .Net Framework 3.5x
- Модуль администрирования Active Directory для PowerShell
- Установленный патч 2494158
Если лес и домен не имеют уровень 2008 R2 (MSA) и 2012 (gMSA) нужно поднять уровень леса командой:
adprep /forestprep
И уровень домена, командой:
adprep /domainprep в каждом домене, в котором необходимо создать и использовать управляемые учетные записи службы.
Включение MSA в PowerShell
1) Выполнить командлет: Import-Module ActiveDirectory
2) Чтобы создать учётную запись MSA нужно выполнить командлет:
New-ADServiceAccount serviceaccount –RestrictToSingleComputer
где serviceaccount – имя учетной записи MSA
RestrictToSingleComputer – параметр означает, что MSA будет привязан только к одному серверу.
Можно зайти в Active Directory Users and Computers и убедиться, что MSA был создан (чтобы появился раздел Managed Service Accounts, нужно включить в оснастке View — Advanced Features).
3) Чтобы привязать MSA к серверу нужно выполнить командлет:
Add-ADComputerServiceAccount -Identity server -ServiceAccount serviceaccount
где server – имя сервера, который будет соотнесён с MSA
serviceaccount – имя учетной записи MSA
Чтобы проверить, что операция выполнена успешно, нужно зайти в оснастку Active Directory Users and Computers, перейти в свойства сервера и посмотреть атрибут msDS-HostServiceAccount
4) Установка управляемой учетной записи службы на локальном компьютере
Нужно выполнить командлет:
Install-ADServiceAccount -Identity serviceaccount
где serviceaccount – имя учетной записи MSA
5) Тестирование MSA (Windows 8.1, Windows PowerShell 4.0, Windows Server 2012 R2)
Нужно выполнить командлет:
Test-ADServiceAccount serviceaccount
где serviceaccount – имя учетной записи MSA
Вернёт значение True или False
6) Установить для службы Windows запуск от имени MSA и перезапустить службу.
В конце имени MSA не забудьте указать знак $
Поле пароль нужно оставить пустым.
Проверим с помощью утилиты gsecdump пароль для учётной записи службы
В Windows Server 2012 появились Групповые управляемые учетные записи служб (Group Managed Service Accounts).
Они позволяют привязывать управляемую учетную запись не к одному серверу, а к нескольким.
Это может потребоваться, например, для использования в службе балансировки сетевой нагрузки.
Требования:
- Уровень схемы – Windows Server 2012
- Контроллер домена Windows Server 2012 (R2) на котором запущена служба Microsoft Key Distribution Service
- Windows Server 2012, 2012 R2, 8, 8.1
- Модуль администрирования Active Directory для PowerShell
Включение gMSA в PowerShell
1) Проверить, что включена служба Microsoft Key Distribution Services
“Служба распространения ключей использует общий секрет для создания ключей учетной записи. Эти ключи периодически изменяются. В дополнение к прочим атрибутам групповых управляемых учетных записей служб контроллер домена Windows Server 2012 вычисляет пароль для ключа, предоставленного службами распространения ключей. Обратившись к контроллеру домена Windows Server 2012, узлы Windows Server 2012 и Windows 8 могут получить текущий и предыдущий пароль.”
2) Создать Root Key
За создание Root Key отвечает командлет:
Add-KdsRootKey
Чтобы создать новый Root Key нужно выполнить командлет:
Add-KdsRootKey –EffectiveImmediately
В таком случае ключ будет доступен через 10 часов, пока не среплицируется.
Можно выполнить командлет:
Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10))
В таком случае, ключ будет доступен сразу (-10 часов начала работы)
3) Создать gMSA
Выполнить командлет:
New-ADServiceAccount serviceaccount -DNSHostName test.test.com –PrincipalsAllowedToRetrieveManagedPassword $test
где serviceaccount – имя учетной записи gMSA
test.test.com – имя сервера, на котором был создан Root Key
$test – имя сервера, который может обращаться к KDS для получения информации
Можно зайти в Active Directory Users and Computers и убедиться, что gMSA был создан (чтобы появился раздел Managed Service Accounts, нужно включить в оснастке View — Advanced Features).
4) Установка управляемой учетной записи службы на локальном компьютере
Нужно выполнить командлет:
Install-ADServiceAccount -Identity serviceaccount
где serviceaccount – имя учетной записи gMSA
5) Тестирование MSA (Windows 8.1, Windows PowerShell 4.0, Windows Server 2012 R2)
Нужно выполнить командлет:
Test-ADServiceAccount serviceaccount
где serviceaccount – имя учетной записи MSA
Вернёт значение True или False
6) Установить для службы Windows запуск от имени gMSA и перезапустить службу.
В конце имени gMSA не забудьте указать знак $
Поле пароль нужно оставить пустым.
Проверим с помощью утилиты gsecdump пароль для учётной записи службы
Удалить MSA/gMSA можно с помощью командлета Uninstall-ADServiceAccount
Задавать параметры MSA/gMSA можно с помощью командлета Set-ADServiceAccount
Задание периода смены пароля:
Set-ADServiceAccount serviceaccount -ManagedPasswordIntervalInDays 60
где serviceaccount – имя учетной записи gMSA
60 – период, через который сменится пароль
Задание криптоалгоритмов Kerberos для использования MSA
Варианты: RC4, AES128, AES256
Set-ADServiceAccount serviceaccount -KerberosEncryptionType RC4, AES128, AES256
Задание SPN
Set-ADServiceAccount serviceaccount -ServicePrincipalNames @{Add=«добавляемый SPN»}
Задание NetBIOS имени для сервиса (SAMAccountName)
Если не задано, используется идентификатор Name
Если задано, имя отображения в AD будет из Name, а идентификатор для логина из SAMAccountName
Set-ADServiceAccount serviceaccount –SamAccountName test
MSA – это ещё один способ, который позволяет повысить безопасность.
- Remove From My Forums
узнать пароли пользователей
-
Вопрос
-
политика партии постановила
1 менять юзерам пароли регулярно
2 знать их все наперечетс помощью GPO первое сделать нетрудно — отправляяя соответствующее приглашение
как сделать второе? в файл или на мыло или еще каким иным способом выкладывать в ЧИСТОМ виде вновь измененные пароли юзеров
Ответы
-
Стандартными средствами это не сделать. Да и не лучшая это мысль(с точки зрения безопасности) — хранить все пароли. К тому же если пользователи сами будут их высылать (даже если и в открытом виде) не исключена вероятность опечатки.
Что касается «нестандартных средств» — их множество. Например LC5-
Помечено в качестве ответа
2 июня 2009 г. 14:39
-
Помечено в качестве ответа
А зачем их узнавать? Должна быть авторизация по AD, там пароли смотреть не надо — или просто руками делаете такие же учетки с теми же паролями — тогда это неправильно.
Емнип их никак не узнаешь, только сменить. Ну или сторонним софтом, да и то не факт.
По факту узнать никак. На будущее при создании пользователя заносите его пароль в экзель файлик и храните у себя. Когда надо — открыли и глянули.
Не нужно знать пользовательские пароли — это порочная практика.
Сбрасывайте пароль пользователя в некоторое значение по умолчанию (типа 1234) и проставляйте принудительную смену пароля при следующем входе.
В AD пользовательские пароли НЕ хранятся, от слова совсем. Их знает только юзер. В AD лежат хеши паролей, на основе проверки которых происходит аутентификация пользователя. Чем хорош хеш — это результат обработки входных данных НЕОБРАТИМОЙ функцией, с гарантиеей получения уникального значения — хеша. В случае AD с уровнем леса от Win 2008R2 используется шифрование AES256 — можно пробовать расшифровать с помощью радужных таблиц. Но во первых это не совсем тривиально, а во вторых — к сожалению, если у Вас включена политика сложности паролей, и юзерам приходится юзать не совсем тривиальные пароли типа 777 — по времени такой перебор займет прилично времени (скажем на марс мы раньше экспедицию отправим)) ).