iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
Security

Hack the Boyfriend: 為了 CTF 帥哥,我貢獻了我的肝臟系列 第 25

關鍵字只給懂的人 - findstr

  • 分享至 

  • xImage
  •  

你是我的續命池吧!


有時候,他的舉動就像系統裡那些被遺忘的檔案。
乍看毫不起眼,但只要輕敲一個 findstr
就會浮現幾個關鍵字—

像是一種靜靜閃爍的訊號,提醒我:這裡還有東西。

他沒有說出口,卻讓我忍不住猜想:

是不是有些話,他故意藏在縫隙裡,等我去發現。


技術筆記:嘗試找出其他檔案

在本機系統或者網路共享資料夾中,我們可能會發現許多其他類型的檔案,這些檔案可能包含憑證 or 額外資訊,可用於提升權限。

在 AD 環境中,我們可以使用 Snaffler 這類工具去爬網路共享磁碟,尋找特定的檔案副檔名,例如:.kdbx.vmdk.ppk 等。

透過這些方式,我們可能可以找到可掛載的虛擬硬碟,進而提取本地管理員密碼雜湊。

也有可能...

  1. 可以找到 SSH 私鑰,用於存取其他系統。

  2. 或者發現使用者將密碼存放在 Excel/Word 文件、OneNote 筆記本,甚至經典的 passwords.txt。


能做的其他事 - 找找共享資料夾

在滲透測試中,有時候會想要找到一個共享磁碟上的密碼檔,想辦法進行初始存取或權限提升。

如果有共享資料夾(如 FILE02 伺服器上的 users 資料夾,每個使用者一個子資料夾 ctf-boy),但若權限配置鬆散(例如所有 Domain Users 都能讀取所有使用者的資料夾)...

因為有時使用者會誤以為只有自己電腦能存取,把敏感資料存在這裡的情況就非常常見 XD

假設我們手動搜尋檔案系統中的憑證 (Manually Searching the File System for Credentials)

我們可以手動使用下列指令來搜尋本機或共享磁碟 ~

搜尋檔案內容 (Windows CMD)
範例 1:
C:\lab> cd c:\Users\ctf-boy\Documents & findstr /SI /M "password" *.xml *.ini *.txt

找到:

ctf-boy.txt
範例 2:

接下來,我們可以試試!

C:\lab> findstr /si password *.xml *.ini *.txt *.config

結果:

ctf-boy.txt:password: l#oVYoU_2!
範例 3:
C:\lab> findstr /spin "password" *.*

結果:

ctf-boy.txt:1:password: l#oVYoU_2!
使用 PowerShell 搜尋
PS C:\lab> select-string -Path C:\Users\ctf-boy\Documents\*.txt -Pattern password

結果:

ctf-boy.txt:1:password: l#oVYoU_2!
搜尋檔案副檔名
範例 1:
C:\lab> dir /S /B *pass*.txt == *pass*.xml == *pass*.ini == *cred* == *vnc* == *.config*

找到:

c:\inetpub\wwwroot\web.config
範例 2:
C:\lab> where /R C:\ *.config

找到:

c:\inetpub\wwwroot\web.config
PowerShell 範例:
PS C:\lab> Get-ChildItem C:\ -Recurse -Include *.rdp, *.config, *.vnc, *.cred -ErrorAction Ignore

其他可能包含憑證的檔案 (Other Interesting Files)

系統層級檔案
  • %SYSTEMDRIVE%\pagefile.sys:交換檔 (Pagefile)。Windows 把記憶體資料暫存到硬碟裡,裡面可能殘留密碼、憑證、明文資料。

  • %WINDIR%\debug\NetSetup.log:網域加入 (Domain Join) 的 Debug Log,有時候會看到網域帳號密碼或錯誤訊息。

  • %WINDIR%\repair\sam / system / software / security:Windows 修復模式的備份註冊表 Hive(Registry Hives),有時候裡面能取出 SAM 資料庫(本地使用者雜湊)、系統金鑰,進而做 hash dump。

  • %WINDIR%\iis6.log:IIS Web Server 的日誌,可能看到登入帳號、查詢參數中的憑證。

  • %WINDIR%\system32\config\AppEvent.Evt / SecEvent.Evt:舊版 Windows Event Log,可能記錄認證事件或系統帳號活動。

  • %WINDIR%\system32\config\*.sav:Registry hive 的備份副本(default.sav、security.sav、software.sav、system.sav),同樣能被用來提取帳號資訊。

  • %WINDIR%\system32\CCM\logs\*.log:SCCM(System Center Configuration Manager)的日誌,常含有安裝軟體或推送政策時留下的認證。

使用者層級檔案
  • %USERPROFILE%\ntuser.dat:每個使用者的個人註冊表檔案,可能含有應用程式存的密碼或 Proxy 設定。

  • %USERPROFILE%\LocalS~1\Tempor~1\Content.IE5\index.dat:IE 的暫存瀏覽紀錄檔,可能含有 Cookie 或明文登入資訊。

  • %WINDIR%\System32\drivers\etc\hosts:本地 Hosts 檔,雖然不是憑證,但可能有「偽造的 Domain」對應,被用來欺騙認證流量。

特殊目錄
  • C:\ProgramData\Configs\*:常被軟體放置明文設定檔的位置,裡面可能直接存帳密(例如 web.config、database.ini)。

  • C:\Program Files\Windows PowerShell\*:有時候管理員或開發人員會把 Script 存這裡,腳本內可能硬編碼憑證(hard-coded credentials)。

可以做更多的事情

雖然許多常見的提權枚舉腳本(如 winPEAS、Seatbelt、PowerUp)都會自動搜尋這些敏感檔案,但我們不能只依賴工具。

理解檔案用途:知道為什麼這些檔案可能包含憑證(例如 pagefile.sys 可能殘留記憶體密碼片段)。

  • 手動搜尋:透過 findstr、select-string、strings 等指令,針對副檔名與內容搜尋。

  • 客製化腳本:在遇到特殊環境(內部自製系統、特定應用程式)時,可能需要修改枚舉腳本,把新的檔案路徑或副檔名加入搜尋範圍。

  • 比對上下文:不只看檔案,還要比對檔案時間、存取權限,判斷它是否真有利用價值。


小結

# 在 Windows 系統與使用者環境中,往往存在許多潛在的敏感檔案,這些檔案可能蘊含帳號密碼、金鑰、憑證雜湊或應用程式設定。
# 雖然各類工具能自動協助搜尋,但仍需要具備手動檢查、判斷並擴充的能力,才能在提權與滲透測試的過程中更加靈活 ~

參考資料

HTB Academy - Windows Privilege Escalation - Other Files: https://academy.hackthebox.com/module/67/section/639


上一篇
Windows Hardening 簡易說明
下一篇
疲累之中不小心中斷比賽了,直接來複習 Remote Services 吧!
系列文
Hack the Boyfriend: 為了 CTF 帥哥,我貢獻了我的肝臟26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言