
什麼是 Mimikatz?
Mimikatz 是一種用於竊取憑證的強大工具。了解其運作方式,並探索防禦其使用的策略。

Mimikatz 是一種用於從 Windows 系統擷取憑證的強大工具。本指南將探討 Mimikatz 的運作方式、其能力,以及它對組織帶來的風險。
了解偵測與防止 Mimikatz 攻擊的策略。理解 Mimikatz 對於組織保護其系統免受憑證竊取至關重要。 在這篇文章中,我們將探討 mimikatz 是什麼、它如何被使用、為何它至今仍然有效,以及如何成功保護端點免受其侵害。

什麼是 Mimikatz?
Mimikatz 是一種常被 駭客 和安全專業人員用來從系統記憶體中擷取敏感資訊(例如密碼和憑證)的工具。它通常用於未經授權存取網路、系統或應用程式,或執行其他惡意活動,例如權限提升或在網路內進行 橫向移動。
Mimikatz 可依攻擊者的目標與意圖以各種方式使用。例如,它可用於:
- 從系統記憶體中擷取密碼與憑證,讓攻擊者得以存取網路、系統或應用程式。
- 透過竊取並使用遭竊憑證,繞過驗證機制,例如 多重要素驗證。
- 在系統上提升權限,讓攻擊者得以存取敏感資料或執行其他惡意行為。
- 在網路內進行橫向移動,讓攻擊者得以存取其他系統或網路。
總體而言,Mimikatz 是一種強大的工具,攻擊者可利用它未經授權存取網路、系統與應用程式,並執行其他惡意活動。
mimikatz 工具最早於 2007 年由 Benjamin Delpy 開發。那麼,為什麼我們今天要撰寫關於 mimikatz 的內容?原因很簡單,因為它仍然有效。不僅如此,多年來 mimikatz 已逐漸商品化,並在多個方面擴展與改進。
The 官方版本 仍持續維護並託管於 GitHub 上,撰寫本文時的目前版本為 2.2.0 20190813。除此之外,它也被納入其他數個熱門的後滲透框架與工具中,例如 Metasploit、Cobalt Strike、Empire、PowerSploit 等。

這些工具大幅簡化了透過 RAM、雜湊傾印、Kerberos 利用,以及 pass-the-ticket 和 pass-the-hash 技術來取得 Windows 憑證集(以及後續橫向移動)的流程。

Mimikatz 由多個模組組成,分別針對核心功能或不同的攻擊向量而設計。其中一些較常見或常用的 模組 包括:
- Crypto
- 對 CryptoAPI 功能的操作。 提供權杖模擬、修補舊版 CryptoAPI
- Kerberos
- 透過 Microsoft Kerberos API 建立「Golden Ticket」
- Lsadump
- 處理對 SAM(Security Account Managers)資料庫的操作。 這可用於執行中的系統,或對備份 hive 複本進行「離線」操作。這些模組可透過 LM Hash 或 NTLM 存取密碼。
- Process
- 列出執行中的程序(對於樞紐移動可能很有幫助)
- Sekurlsa
- 處理從 LSASS(Local Security Authority Subsystem Service)擷取資料。這包括票證、PIN 碼、金鑰和密碼。
- Standard
- 工具的主要模組。處理基本命令與操作
- 權杖
- 情境探索與有限操控
MimiKatz 在 Windows 10 上仍然有效嗎?
是的,仍然有效。Microsoft 為抑制此工具實用性所做的嘗試一直都是暫時且未成功的。該工具持續開發與更新,使其功能得以突破任何基於作業系統的權宜修補措施。
最初,mimikatz 專注於利用 WDigest。在 2013 年之前,Windows 會將加密密碼載入記憶體,以及這些密碼的解密金鑰。Mimikatz 簡化了從記憶體擷取這些配對的流程,進而揭露認證資料集。
隨著時間推移,Microsoft 已對作業系統進行調整,並修正部分讓 mimikatz 得以運作的弱點,但此工具始終跟上這些變更並相應調整。較近期而言,mimikatz 已修復在 Windows 10 1809 之後受損的模組,例如 sekurlsa::logonpasswords。

Mimikatz 同時支援 64 位元 x64 與 32 位元 x86 架構,並提供不同版本。其中一個讓 mimikatz 如此危險的原因,是它能夠將 mimikatz DLL 以反射方式載入記憶體。 當與 PowerShell(例如 Invoke-Mimikatz)或類似方法結合時,攻擊即可在完全不寫入磁碟的情況下執行。
了解我們的 Singularity™ Platform 如何偵測並防止像 Mimikatz 這樣的攻擊。
如今 Mimikatz 的使用有多廣泛?
許多知名威脅會直接捆綁 mimikatz,或利用其實作來擷取認證資料,或僅透過已發現的認證資料集進行擴散。NotPetya 和 BadRabbit 是兩個重大範例,但較近期而言,Trickbot 包含其自身對基本認證竊取與橫向移動的實作。
若要從另一個角度了解 mimikatz 在真實世界攻擊中的普遍程度,只需看看 MITRE 即可。雖然這份清單並不完整,但它能很好地說明有多少成熟的攻擊者(亦即 APT groups)正在使用此工具。這份清單可說是涉及 advanced targeted attacks 的可怕威脅行為者真實「名人錄」:Oilrig、APT28、Lazarus、Cobalt Group、Turla、Carbanak、FIN6 與 APT21,僅列舉其中幾個。

