远控免杀专题1---基础篇

0x01 免杀概念

免杀,也就是反病毒与反间谍的对立面,英文为Anti-AntiVirus(简写 Virus AV),逐字翻译就是反-反病毒,翻译为反病毒技术。

0x02 杀毒软件检测方法

1、扫描结束

  • 扫描压缩包技术:即是对压缩包案和封装文件做分析检查的技术
  • 程序窜改技术:即是避免恶意程序借由删除杀毒侦测程序而大肆破坏电脑
  • 修复技术:即是对恶意程序所损坏的文件进行还原
  • 急救盘杀毒:利用空白U盘制作急救启动盘,来检测电脑病毒
  • 智能扫描:扫描最常用的磁盘,系统关键位置,耗时较短。
  • 全盘扫描:扫描电脑全部磁盘,耗时较长
  • 勒索软件防护:保护电脑中的文件不被黑客恶意加密
  • 开机扫描:当电脑开机时自动进行扫描,可以扫描压缩文档和可能不需要的程序

2、监控技术

  • 内存监控:当发现内存中存在病毒的时候,就会主动报警;监控所有进程;监控读取到内存中的文件;监控读取到内存的网络数据。
  • 文件监控:当发现写到磁盘上的文件中存在病毒,或者是被病毒感染,就会主动报警。
  • 邮件监控:当发现电子邮件的附件存在病毒时进行拦截。
  • 网页防护:阻止网络攻击和不安全下载。
  • 行为防护:提醒用户可疑的应用程序行为。

3、扫描引擎

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

  • 文件特征码:对付病毒在文件中的存在方式:单一文件特征码、复合文件特征码(通过多处特征进行判断);
  • 内存特征码:对付病毒在内存中的存在方式:单一内存特征码、复合内存特征码
    优点:速度快,配备高性能的扫描引擎;准确率相对比较高,误杀操作相对较少;很少需要用户参与。
    缺点:采用病毒特征代码法的检测工具,面对不断出现的新病毒,必须不断更新病毒库的版本,否则检测工具便会老化,逐渐失去实用价值;病毒特征代码法对从未见过的新病毒,无法知道其特征代码,因而无法去检测新病毒;病毒特征码如果没有经过充分的检验,可能会出现误报,数据误删,系统破坏,给用户带来麻烦。

5、文件校验和法
对文件进行扫描后,可以将正常文件的内容,计算其校验和,将该校验和写入文件中或写入别的文件中保存;在文件使用过程中,定期地或每次使用文件前,检查文件现在内容算出的校验和与原来保存的校验和是否一致,因而可以发现文件是否感染病毒。

6、进程行为检测法(沙盒模式)
机制:通过对病毒多年的观察、研究,有一些行为是病毒的共同行为,而且比较特殊,在正常程序中,这些行为比较罕见。当程序运行时,监视其进程的各种行为,如果发现了病毒行为,立即报警。

优缺点:

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

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

7、主动防御技术
主动防御并不需要病毒特征码支持,只要杀毒软件能分析并扫描到目标程序的行为,并根据预先设定的规则,判定是否应该进行清除操作 主动防御本来想领先于病毒,让杀毒软件自己变成安全工程师来分析病毒,从而达到以不变应万变的境界。但是,计算机的智能总是在一系列的规则下诞生,而普通用户的技术水平达不到专业分析病毒的水平,两者之间的博弈将主动防御推上一个尴尬境地。

8、机器学习识别技术
机器学习识别技术既可以做静态样本的二进制分析,又可以运用在沙箱动态行为分析当中,是为内容/行为+算法模式。伴随着深度学习的急速发展,各家厂商也开始尝试运用深度学习技术来识别病毒特征,如瀚思科技的基于深度学习的二进制恶意样本检测

0x03 免杀技术介绍

1、修改特征码
免杀的最基本思想就是破坏特征,这个特征有可能是特征码,有可能是行为特征,只要破坏了病毒与木马所固有的特征,并保证其原有功能没有改变,一次免杀就能完成了。


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

