远控免杀专题--(一)--基础前置知识

远控免杀专题–(一)–基础前置知识

免杀概念

​ 免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对⽴⾯,英⽂为

Anti-AntiVirus(简写Virus AV),逐字翻译为“反-反病毒”,翻译为“反杀毒技术”。

杀毒软件的检测方式

特征码扫描

原理:将扫描信息与病毒数据库(即所谓的“病毒特征库”)进行对照,如果信息与其中的任何一个病毒特征符合,即判定该文件被病毒感染。杀毒软件在进⾏查杀的时候,会挑选⽂件内部的⼀段或者⼏段代码来作为他识别病毒的⽅式,这种代码就叫做病毒的特征码;在病毒样本中,抽取特征代码;抽取的代码⽐较特殊,不⼤可能与普通正常程序代码吻合;抽取的代码要有适当⻓度,⼀⽅⾯维持特征代码的唯⼀性,另⼀⽅⾯保证病毒扫描时候不要有太⼤的空间与时间的开销。

优点:速度快,准确率相对高,误杀的几率小

缺点:需要对特征库进行不断地迭代,针对特征码的提取位置,也有可能进行相对应的绕过操作,面对新出现的病毒,无法进行识别,因而无法检测新病毒;如果特征码没有经过充分检验,也会出现误报

文件校验和法

对⽂件进⾏扫描后,可以将正常⽂件的内容,计算其校验和,将该校验和写⼊⽂件中或写⼊别的⽂件中保存;在⽂件使⽤过程中,定期地或每次使⽤⽂件前,检查⽂件现在内容算出的校验和与原来保存的校验和是否⼀致,因⽽可以发现⽂件是否感染病毒。

进程行为监测

机制:通过对病毒多年的观察、研究,有⼀些⾏为是病毒的共同⾏为,⽽且⽐较特殊,在正常程序中,这些⾏为⽐较罕⻅,比如445端口进行频繁访问,比如大规模的访问修改文件内容。当程序运⾏时,监视其进程的各种⾏为,如果发现了病毒⾏为,⽴即报警。

优缺点:

1.优点:可发现未知病毒、可相当准确地预报未知的多数病毒;

2.缺点:可能误报警、不能识别病毒名称、有⼀定实现难度、需要更多的⽤户参与判断

主动防御技术

主动防御并不需要病毒特征码⽀持,只要杀毒软件能分析并扫描到⽬标程序的⾏为,并根据预先设定的规则,判定是否应该进⾏清除操作,其本质师通过行为来识别未知病毒的和变种。比如说文件操作,注册表操作,网络操作,进程操作,线程操作等行为。 主动防御本来想领先于病毒,让杀毒软件⾃⼰变成安全⼯程师来分析病毒,从⽽达到以不变应万变的境界。但是,计算机的智能总是在⼀系列的规则下诞⽣,⽽普通⽤户的技术⽔平达不到专业分析病毒的⽔平。

一般来说可以分为静态启发和动态启发两种:

  1. 静态启发技术指的是在静止状态下通过病毒的典型指令特征识别病毒的方法,是对传统特征码扫描的一种补充。在不运行病毒木马的情况下,进行简单的反汇编,查找、匹配是否出现病毒木马特定的指令或者API函数调用序列。
  2. 动态启发技术静态启发技术指的是在静止状态下通过病毒的典型指令特征识别病毒的方法,是对传统特征码扫描的一种补充。在不运行病毒木马的情况下,进行简单的反汇编,查找、匹配是否出现病毒木马特定的指令或者API函数调用序列

云查杀

有时候程序出现可疑行为,但不足以确定是病毒木马!为了降低误报率,提升用户体验,杀毒软件都会放行!所以,为了不放过任何一个病毒木马,补充主动防御地缺陷,“云查杀”应运而生!所谓云查杀就是把杀毒软件当作一个采集器,杀毒软件会把可疑文件上传到杀毒软件的服务器,如果文件太大,则会提取文件特征、行为特征进行上报,汇总到服务器。服务器可以分配更多资源、调用更多特征库进一步确认。这样可以及时的对病毒的特征库进行更新。

机器学习识别技术

机器学习识别技术既可以做静态样本的⼆进制分析,⼜可以运⽤在沙箱动态⾏为分析当中,是为内容/⾏为+算法模式。伴随着深度学习的急速发展,各家⼚商也开始尝试运⽤深度学习技术来识别病毒特征

常见的免杀技术

修改特征码

免杀的最基本思想就是破坏特征,这个特征有可能是特征码,有可能是⾏为特征,只要破坏了病毒与⽊⻢所固有的特征,并保证其原有功能没有改变,⼀次免杀就能完成了。

特征码:能识别一个程序是一个病毒的一段不大于64字节的特征串

就⽬前的反病毒技术来讲,更改特征码从⽽达到免杀的效果事实上包含着两种⽅

