20145304 Exp3 免杀原理与实践
20145304 Exp3 免杀原理与实践
基础问题回答
(1)杀软是如何检测出恶意代码的?
- 检验特征码,包含特征码的代码会被杀软认为是恶意代码,例如一些常用恶意代码加壳后就有一个固定的代码会被认为是特征码。
- 启发式恶意代码检测,做了不该做的事情,则有可能被认为是恶意软件。
- 基于行为的恶意软件检测,根据软件的行为来判断该软件是否为恶意软件。
(2)免杀是做什么?
- 使恶意代码不被杀软检测到。
(3)免杀的基本方法有哪些?
- 改变特征码。
- 改变行为。
实践总结与体会
这次的实验使我认识到,知识越多认识越深,上星期对杀软和防火墙的信赖倒塌了一半,我们按照一定的方法步骤操作一些现成的软件便可以制造出杀软和防火墙都无法识别的恶意代码,制造病毒与杀毒相互促进、共同发展。及时更新病毒库很有必要。
此次实验中恶意代码程序都是我们自己运行的,但现实生活中,很多恶意代码都可自运行,新型病毒查杀较为困难,需要一定的时间,所以,我们应从根源避免自己遭受恶意代码的攻击,养成良好的上网习惯,及时更新病毒库。
离实战还缺些什么技术或步骤?
感觉离实战还有很大的距离,首先,我们的病毒需要人为的启动,而用户是不会轻易帮助你进行这一步的,所以我们的病毒中需要一些自启动的代码,其次,我们的病毒没有传播性,只能单一的感染某个特定的主机。目前我们所做到的只是攻击者与被攻击者之间相互配合的恶意代码,如果要做到病毒的自启动,自我复制等功能,需在代码上加以完善,这样有被杀软通过行为查杀的风险,所以需要做的还有很多。
实践过程记录
理解免杀技术原理
免杀技术是能使病毒木马避免被免杀软件查杀的技术。做免杀,应了解杀毒软件是依据什么来判断代码是否为恶意代码,所谓“知己知彼,百战不殆”。恶意软件的检测可基于其特征码、基于其行为以及启发式检测。基于这些,我们可以通过加壳、编码器编码、用其他语言重写再编译来改变其特征码,也可使用反弹式连接、隧道或加密等技术来改变其行为,实现免杀。
正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
使用msf编码器
使用msf编码器生成一个后门。

放到http://www.virscan.org检测,结果是39款杀毒软件中有21款杀毒软件认为其为恶意代码。

编码1次。

编码15次。

对比结果,39款杀毒软件中有20款杀毒软件认为其为恶意代码,结果证明多编码几次对baidusd这款杀毒软件是有用的。


veil-evasion
打开veil-evasion软件,按提示一步步操作。

结果显示39款软件中有10款认为其为恶意代码,

C语言调用Shellcode
在Kali下生成一个C语言格式的shellcode数组,回连的IP为Kali的IP,端口自定。

用VC6.0照模板生成一个可运行文件。

- Kali下进入MSF监听。
在win下运行上诉生成的文件,查看结果。

360安全卫士提示有木马运行。

在http://www.virscan.org检测,显示安全,该网站很多病毒库许久未更新,结果不是很可靠。

通过组合应用各种技术实现恶意代码免杀
逆序修改shellcode并进行实测
- 参考高其同学的博客,对shellcode代码进行逆序处理。
- 实测结果如图
电脑杀毒软件为:360安全卫士 版本为11 备用木马库为:2017-03-23

20145304 Exp3 免杀原理与实践的更多相关文章
- 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...
- 2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...
- 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...
- 2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践 实验内容(概要) 一.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...
- 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践
- 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践 - 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...
- 2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践
2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...
- 2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...
- 2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践 一.实验说明 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),vei ...
随机推荐
- SQL Fundamentals || 多表查询(内连接,外连接(LEFT|RIGHT|FULL OUTER JOIN),自身关联,ON,USING,集合运算UNION)
SQL Fundamentals || Oracle SQL语言 一.多表查询基本语法 在进行多表连接查询的时候,由于数据库内部的处理机制,会产生一些“无用”的数据,而这些数据就称为笛卡尔积. 多表查 ...
- CCCC L2-022. 重排链表
题解:直接list模拟,头尾两个指针,分别将头尾元素push到另一个list里面,输处输入方式同上一篇 坑:第一发卡了第二个样例,第二发卡了第4个,莫名其妙,所以把两个代码合起来,然后强行ac了. # ...
- 源码 ServerParameter
总结 1. 服务器参数类型和设置时刻 https://github.com/mongodb/mongo/blob/master/src/mongo/db/server_parameters.h // ...
- a loosely strongly typed language
JavaScript: The Definitive Guide, Sixth Edition by David Flanagan As explained above, the following ...
- iOS多线程编程之GCD介绍(转载)
一.简单介绍 1.什么是GCD? 全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 纯C语言,提供了非常多强大的函数 2.GCD的优势 GCD是苹果公司为多核的并行运算提 ...
- UITableView _endCellAnimationsWithContext崩溃
http://www.cocoachina.com/bbs/read.php?tid-315222.html 删除cell之前先把数据源也删除一条,直接删除cell会崩溃 下面是正确的姿势: cell ...
- 360电影主页和详情页爬去入Mysql库链表读取--lowbiprogrammer
import requests,os,jsonfrom lxml import etreefrom pymysql import *class Movie(object):def __init__(s ...
- ICMP报文
类型:表示ICMP消息类型 代码:表示同一消息的不同信息 其他是时间戳或者标识符及序列号 类型 编码 描述 0 0 Echo Reply 3 0 网络不可达 3 1 主机不可达 3 2 协议不可达 ...
- js-jquery-数组遍历
一.原生方法支持 1.普通for循环 for(j = 0; j < arr.length; j++) { } 说明:性能很高,但是仍可以优化. 2.优化版for循环[推荐] for(j = 0, ...
- 非受限联合体 - 现代C++新特性总结
非受限联合体 非受限联合体:C++98中并不是所有数据类型都能够成为union的数据成员,不允许联合体拥有非POD(Plain Old Data).静态或引用类型的成员. C++11中取消了联合体对于 ...