所有這些群體都會發展自己的方式來呼叫/注入 mimikatz,以確保攻擊成功,並規避可能阻礙其行動的 endpoint security 控制。
尤其是 Cobalt Group,是一個很好的關注焦點,因為他們的名稱來自於使用 Cobalt Strike 工具。Cobalt Strike 是一款協作式紅隊與對手模擬工具。如上所述,mimikatz 被納入為核心功能。更令人擔憂的是,能夠從任何已注入 Cobalt Strike beacon 酬載且符合情境的程序中,直接在記憶體內呼叫 mimikatz。再次強調,這種「fileless」攻擊可避免任何磁碟讀寫,但也能繞過許多無法正確監控非常特定作業系統事件/活動的現代「次世代」產品。
Mimikatz 能擊敗端點安全軟體嗎?
如果作業系統無法跟上,第三方安全解決方案能否防禦 mimikatz 攻擊?這取決於情況。mimikatz 工具對傳統端點安全控制(亦即 legacy AV)以及某些「次世代」工具構成挑戰。如上所述,如果它們未監控記憶體中的行為,或未監控特定行為與事件,就根本無法看見或阻止這類攻擊。
還應注意的是,mimikatz 需要目標主機上的 Administrator 或 SYSTEM 層級權限。 這要求攻擊者注入具有適當高權限內容的程序,或找到提升權限的方法,以繞過某些 AV 軟體解決方案,特別是當這些解決方案傾向於對允許清單的「受信任」OS 程序。
了解 SentinelOne’s Endpoint Security 防護如何即時阻擋像 Mimikatz 這類憑證竊取工具。
如何成功防禦 Mimikatz
如這個實際案例研究所示,SentinelOne 的靜態與行為式 AI 方法可針對 mimikatz 的使用提供強大的預防與防護。即使直接注入記憶體中,無論來源為何,SentinelOne 都能夠觀察、攔截並防止該行為。然而,更重要的是,因此我們也能防止 mimikatz 可能造成的損害。由於 mimikatz 無法規避 SentinelOne 裝置端代理程式,因此可避免關鍵憑證、資料,以及最終時間與金錢的損失。
SentinelOne 可阻止 mimikatz 從受保護裝置擷取憑證。除了其他內建防護之外,我們還新增了一種機制,無論原則設定為何,都不允許讀取密碼。

Get Deeper Threat Intelligence
See how the SentinelOne threat-hunting service WatchTower can surface greater insights and help you outpace attacks.
結論
這裡的重點在於,mimikatz 幾乎已成為現代對手工具組中無所不在的一部分。它被用於各種成熟度層級,並針對各類型與各種分類的目標。儘管該工具組是在 12 多年前開發的,但它仍持續有效並不斷改進,同樣地,mimikatz 也持續對老舊與傳統的端點防護技術構成挑戰。
SentinelOne 提供同級最佳解決方案,透過行為式 AI 與 Active EDR,全面處理所有以 mimikatz 為核心的攻擊面向。 在當今的威脅情勢中,自主式端點偵測與回應無可取代。
MITRE ATT&CK IOCs
Mimikatz {S0002}
帳戶操縱 {T1098}
憑證傾印 {T1003}
Pass The Hash {T1075}
Pass The Ticket {T1097}
私密金鑰 {T1145}
安全性支援提供者 {T1101}
Cobalt Strike {S0154}
Mimikatz 常見問題
Mimikatz 是最廣泛使用且下載量最高的威脅行為者工具之一,最初由 Benjamin Delpy 作為概念驗證而建立。它是全球最強大的密碼竊取工具之一,駭客會使用此工具滲透網路。
您需要以系統管理員身分執行 Mimikatz,才能正確使用它。目前有 2 個版本可用——32bit 和 64bit。Mimikatz 中的 sekurlsa 模組可讓使用者從記憶體中傾印密碼。cryptomodule 可存取 Windows 中的 CryptoAPI,並列出及匯出憑證與私密金鑰。Kerberos API 可透過 Mimikatz 的 Kerberos 模組存取,並可用於擷取及操作 Kerberos 票證。
您可以透過 PowerShell 指令碼區塊記錄來偵測 Mimikatz,方法是監控特定命令,例如「mimikatz」、「sekurlsa::pth」或「kerberos::ptt」。尋找使用 dbgcore.dll 或 dbghelp.dll 的 LSASS 記憶體傾印。監控對 lsass.exe 的異常程序存取,並檢查可疑的 PowerShell 活動。如果您已部署 SentinelOne,它可以自動偵測並封鎖 Mimikatz 程序。您也應留意認證傾印嘗試與異常的驗證模式。
它不是病毒。然而,Mimikatz 是一種會竊取密碼和使用者認證資訊的開源惡意軟體程式。您也可以稱它為 hacktool。
如果您將 Mimikatz 用於滲透測試和安全研究,那麼是合法的。但如果您未經授權使用它來竊取密碼,則屬於非法,本質上是犯罪行為。許多組織對其使用有明確政策,並要求在部署前取得適當授權。
變更您的管理員權限與快取原則。關閉偵錯權限並提升本機安全性授權機制。設定額外的 LSA 組態項目,以降低組織的攻擊面。若要啟用安全性記錄與監控,您可以使用 SentinelOne。這將有助於您攔截密碼竊取嘗試,並防止認證資訊遭到蒐集與竊取。



