像是桌面上攤滿了
cmdkey /list
、netsh wlan show profile
、
還有那個我半途放下的keepass2john.py
,
每一行輸出都像在提醒我,
我找遍別人的憑證、Wi-Fi 密碼、甚至整個密碼庫,
卻還沒找到一個能讓我安全存放情緒的地方。
cmdkey
指令可用來建立、列出與刪除已儲存的使用者名稱與密碼。
參考來源:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/cmdkey
假設我們使用以下指令:
C:\lab> cmdkey /list
裡面沒有列出任何帳號,如下:
表示 Windows 目前沒有儲存任何憑證(Credential Manager 是空的),所以這條路就沒東西可以撿。
但是!如果抓到帳密,在滲透中,可以先在受害機器用 /add
儲存我們控制的帳密,方便後面用 runas 或 RDP 直接登入。
常用的參數如下:
參數 | 功能 | 範例 |
---|---|---|
/list | 列出目前系統中所有儲存的憑證 | cmdkey /list |
/add:target | 新增一組憑證(target 是主機或資源名稱) | cmdkey /add:10.10.10.1 /user:admin /pass:s@trongPwd |
/delete:target | 刪除特定主機或資源的憑證 | cmdkey /add:10.10.10.1 |
如果有儲存密碼,就可以透過 runas!
runas
是 Windows 用來切換帳號執行程式的指令。
你知道對方帳號的密碼,就能用他的身份做事XD
舉例來說,我可以利用已儲存的 admin 的密碼,以 admin 身份執行指令:
PS C:\lab> runas /savecred /user:admin "COMMAND HERE"
常用的參數如下:
參數 | 說明 |
---|---|
/user:<使用者> | 指定要用的帳號(格式可以是 UserName 或 Domain\UserName) |
/savecred | 第一次輸入密碼後會儲存,下次可直接用 |
/profile | 載入該使用者的設定檔(預設為載入) |
/netonly | 只在網路存取時使用這個帳號(本地仍用原本帳號) |
/smartcard | 使用智慧卡登入 |
/showtrustlevels | 顯示可用的信任等級(Trust Levels) |
C:\lab> netsh wlan show profile
netsh wlan show profile
是 Windows 內建 netsh(Network Shell)指令裡的一個子功能,用來列出這台電腦曾經連線並儲存過的無線網路設定檔。
如果我們已經取得目標工作站(具備無線網卡)的本機系統管理員權限,就能列出該使用者最近連線過的無線網路。
如果網路的設定允許,我們就能透過以下指令讀出該 Wi-Fi 的預先共享金鑰(Key Content)。
C:\lab> netsh wlan show profile <user_profile> key=clear
不過,這在滲透測試中這種情況不算常見。
很多公司會給員工用密碼管理工具,例如桌面版的 KeePass、雲端的 1Password,或企業級的 Thycotic、CyberArk。
若能打開這些工具,尤其是 IT 部門共用的密碼庫,就有機會直接拿到網路設備、伺服器、資料庫等高價值系統的管理員帳號。
有時候攻擊者可以靠重複使用的密碼或弱密碼闖進密碼庫。
舉例來說,像 KeePass 這類工具,密碼庫檔案(.kdbx)通常是存在本機,如果我們在目標機器或檔案共享中找到它,就能把它下載到攻擊端,然後用 keepass2john
把主密碼轉成雜湊,再用 Hashcat 或 John the Ripper 離線破解。
原始碼 keepass2john:
如果我們找到了 ADMIN.kdbx 檔案,可以用以下方式把 KeePass 資料庫轉成 Hashcat 可以使用的雜湊格式。
python2.7 keepass2john.py ADMIN.kdbx
接著,我們把找到的雜湊丟到 Hashcat:
https://hashcat.net/wiki/doku.php?id=example_hashes 中,指定 13400(KeePass)模式來破解。
如果破解成功,就有機會獲得大量帳號密碼,能用來登入其他應用程式、系統:
參考指令:
hashcat -m 13400 <您找到的 keepass_hash> /opt/useful/seclists/Passwords/Leaked-Databases/rockyou.txt
# python3 keepass2ctfboy.py CTFboy_Heart.kdbx
# 我們的專屬指令