Mimikatz 是一款功能強大的 Windows 平台下資安評估及滲透測試工具,常用於評估系統的安全性,也常被不法人士用於惡意行為。以下將針對初學者簡要介紹 Mimikatz 的基本概念、使用情境、操作方法及注意事項。
1. 什麼是 Mimikatz
Mimikatz 由法國安全專家 Benjamin Delpy 開發,最初用於研究 Windows 系統的驗證與憑證儲存方式,隨後因其可提取明文密碼與金鑰等功能而聞名。簡單來說,Mimikatz 能協助資安人員和滲透測試人員:
– 讀取系統或網域內的使用者憑證(如明文密碼、雜湊值、Kerberos 票證等)
– 測試與驗證 Windows 中的相關安全性機制
2. 什麼時候使用 Mimikatz
在以下情況下,資安或滲透測試人員可能會考慮使用 Mimikatz:
- 內部網路滲透測試:測試企業或組織網路中的權限提升與側向移動風險。
- 驗證系統安全性:檢查 Windows 系統是否能夠取得明文憑證、測試安全性設定是否存在弱點。
- 事件調查與分析:用於調查可能發生的內部不當存取、憑證外洩事件,藉此了解攻擊者可能獲取了哪些憑證。
3. 該如何使用 (情境)
- 下載並安裝:到 官方 GitHub 或其他可信來源取得 Mimikatz 執行檔。
- 在管理員權限下執行:由於 Mimikatz 會操作高權限的系統資源,務必在「以系統管理員身份執行」的命令提示字元(CMD)或 PowerShell 中運行。
- 載入模組與執行命令:Mimikatz 內建許多模組與指令,執行對應的模組或指令來讀取或轉儲(dump)憑證與票證。
- 分析輸出結果:將取得的憑證或資訊進行分析,並評估可能的風險與弱點。
4. 使用的時候需要注意什麼
- 合法性與合約範圍:使用 Mimikatz 進行滲透測試或系統檢測時,需確保已取得合法授權與合約範圍內的測試許可。
- 權限管控:避免在生產環境或未經授權的系統上執行,並且確保完成檢測後及時撤銷或清除相關的權限和工具。
- 工具防偵測:許多防毒軟體和 EDR (Endpoint Detection & Response) 會標記 Mimikatz 為威脅程式,執行前需瞭解可能被阻擋或產生警報。
- 安全管理:Mimikatz 取得的憑證或密碼極度敏感,請注意保存與銷毀方式,避免二度洩漏。
基本使用
在已提權的命令提示字元或 PowerShell 下,直接執行:
mimikatz.exe
進入 Mimikatz 互動介面後,即可輸入各類指令。
常見指令序列
privilege::debug # 提升權限
sekurlsa::logonpasswords # 讀取登入憑證
- privilege::debug:嘗試讓目前執行的 Mimikatz 進程取得 Debug 權限,以便可以讀取或操作系統的相關資訊。
- sekurlsa::logonpasswords:顯示目前系統中使用者的登入資訊及其明文/雜湊憑證。
其他常用功能
sekurlsa::tickets # 列出 Kerberos 票證
lsadump::sam # 導出 SAM (Security Account Manager) 資料庫
lsadump::cache # 顯示緩存的憑證 (Credential Caching)
- sekurlsa::tickets:可列出目前記憶體中可用的 Kerberos 票證,供進一步分析或橫向移動。
- lsadump::sam:將本機 SAM 資料庫導出,以分析或測試弱密碼情況。
- lsadump::cache:顯示系統中暫存的使用者憑證資訊,用於檢查 Credential Caching 的風險。
小結
Mimikatz 是一把「雙面刃」,在資安領域與惡意攻擊之間存在著微妙的平衡。透過正確且合規的使用,資安人員可以深度檢測系統中的安全弱點,並加以防範。然而,也必須謹慎管控 Mimikatz 取得的關鍵資訊,避免在檢測過程或之後造成額外的資安風險。建議初學者在實際操作前,先充分了解原理並於合法授權與測試環境中進行練習。
繼續深入:Mimikatz 進階觀念與防範
在前面部分,我們針對初學者介紹了 Mimikatz 的基本使用方法與常見指令。以下內容將再進一步補充進階的使用情境與常見防範建議,協助讀者更全面地理解 Mimikatz 在資安領域的應用與風險。
進階使用情境
1. Pass-the-Hash (PtH)
- 原理:利用抓取 Windows 使用者雜湊(NTLM Hash),並以此直接進行身份驗證,而無需明文密碼。
- 使用方式:在 Mimikatz 中讀取 NTLM Hash 後,可使用
sekurlsa::pth
指令注入該雜湊,並模擬該使用者登入其他系統或服務。 - 應用場景:若目標系統啟用了單一登入或互信機制,攻擊者只需取得一組有效的 NTLM 雜湊,即可橫向移動到更多系統。
2. Pass-the-Ticket (PtT)
- 原理:針對 Kerberos 驗證機制,攻擊者可直接使用取得的 Ticket(例如 TGT/TGS)進行伺服器存取。
- 使用方式:在
sekurlsa::tickets
中提取 Kerberos 票證後,透過kerberos::ptt
指令來注入該票證。 - 應用場景:在 Active Directory 環境中,若能取得 Domain Admin 的 Kerberos 票證,就能迅速存取整個網域資源。
3. Golden Ticket / Silver Ticket
- Golden Ticket:指的是利用 Domain Key (KRBTGT 帳號的雜湊) 生成的有效 TGT。取得 Golden Ticket 後,幾乎可以在整個網域內擁有無限制的存取權。
- Silver Ticket:攻擊者僅需取得某服務帳號的雜湊(如服務主體名稱 SPN),即可在該服務中偽造 TGS,而不需要 Domain Key。
防範與檢測建議
雖然 Mimikatz 功能強大,但企業與組織仍可透過加強系統設定與監控手段,來降低遭受此類工具攻擊的風險。
1. 強化帳號管理與密碼策略
- 採用複雜密碼:設定最少長度與複雜度,減少弱密碼被破解或暴力猜測的機會。
- 定期更新密碼:包含本機系統管理員帳號與網域管理員帳號,避免長期不變的密碼被長期利用。
- 分權管理:減少 Domain Admin 帳號的使用頻率,僅在需要的情境下以高權限操作。
2. 最小化高權限存取
- 最小權限原則:確保使用者只擁有其工作內容所需的最低權限,避免攻擊者取得一般使用者權限後仍能輕易橫向移動。
- 隔離重要服務:將關鍵系統(如 Domain Controller)與一般工作站分離,使用網段隔離與防火牆規則進行保護。
3. 加強 Event Log 與監控
- 啟用並收集 Windows 事件記錄:如「Security」記錄中有關登錄、登入失敗、權限變更等事件。
- 行為基線檢測:利用 SIEM (Security Information and Event Management) 或 EDR (Endpoint Detection & Response) 追蹤異常行為(如短時間內大量的認證失敗)。
- 及時回應警示:若發現可疑程序嘗試存取 LSASS(Local Security Authority Subsystem Service)或注入高權限,應立即追查原因。
4. 降低 Credential 存留風險
- 禁用 WDigest 明文儲存:在新版本 Windows 中已預設停用,可確保明文密碼不輕易被抓取。
- LSA Protection:啟用 LSA Protection,使部分敏感程序在受保護模式執行,讓 Mimikatz 無法直接讀取記憶體資訊。
- 定期檢查域控上的 KRBTGT:定期更新 KRBTGT 帳號密碼,以防止攻擊者長期利用 Golden Ticket。
Mimikatz 的常見誤解
- 只要部署防毒就能防堵 Mimikatz:防毒與 EDR 雖能發現並阻擋大部分已知的 Mimikatz 執行檔,但仍可能被修改版或記憶體層級的攻擊手法繞過。
- Mimikatz 只用於惡意行為:實際上,Mimikatz 在合法且合規的滲透測試與資安評估中扮演重要角色,也是一種驗證企業/組織防禦能力的重要工具。
建議的練習方法
若你是資安領域的初學者,建議在合法且受控的「實驗室環境」中進行 Mimikatz 操作練習:
- 虛擬機器環境:使用 VirtualBox 或 VMware 模擬多台 Windows 主機,包含一台模擬 Domain Controller 與幾台工作站。
- 設定不同層級的帳號:從一般使用者、Power User 到 Domain Admin,模擬真實企業網路的權限配置。
- 實際使用常見指令:嘗試
sekurlsa::logonpasswords
、lsadump::sam
、sekurlsa::tickets
等,觀察系統回傳的資訊。 - 評估防禦成效:搭配防毒軟體或 EDR,記錄是否能偵測或阻擋 Mimikatz,了解安全產品的覆蓋程度與限制。
結語
Mimikatz 是資安領域裡不可或缺的滲透測試與研究工具,藉由深入了解並掌握其原理及運作方式,不僅能幫助我們在合法授權的情境下挖掘更多安全漏洞,也能促使我們更加謹慎地部署與管理 Windows 環境。面對可能的高階攻擊手法,落實帳號管理、權限控管及事件日誌分析,才能持續維護企業與組織的資訊安全。
延伸閱讀與參考資源
提醒:請在合法授權與合約範圍內使用本工具,切勿於未經許可的系統上進行任何操作。違法滲透與情報竊取將有可能觸犯相關法律規範。