<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tools/12754

            原文地址:https://adsecurity.org/?page_id=1821
            原文作者:Sean Metcalf

            譯者注:
            由于原文中,作者(Sean Metcalf)已經明確的指出 “未經本文作者明確的書面同意,請勿復制包含在此頁面的全部或部分內容。”,因此為了分享此佳作,譯者與作者(Sean Metcalf)在推上取得了聯系,溝通之后,作者允許我將此文完整翻譯并分享給其他人。在此也感謝 Sean Metcalf 大牛將有關 Mimikatz 的全部內容做了系統的整理并分享出來。以下是原文作者(Sean Metcalf)回復的截圖,以作授權說明:

            p1

            Mimikatz 作為當下內網滲透神器之一,看起來似乎很少有人真正關注它的全部功能(Sean Metcalf 在原文開頭也表示了這樣的疑惑),在一些諸如 “十大黑客工具” 的文章中也看不到 Mimikatz 的影子。 Sean Metcalf 大牛將有關 Mimikatz 的相關技術做了系統的整理,遂做粗糙翻譯并作分享。譯文難免有誤,望各位看官及時指正。

            此文是譯文的第三部分也是最后一部分。其余兩部分的譯文鏈接如下:

            0x00 最流行的 Mimikatz 命令


            下面就介紹一些最流行的 Mimikatz 命令及相關功能。

            0x01 Mimikatz 命令參考


            Mimikatz 的模塊如下:

            LSADUMP

            Mimikatz 的 LSADUMP 模塊用于與 Windows 本地安全驗證(Windows Local Security Authority )(LSA) 進程進行交互來提取憑證數據。這個模塊的大多數命令都需要 Debug 權限(privlege::debug) 或者是 SYSTEM 權限。默認情況下,管理員組(Administrators)擁有 Debug 權限,但是依舊需要運行“privilege::debug”進行激活。

            LSADUMP:Backupkeys

            需要管理員權限。

            p53

            LSADUMP::Cache

            需要管理員權限。

            獲取 SysKey 用于解密 NLKM 和 MSCache(v2)(來自注冊表或 hive 文件) 。

            p54

            LSADUMP::DCSync

            向 DC 發起同步一個對象(獲取帳戶的密碼數據)的質詢。

            需要域管理員,域管理員組或者自定義委派的一個成員權限

            在 2015 年八月, Mimikatz 加入了一個新的特性—— “DCSync”,可以有效地“假冒”一個域控制器,并可以向目標域控制器請求帳戶密碼數據。此功能是由Benjamin Delpy 和 Vincent Le Toux 一起編寫的。

            之前利用 DCSync 的攻擊方法是在域控制器上運行 Mimikatz 或 Invoke-Mimikatz 得到 KRBTGT 賬戶的密碼哈希創建黃金票證。如果使用適當的權限執行 Mimikatz 的 DCSync 功能,攻擊者就可以通過網絡遠程讀取域控制器的密碼哈希,以及以前的密碼的哈希,且無需交互式登錄或復制 Active Directory 的數據庫文件(NTDS.DIT)。

            運行 DCSync 所要求的特殊權限有管理員組(Administrators),域管理員組( Domain Admins)或企業管理員組(Enterprise Admins)以及域控制器計算機帳戶的任何成員都能夠運行 DCSync 去讀取密碼數據。需要注意的是只讀域控制器默認是不允許讀取用戶密碼數據的。

            DCSync 是何如工作的:

            我之前捕獲了一些域控制器復制數據的數據包,并確認了有關域控制器如何復制內部 DC 數據的通訊流。

            Samba Wiki 描述了 DSGetNCChanges 函數,如下:

            “當第一個得到的 AD 對象從第二個更新時,客戶端 DC 會向服務器發送 DSGetNCChanges 請求。響應的數據包含了一組客戶端必須應用到其 NC 副本的更新。

            當 DC 收到一個 DSReplicaSync 請求后,它會執行一個復制周期,去復制每一個它要復制的 DC (存儲在 RepsFrom 數據結構中),此時它的行為就像一個客戶端,會發送 DSGetNCChanges 請求到那個所要復制的 DC 去。所以它獲得了每個它所復制的 DC 的最新的 AD 對象。

            DCSync 選項:

            DCSync 命令行示例:

            拉取 rd.adsecurity.org 域中的 KRBTGT 用戶帳戶的密碼數據:

            #!bash
            Mimikatz "privilege::debug" "lsadump::dcsync /domain:rd.adsecurity.org /user:krbtgt" exit
            

            拉取 rd.adsecurity.org 域中的 Administrator 用戶帳戶的密碼數據:

            #!bash
            Mimikatz "privilege::debug" "lsadump::dcsync /domain:rd.adsecurity.org /user:Administrator" exit
            

            拉取 lab.adsecurity.org 域中 ADSDC03 域控制器的計算機帳戶的密碼數據:

            #!bash
            Mimikatz "privilege::debug" "lsadump::dcsync /domain:lab.adsecurity.org /user:adsdc03$" exit
            

            p2

            LSADUMP::LSA

            向 LSA Server 質詢檢索 SAM/AD 的數據(正常或未打補丁的情況下)。可以從 DC 或者是一個 lsass.dmp 的轉儲文件中導出所有的 Active Directory 域憑證數據。同樣也可以獲取指定帳戶的憑證,如 krbtgt 帳戶,使用 /name 參數,如:“/name:krbtgt”需要 Debug 或 SYSTEM 權限。

            通常,服務帳戶是域管理員組(或同等權限)的一個成員,或者是一個攻擊者導出憑證的最近登錄到計算機的域管理員用戶。使用這些憑證,一個攻擊者可以獲得DC的訪問權限并且能夠得到整個域的憑證,包括被用于創建 Kerberos 黃金票證的 KRBTGT 帳戶的 NTLM 哈希。

            命令行:mimikatz lsadump::lsa /inject exit

            在 DC 中執行此命令可以轉儲活動目錄中域的憑證數據。

            需要管理員權限(使用 DEBUG 權限即可)或者是 SYSTEM 權限。

            RID 為 502 的帳戶是 KRBTGT 帳戶,RID 為 500 的帳戶是默認的域管理員賬戶。

            p3

            下圖是運行 LSADUMP::lsa /patch 命令后只導出了 NTLM 密碼哈希的執行結果。

            p4

            LSADUMP::Rpdata

            LSADUMP::SAM – 獲得用于解密 SAM 項目(從注冊表或hive中獲取)數據的 Syskey。SAM 連接到了本地安全帳戶管理器(SAM)數據庫并且會轉儲本地帳戶的憑證數據。

            需要 SYSTEM 或 DEBUG 權限。

            它包含用戶密碼的 NTLM 和 一些 LM 哈希。此命令可以在兩種模式下工作,在線模式(使用 SYSTEM 的用戶或token)或者是離線模式(使用 SYSTEM & SAM hives數據 或備份數據)

            針對一個“在線”的 SAM 文件,需要管理員權限(使用 DEBUG 權限即可)或者本地 SYSTEM 權限。

            獲取一個模擬的 SYSTEM 令牌: Mimikatz “PRIVILEGE::Debug” “TOKEN:elevate”

            p5

            LSADUMP::Secrets – 獲取用于解密 SECRETS 項(從注冊表或hive數據中獲取)數據的 Syskey。

            需要 SYSTEM 或 DEBUG 權限。

            p6

            LSADUMP::Trust

            質詢 LSA 服務器檢索信任認證信息。

            需要 SYSTEM 或 DEBUG 權限。

            從活動目錄中已有的域信任關系中提取數據。信任的密鑰(密碼)也將會顯示出來。

            p7

            MISC

            Mimikatz 的 MISC 模塊是一個包含了一些相當不合適的其他的命令。

            在這個模塊中有幾個比較知名的命令,MISC::AddSID, MISC::MemSSP, and MISC::Skeleton

            MISC::AddSid – 將用戶賬戶添加到 SIDHistory 中。第一個值是目標賬戶,第二個值是賬戶/組名稱(或 SID)。

            需要 SYSTEM 或 DEBUG 。

            p8

            p9

            MISC::Cmd - 命令行提示(無 DisableCMD)。

            需要管理員權限。

            p10

            MISC::Detours – (實驗) 嘗試使用 Detours HOOK 列舉所有的模塊。

            需要管理員權限。

            p11

            MISC::MemSSP – 注入一個記錄本地身份認證憑證的惡意的 Windows SSP,通過在內存中對 LSASS 進程使用新的 SSP 進行補丁,此操作無需重啟,重啟會清除 Mimikatz 注入的 SSP。詳情請見《Mimikatz SSP 內存補丁以及更多 SSP 持久化技術》

            需要管理員權限。

            p12

            曼迪昂特對 MemSSP 的介紹

            MISC::Ncroutemon – Juniper 管理器 (無 DisableTaskMgr)
            MISC::Regedit – 注冊表編輯器 (無 DisableRegistryTools)

            需要管理員權限。

            p13

            MISC::Skeleton - 在 DC 上將 Skeleton 密鑰注入到 LSASS 進程中。

            需要管理員權限。

            此操作會對 DC 進行補丁,使得所有用戶將使用的 “主密碼” (又名萬能鑰匙)以及他們自己通常使用的密碼進行身份驗證。

            p14

            MISC::Taskmgr - 任務管理器(無 DisableTaskMgr)

            需要管理員權限。

            p15

            MISC::Wifi

            MINESWEEPER

            MINESWEEPER::Infos – 提供 minesweeper 的雷達信息。

            Net

            NET::User
            NET::Group
            NET::LocalGroup

            PRIVILEGE

            PRIVILEGE::Debug - 獲取 DEBUG 權限。(DEBUG 或 SYSTEM 權限是很多 Mimikatz 命令所需要的權限)

            默認情況下:管理員組擁有 DEBUG 權限。但是依舊需要使用 “privilege::debug” 命令進行激活。

            DEBUG 權限允許你對一個沒有其他方式接觸的進程進行調試。例如,一個擁有DEBUG權限的用戶進程的令牌可以對一個使用本地 SYSTEM 權限運行的服務進程調試。

            http://msdn.microsoft.com/library/windows/hardware/ff541528.aspx

            p16

            Benjamin 對此命令的備注信息:

            如果執行此命令出現ERROR kuhl_m_privilege_simple ; RtlAdjustPrivilege (20) c0000061 錯誤,可能你沒有使用管理員權限執行此命令。

            PROCESS

            Mimikatz 的 PROCESS 模塊提供了收集進程的數據和與進程進行交互的功能。

            PROCESS::Exports – 列出進程可執行文件的導出表

            p17

            PROCESS::Imports – 列出進程可執行文件的導入表

            p18

            PROCESS::List – 列出正在運行的進程。

            需要管理員權限。
            p19

            PROCESS::Resume - 恢復一個進程

            p20

            PROCESS::Start – 啟動一個進程
            PROCESS::Stop – 結束一個進程
            PROCESS::Suspend – 掛起一個進程

            p21

            SERVICE

            SERVICE::List – 列出所有服務
            SERVICE::Preshutdown – 預關掉服務
            SERVICE::Remove – 卸載服務
            SERVICE::Resume – 恢復服務
            SERVICE::Shutdown – 關掉服務
            SERVICE::Start – 啟動一個服務
            SERVICE::Stop – 停止服務
            SERVICE::Suspend – 掛起服務

            SEKURLSA

            Mimikatz 的 SEKURLSA 模塊提供了與被保護的內存進行交互的功能。此模塊能夠從 LSASS(本地安全認證子系統服務) 進程的內存中提取密碼,密鑰,pin 碼,票證。
            為了能夠與 LSASS 進程進行交互,Mimikatz 進程需要適當的權限:

            轉儲 LSASS 進程內存文件,不需要進程權限提升操作。

            SEKURLSA::Backupkeys - 獲得首選備份的主密鑰。

            p22

            SEKURLSA::Credman - 列出憑證管理器

            p23

            SEKURLSA::Dpapi – 列出已緩存的主密鑰

            p24

            SEKURLSA::DpapiSystem - 獲取 DPAPI_SYSTEM 密文

            p25

            SEKURLSA::Ekeys – 列出 Kerberos 加密密鑰

            ![p26][288]

            SEKURLSA::Kerberos – 列出所有已通過驗證的用戶(包括服務和計算機帳戶)的 Kerberos 憑證。

            p27

            SEKURLSA::Krbtgt - 獲取域 Kerberos 服務帳戶(KRBTGT)密碼數據

            p28

            SEKURLSA::LiveSSP – 列出 LiveSSP 憑證

            p29

            SEKURLSA::LogonPasswords – 列出所有可用的提供者的憑證數據。命令執行結果會顯示最近登陸的用戶和計算機的憑證。

            Windows Server 2008 R2 (顯示明文密碼)

            p30

            Windows Server 2012 R2 (未顯示明文密碼)

            p31

            同樣可以使用此命令將使用帳戶憑證運行的服務的憑證進行轉儲。需要注意的是,只有服務正在運行(運行后憑證才會存儲在內存中)才可以使用此方式進行轉儲。

            p32

            p33

            p34

            SEKURLSA::Minidump – 切換到“輕量級”轉儲 LSASS 進程上下文

            需要注意的是,Minidumps 是對相同的平臺上進行轉儲的數據進行讀取, NT5 Win32 or NT5x64 or NT6 Win32 or NT6 x64。

            p35

            SEKURLSA::MSV – 列出 LM 和 NTLM 憑證數據

            p36

            SEKURLSA::Process – 轉換到 LSASS 進程上下文

            p37

            SEKURLSA::Pth – Hash 傳遞, key 傳遞

            Mimikatz 可以執行眾所周知的“Hash 傳遞”,使用另一個用戶密碼的 NTLM 哈希上下文代替其真實的明文密碼運行一個進程。為此,它會啟動一個帶有假冒身份信息的進程,之后會替換假信息(假密碼的 NTLM 哈希)為真實的信息(真正的密碼的 NTLM 哈希)。

            p38

            Benjamin 對此命令的備注:

            Benjamin 發表了一篇關于密鑰傳遞的文章

            SEKURLSA::SSP - 列出 SSP 憑證。

            p39

            SEKURLSA::Tickets - 列出最近所有已經過身份驗證的用戶的可用的 Kerberos 票證,包括使用用戶帳戶的上下文運行的服務和本地計算機在 AD 中的計算機帳戶。

            與 kerberos::list 不同的是 sekurlsa 使用內存讀取的方式,它不會受到密鑰導出的限制。

            類似于從 LSASS 中轉儲憑證數據,利用 SEKURLSA 模塊,攻擊者可以獲取到所有在內存中的 Kerberos 票證數據,包括那些屬于管理員或服務的票證。

            如果攻擊者已經入侵了一臺使用 Kerberos 委派配置的 Web 服務器,在用戶訪問后端的 SQL 服務器時,這是非常有用的。這使得攻擊者能夠捕捉和重用該服務器上內存中的所有用戶的票證。

            Mimikatz 的 “kerberos::tickets” 命令可以轉儲當前已登陸的用戶的 Kerberos 票證并且不需要權限提升。利用 SEKURLSA 模塊的功能,可以讀取被保護的內存(LSASS),在系統中的所有的 Kerberos 票證均可以轉儲。

            命令:mimikatz sekurlsa::tickets exit

            下圖顯示了轉儲另外一個域管理員(LukeSkywalker)的密碼和Kerberos票證(TGS 和 TGT)。
            p40

            p41

            下圖顯示了轉儲另外一個域管理員(HanSolo)的密碼和Kerberos票證(TGS 和 TGT)。
            p42

            下圖顯示了轉儲一個 SQL 服務帳戶(svc-SQLDBEngine01)的密碼和Kerberos票證(TGS 和 TGT)。
            p43

            SEKURLSA::Trust – 獲取信任密鑰

            (我認為此命令已過時,可以使用 lsadump::trust /patch)

            SEKURLSA::TSPKG - 列出 TsPkg 憑證。

            p44

            SEKURLSA::Wdiget - 列出 Wdiget 憑證。

            p45

            STANDARD

            STANDARD::Base64 – 轉換輸出到 Base64 輸出
            STANDARD::CD – 改變或顯示當前文件夾
            STANDARD::CLS – 清屏
            STANDARD::Exit – 退出 Mimikatz
            STANDARD::Log – 記錄 Mimikatz 數據到日志文件中
            STANDARD::Sleep – 指定毫秒級的延時
            STANDARD::Version – 顯示版本信息

            TOKEN

            Mimikatz 的 Token 模塊能夠與 Windows 身份驗證令牌進行交互,包括抓取,偽造假冒的已存在的令牌。

            TOKEN::Elevate – 假冒令牌。用于提升權限至 SYSTEM 權限(默認)或者使用 Windows API 找到域管理員令牌。

            需要管理員權限。
            p46

            找到一個域管理員憑證并且使用該域管理員的令牌:

            token::elevate /domainadmin

            p47

            TOKEN::List - 列出系統中所有的令牌

            p48

            TOKEN::Revert - 恢復進程令牌

            p49

            TOKEN::Whoami – 顯示當前身份信息

            p50

            TS

            TS::Multirdp - (實驗) 補丁終端服務器服務允許多個用戶連接

            p51

            VAULT

            VAULT::List - 列出 Vault 憑證

            p52

            VAULT::Cred - cred

            原文所有權歸 Sean Metcalf (ADSecurity.org) 所有
            本文由 Her0in 翻譯并首發于烏云 drops,轉載請注明出處

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线