使用shellcode打造MSF免殺payload及shellcode載入技術
阿新 • • 發佈:2019-02-03
0x00 前言
經常有同學提及MSF payload的免殺問題,其實除了Veil之處,還有另一種比較輕巧的方案可以打造免殺的payload,那就是shellcode。
0x01 從哪裡開始
shellcode是什麼,可以去drops搜尋學習,但這並不是本文的重點。因為MSF已經為我們提供了shellcode的生成功能,接下來我們就拿最常用的payload:reverse_tcp來做測試吧!(其它的payload均可以)
CobaltStrike:payload>windows>meterpreter>reverse_tcp設定選項如下:監聽9527埠。
接下來以同樣的方式生成c格式的payload,開啟payload檢視:
沒錯,你看到的是shellcode,那麼如何編譯成我們需要的exe呢?
0x02 如何執行shellcode
經過一番搜尋,大致得到了這麼幾種執行shellcode的方法(c語言,其它語言執行shellcode的方法可自己去尋找)
1:
2:
3:
4:
5:
6:
7:
8:
使用vc6預設的Debug方式編譯cpp程式碼,得到8個payload:
分別使用360安全衛士(開啟QVM及小紅傘引擎,最新病毒庫)和360防毒掃描:
看起來,免殺是沒有問題了,那麼這些shellcode是否能正常執行呢?執行生成的8個exe測試下連線效果:
0x03 總結
實際測試過程中發現,減小exe的體積會增加被查殺的風險,使用預設的編譯選項即可完美兔殺!
不同的編譯器編譯生成的exe免殺效果也不同哦!
經常有同學提及MSF payload的免殺問題,其實除了Veil之處,還有另一種比較輕巧的方案可以打造免殺的payload,那就是shellcode。
0x01 從哪裡開始
shellcode是什麼,可以去drops搜尋學習,但這並不是本文的重點。因為MSF已經為我們提供了shellcode的生成功能,接下來我們就拿最常用的payload:reverse_tcp來做測試吧!(其它的payload均可以)
CobaltStrike:payload>windows>meterpreter>reverse_tcp設定選項如下:監聽9527埠。
接下來以同樣的方式生成c格式的payload,開啟payload檢視:
沒錯,你看到的是shellcode,那麼如何編譯成我們需要的exe呢?
0x02 如何執行shellcode
經過一番搜尋,大致得到了這麼幾種執行shellcode的方法(c語言,其它語言執行shellcode的方法可自己去尋找)
1:
2:
3:
4:
5:
6:
7:
8:
使用vc6預設的Debug方式編譯cpp程式碼,得到8個payload:
分別使用360安全衛士(開啟QVM及小紅傘引擎,最新病毒庫)和360防毒掃描:
看起來,免殺是沒有問題了,那麼這些shellcode是否能正常執行呢?執行生成的8個exe測試下連線效果:
0x03 總結
實際測試過程中發現,減小exe的體積會增加被查殺的風險,使用預設的編譯選項即可完美兔殺!
不同的編譯器編譯生成的exe免殺效果也不同哦!