就目前的反病毒技术来讲,更改特征码从而达到免杀的效果事实上包含着两种方式。
一种是改特征码,这也是免杀的最初方法。例如一个文件在某一个地址内有“灰鸽子上线成功!”这么一句话,表明它就是木马,只要将相应地址内的那句话改成别的就可以了,如果是无关痛痒的,直接将其删掉也未尝不可。
第二种是针对目前推出的校验和查杀技术提出的免杀思想,它的原理虽然仍是特征码,但是已经脱离纯粹意义上特征码的概念,不过万变不离其宗。其实校验和也是根据病毒文件中与众不同的区块计算出来的,如果一个文件某个特定区域的校验和符合病毒库中的特征,那么反病毒软件就会报警。所以如果想阻止反病毒软件报警,只要对病毒的特定区域进行一定的更改,就会使这一区域的校验和改变,从而达到欺骗反病毒软件的目的。

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

2、花指令免杀
花指令其实就是一段毫无意义的指令,也可以称之为垃圾指令。花指令是否存在对程序的执行结果没有影响,所以它存在的唯一目的就是阻止反汇编程序,或对反汇编设置障碍。

大多数反病毒软件是靠特征码来判断文件是否有毒的,而为了提高精度,现在的特征码都是在一定偏移量限制之内的,否则会对反病毒软件的效率产生严重的影响!而在黑客们为一个程序添加一段花指令之后,程序的部分偏移会受到影响,如果反病毒软件不能识别这段花指令,那么它检测特征码的偏移量会整体位移一段位置,自然也就无法正常检测木马了。

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

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

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

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

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

4、内存免杀

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

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

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

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

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

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

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

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

  • 加资源

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

  • 替换资源

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

  • 加签名

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

0x04 参考

很多内容参考了wikipedia和freebuf上Green_m和Anhkgg两位大佬的文章,在此表示感谢!想深入了解的可在访问下面链接。

免杀技术有一套:https://anhkgg.com/aanti-virus/

Meterpreter免杀及对抗分析:https://www.freebuf.com/sectool/157122.html

免杀艺术:https://www.4hou.com/technology/3853.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380306.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查询所有存储过程

