Как посмотреть пароль пользователя windows server

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

Как известно windows хранит пароли пользователей в виде хеша в файле C:\windows\system32\config\sam. Но c пользователями залогиненными в системе дело обстоит немножко по другому. Штука в том, что некоторые системные процессы в своих служебных целях все-таки используют пароли пользователей в открытом (или зашифрованном) виде, а не их хэши. C помощью утилиты mimikatz при наличии прав администратора можно выцепить пароли авторизованных пользователей.

Вариант 1. Достаём пароли из памяти.

Для этого нам понадобятся пользователь с правом на отладку (привилегиями SeDebugPrivilege) и утилита Mimikatz (скачать можно с оф.сайта или отсюда пароль: tmie.ru). Так как права на отладку есть как и локального так и у доменного администраторов, локальный админ может узнать пароль доменного.

Запускаем Mimikatz с правами администратора, включаем отладку:

сохраняем пароли в файл:

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

Вариант 2. Достаем пароли из дампа процесса lsass.exe.

Если на нужном сервере или рабочей станции утилиту блокирует антивирусник, или вы физически не можете работать одновременно с пользователями, можно снять дамп памяти процесса lass.exe ручками или планировщиком.

Снять дамп памяти процесса можно с помощью модуля: Out-Minidump.ps1 (скачать можно отсюда или отсюда)

Импортируем модуль в powershell:

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

Получаем файл дампа памяти процесса. Файл лежит либо в system32, либо в папке откуда запускалась команда. Имя файла выглядит lsass_ .dmp.

Запускаем mimikatz и натравливаем его на наш дамп:

Дальше всё так же как и в первом варианте:

Вариант 3. Достаём пароли из файла гибернации (hyberfile.sys).

При желании можно скопировать файл гибернации, конвертнуть его в dmp, и распарсить дебагером. Детально расписано здесь: (Хабр).

Windows memory toolkit community edition (скачать).

Как посмотреть пароль пользователя windows server

Добрый день! Уважаемые читатели и гости 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\имя вашей политики

Читайте также:  Скрипты zabbix для windows

Как узнать пароль локального администратора GPO (GROUPS.XML) в windows server 2008R2-2012R2-03

Как узнать пароль локального администратора 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. ProceduresToolsCodesBase64 Encode/DecodeBase64 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

Для этого выбираем AnalysisSymmetric 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

Итого нам остается только удалить из ключа лишние точки, которыми разделены символы, и у нас есть пароль локально администратора всех компьютеров, к которым применяется эта политика безопасности

Mimikatz: Извлекаем пароли пользователей Windows из памяти в открытом виде

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

Хранение паролей и хэшей в памяти Windows

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

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

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

Читайте также:  Шрифт arial для mac os

Скачать утилиту mimikatz можно тут: http://blog.gentilkiwi.com/mimikatz

Утилита mimikatz позволяет извлечь пароли пользователей непосредственно из памяти ( путем инъекции в lsass .exe библиотеки sekurlsa .dll ), из сохраненного дампа памяти компьютера или даже из файла гибернации.

Используем Mimikatz для извлечения паролей пользователей из lsass.exe онлайн

  • Скачайте и запустите Mimikatz.exe с правами администратора (есть x86 и x64-версии утилиты для соответствующих систем)
  • В контексте утилиты выполните команды

mimikatz # privilege::debug
mimikatz # sekurlsa::logonPasswords full
(последняя команда для все активных пользователей в системе отобразит имена учетных записей и их пароли).

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

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

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

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

Получившийся дамп памяти, в нашем примере это lsass_592.dmp (по умолчанию он сохраняется в каталоге %windir\system32%), нужно скопировать на другой компьютер, в которой имеется утилита mimikatz и выполнить команду:

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

Как вы видите, ничего сложного.

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

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

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

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

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

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

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

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

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

Читайте также:  Как получить windows 10 если нет лицензии

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

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

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

В том случае, если не удается получить пароль пользователя, а только его хеш, Mimikatz можно использовать для так называемой атаки pass-the-hash (повторное использованиу хэша). В этом случае хэш может использовать для запуска процессов от имени пользователя. Например, получив NTLM хэш пользователя, следующая команда запустит командную строку от имени привилегированного аккаунта:
sekurlsa::pth /user:Administrator /domain:CORP /ntlm: /run:cmd

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

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

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

Однако при наличии прав администратора вы сможете легко изменить этот ключ:

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

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

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

  • Запретить хранить пароли с использование обратимого шифрования (Reversible Encryption)
  • Отключить NTLM
  • Запретить использование сохранённых паролей в Credential Manager
  • Запретить кэшировать учетные данные доменных пользователей (ключ CachedLogonsCount и политика Interactive logon: Number of previous logons to cache)
  • Если функциональный уровень домена не ниже Windows Server 2012 R2, можно добавить учетные записи администартороав в специальную группу Protected Users

При тестировании mimkatz в Windows 10 Pro x64 с настройками утилита mimkatz 2.0 смогла получить хэши пароля активного пользователя (но не пароль в открытом виде).

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

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

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