式。

  1. ⼀种是改特征码,这也是免杀的最初⽅法。例如⼀个⽂件在某⼀个地址内有“灰鸽⼦上线成功!”这么⼀句话,表明它就是⽊⻢,只要将相应地址内的那句话改成别的就可以了,如果是⽆关痛痒的,直接将其删掉也未尝不可。
  2. 第⼆种是针对⽬前推出的校验和查杀技术提出的免杀思想,它的原理虽然仍是特征码,但是已经脱离纯粹意义上特征码的概念,不过万变不离其宗。其实校验和也是根据病毒⽂件中与众不同的区块计算出来的,如果⼀个⽂件某个特定区域的校验和符合病毒库中的特征,那么反病毒软件就会报警。所以如果想阻⽌反病毒软件报警,只要对病毒的特定区域进⾏⼀定的更改,就会使这⼀区域的校验和改变,从⽽达到欺骗反病毒软件的⽬的。

修改特征码最重要的是定位特征码,但是定位了特征码修改后并不代表程序就能正常运⾏,费时费⼒,由于各个杀软⼚商的特征库不同,所以⼀般也只能对⼀类的杀软起效果。虽然效果不好,但有时候在没有源码的情况下可以⼀⽤。

花指令免杀

花指令其实就是⼀段毫⽆意义的指令,也可以称之为垃圾指令。花指令是否存在对程序的执⾏结果没有影响,所以它存在的唯⼀⽬的就是阻⽌反汇编程序,或对反汇编设置障碍。

⼤多数反病毒软件是靠特征码来判断⽂件是否有毒的,⽽为了提⾼精度,现在的特征码都是在⼀定偏移量限制之内的,否则会对反病毒软件的效率产⽣严重的影响!⽽在⿊客们为⼀个程序添加⼀段花指令之后,程序的部分偏移会受到影响,如果反病毒软件不能识别这段花指令,那么它检测特征码的偏移量会整体位移⼀段位置,⾃然也就⽆法正常检测⽊⻢了。

加壳免杀

​ 说起软件加壳,简单地说,软件加壳其实也可以称为软件加密(或软件压缩),只是加密(或压缩)的方式与目的不一样罢了。壳就是软件所增加的保护,并不会破坏里面的程序结构,当我们运行这个加壳的程序时,系统首先会运行程序里的壳,然后由壳将加密的程序逐步还原到内存中,最后运行程序。

​ 当我们运行这个加壳的程序时,系统首先会运行程序的“壳”,然后由壳将加密的程序逐步还原到内存中,最后运行程序。这样一来,在我们看来,似乎加壳之后的程序并没有什么变化,然而它却达到了加密的目的,这就是壳的作用。

​ 加壳虽然对于特征码绕过有非常好的效果,加密壳基本上可以把特征码全部掩盖,但是缺点也非常的明显,因为壳自己也有特征。在某些比较流氓的国产杀软的检测方式下,主流的壳如VMP, Themida等,一旦被检测到加壳直接弹框告诉你这玩意儿有问题,虽然很直接,但是还是挺有效的。有些情况下,有的常见版本的壳会被直接脱掉分析。

​ 面对这种情况可以考虑用一切冷门的加密壳,有时间精力的可以基于开源的压缩壳改一些源码,效果可能会很不错。

总得来说,加壳的方式来免杀还是比较实用的,特别是对于不开源的PE文件,通过加壳可以绕过很多特征码识别。

内存免杀

​ CPU不可能是为某一款加壳软件而特别设计的,因此某个软件被加壳后的可执行代码CPU是读不懂的。这就要求在执行外壳代码时,要先将原软件解密,并放到内存里,然后再通知CPU执行。

​ 因为杀毒软件的内存扫描原理与硬盘上的文件扫描原理都是一样的,都是通过特征码比对的,只不过为了制造迷惑性,大多数反病毒公司的内存扫描与文件扫描采用的不是同一套特征码,这就导致了一个病毒木马同时拥有两套特征码,必须要将它们全部破坏掉才能躲过反病毒软件的查杀。

因此,除了加壳外,黑客们对抗反病毒软件的基本思路没变。而对于加壳,只要加一个会混淆程序原有代码的“猛”壳,其实还是能躲过杀毒软件的查杀的。

二次编译

​ metasploit的msfvenom提供了多种格式的payload和encoder,生成的shellcode也为二次加工提供了很大遍历,但是也被各大厂商盯得死死的。

​ 而shikata_ga_nai是msf中唯一的评价是excellent的编码器,这种多态编码技术使得每次生成的攻击载荷文件是不一样的,编码和解码也都是不一样。还可以利用管道进行多重编码进行免杀。

​ 目前msfvenom的encoder特征基本都进入了杀软的漏洞库,很难实现单一encoder编码而绕过杀软,所以对shellcode进行进一步修改编译成了msf免杀的主流。互联网上有很多借助于C、C#、python等语言对shellcode进行二次编码从而达到免杀的效果。

分离免杀

​ payload分离免杀和webshell分离免杀,采用分离法,即将ShellCode和加载器分离。网上各种加载器代码也有很多,各种语言实现的都很容易找到,虽然看起来比较简单,但效果却是不错的。比如侯亮大神提到的shellcode_launcher,加载c代码,基本没有能查杀的AV。

资源修改

有些杀软会设置有扫描白名单,比如之前把程序图标替换为360安全卫士图标就能过360的查杀。

  1. 加资源

使用ResHacker对文件进行资源操作,找来多个正常软件,将它们的资源加入到自己软件,如图片,版本信息,对话框等。

  1. 替换资源

使用ResHacker替换无用的资源(Version等)。

  1. 加签名

使用签名伪造工具,将正常软件的签名信息加入到自己软件中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值