--查询所有存储过程selectPr_Name as[存储过程], [参数]stuff((select,[Parameter]from( selectPr.Name asPr_Name,parameter.name Type.Name (convert(varchar(32),parameter.max_length))asParameter fromsys.procedures Pr leftjoinsys.parameters…

使用JavaScript中的示例编号MAX_VALUE属性

数字MAX_VALUE属性 (Number MAX_VALUE Property) MAX_VALUE Property is a Number property in JavaScript and it is used to get the maximum value of a number that is possible in JavaScript. MAX_VALUE属性是JavaScript中的Number属性,用于获取JavaScript中可…

文件复制器

文件复制器 2007.08.18.0地狱门神(F.R.C.)http://files.cnblogs.com/Rex/FileCopier.rar 本软件用于复制或更新一个文件夹中的文件到另一个文件夹中。 当你需要经常通过向移动硬盘复制文件来备份重要数据时,可能会遇到如下情况:(1)电脑USB接口过旧&#…

远控免杀专题2---msfvenom的隐藏参数

0x01 msfvenom简介 msfvenom是msfpayload和msfencode的结合体,与2015年6月8日取代了msfpayload和msfencode。在此之后,metasploit-framwork下面的msfpayload(载荷生成器),msfencoder(编码器)&a…

转载CSDN - 从程序员到HR——面试经验分享

CSDN博客一周热文推荐,为您总结回顾过去一周的CSDN博客热门文章,推荐优质的博客作者,分享精华文章和优质博客。 [1] 谭海燕:北漂之惠普H3C面试经历 上一篇讲到了《北漂之百度面试》,今天跟大家分享我在H3C的面试经历。…

ai系统架构_人工智能中的模糊逻辑系统架构

ai系统架构The Fuzzy Logic System is a system which uses Fuzzy logic for reasoning. Fuzzy Logic is a very efficient method for performing human-like reasoning in conditions with uncertainty. 模糊逻辑系统是使用模糊逻辑进行推理的系统。 模糊逻辑是一种在不确定条…

魔力宝贝 服务器状态,魔力宝贝服务端standenemy的参数

格式:encount A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|A是触发战斗类型,这个参数主要用在StandEnemy的NPC参数里面,EventNPC脚本触发战斗有局限。这里详细解释下:触发战斗有2种方法:一种走着撞上去,一种站在…

Firefox中国即将成立,希望在华推行Web标准

Mozilla的首席技术官(vp engineering)Mike Schroepfer给Firefox的粉丝们带来一个好消息:Firefox在中国的负责人李宫昨日接到总部正式通知,将在中国成立公司.Mike称:“公司将设立在清华科技园,在Google、微软的旁边,不过一开始规模不会大,只有几个人.李宫将负责招兵买马.实际上,…

字母小游戏

描述 给你一个乱序的字符串,里面包含有小写字母(a–z)以及一些特殊符号,请你找出所给字符串里面所有的小写字母的个数, 拿这个数对26取余,输出取余后的数字在子母表中对应的小写字母(0对应z,1对应a,2对应b….25对应y)。 输入 第…

缅怀过去

这么多年再不会为你隐忍地哭泣再不会在深夜里独自缅怀我们青涩的年华再不会在伤害你之后把自己伤痕累累却仍然小心翼翼地藏着再不会为过去的你掉眼泪一切都已经成为过去 在你很久没有想我之后我也很久不再去想起你忘却只是唯一逃生的路因为太依赖我们之间真的只能如此了吗忙碌成…

远控免杀专题3---msf自免杀

0x01 免杀能力一览表 上面表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。由于本机测试时只是安装了360全家桶和火绒,所以默认情…

苹果手机的计算机删除了怎么恢复,苹果手机电话删除了怎么恢复

在清理手机通讯录的时候,万一不小心误删了手机通讯录,怎么办。那么被删除的手机通讯录还能找回吗?答案是可以的,苹果手机通讯录删除了怎么恢复呢。苹果手机电话删除了怎么恢复一、从iCloud恢复步骤1、打开【设置】-【Apple ID】-【iCloud】&…

php字符串反转函数_PHP | 反转给定的字符串而不使用库函数

php字符串反转函数Given a string and we have to reverse it without using a library function. 给定一个字符串,我们必须不使用库函数而将其反转。 Example: 例: Input: "Hello world!"Output: "!dlrow olleH"Input: "Wel…

boost::regex学习(2)

四:regex_match例子代码学习1 我们经常会看一个字符串是不是合法的IP地址,合法的IP地址需要符合以下这个特征:xxx.xxx.xxx.xxx 其中xxx是不超过255的整数正则表达式找到上面的这种形式的字符串相当容易,只是判断xxx是否超过255就比…

C++ 随机数

#include < iostream> #include < ctime> #include < cstdlib> using namespace std; int main () { int i,j; // 设置种子 srand( (unsigned)time( NULL ) ); /* 生成 10 个随机数 */ for( i 0; i < 10; i ) { // 生成实际的随机数 j rand…

远控免杀4---Evasion免杀

0x01 免杀能力一览表 1、下表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。3、由于本机测试时只是安装了360全家桶和火绒&#xff0c;所以…

微内核和宏内核的区别_8086微处理器中的过程和宏之间的区别

微内核和宏内核的区别Prerequisite 先决条件 Procedure in 8086 Microprocessor 8086微处理器中的过程 Macros in 8086 Microprocessor 8086微处理器中的宏 过程和宏之间的区别 (Differences between Procedures and Macros ) CharacteristicProcedureMacroNumber of Instruct…

对决

描述 Topcoder 招进来了 n 个新同学&#xff0c;Yougth计划把这个n个同学分成两组&#xff0c;要求每组中每个人必须跟另一组中每个同学进行一次算法对决&#xff0c;问存不存在一种分组方式在k场完成对决。&#xff08;两组中每一组中人数都要大于0&#xff09; //注意&…

我的世界方块云服务器bug,我的世界:两个方块能无限刷经验?这装置太BUG了

在我的世界中&#xff0c;刷经验是一种很常见的事情&#xff0c;不过以往的刷经验机&#xff0c;常常需要建造刷怪塔刷怪&#xff0c;不仅麻烦&#xff0c;工程量大&#xff0c;怪物积累多了还会造成卡顿&#xff0c;非常不方便。但是随着我的世界更新了火炉这种物品之后&#…

远控免杀5---Veil免杀

0x01 免杀能力一览表 1、下表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。3、由于本机测试时只是安装了360全家桶和火绒&#xff0c;所以…