1、静态文件免杀
2、动态行为免杀
修改特征码
所谓特征码,就是防毒软件从病毒样本中提取的不超过 64 字节且能代表病毒特征的十六进制代码。主要有单一特征码、多重特征码和复合特征码这三种类型。既然杀毒软件在最开始时,使用了病毒特征码概念,那么我们可以通过修改病毒特征码的方式躲过杀软扫描。
花指令免杀
花指令免杀。花指令是设计者特意构思的,它最根本的思想就是希望在反汇编时出错,并为反病毒人员设下陷阱。而如果花指令可以成功保护软件真正代码不被轻易反汇编,那么对于反病毒软件来说,它所检测的自然也就不是木马文件中真正的内容了。花指令可能会用到各种指令:例如 jmp, call, ret 的一些堆栈技巧,位置运算等等。
加壳免杀
软件加壳其实也可以称为软件加密(或软件压缩),只是加密(或压缩)的方式与目的不一样罢了。壳就是软件所增加的保护,并不会破坏里面的程序结构,当我们运行这个加壳的程序时,系统首先会运行程序里的壳,然后由壳将加密的程序逐步还原到内存中,最后运行程序。
加壳虽然对于特征码绕过有非常好的效果,加密壳基本上可以把特征码全部掩盖,但是缺点也非常的明显,因为壳自己也有特征。在某些比较流氓的国产杀软的检测方式下,主流的壳如 VMP, Themida 等,一旦被检测到加壳直接弹框告诉你这玩意儿有问题,虽然很直接,但是还是挺有效的。有些情况下,有的常见版本的壳会被直接脱掉分析。
内存免杀
内存免杀技术大多数只需要使用 “ShellCode 加载器” 就可以达到很好的免杀效果,内存免杀后门大部分基于 “VirtualAlloc” 函数申请内存,使用 shellcode 加载器将 shellcode 直接加载进内存,避免文件落地就可以绕过文件扫描。
二次编译
metasploit 的 msfvenom 提供了多种格式的 payload 和 encoder,生成的 shellcode 也为二次加工提供了方便,但是也被各大厂商盯得死死的。
而 shikata_ga_nai 是 msf 中唯一 excellent 的编码器,这种多态编码技术使得每次生成的攻击载荷文件是不一样的,编码和解码也都是不一样。还可以利用管道进行多重编码进行免杀。
目前 msfvenom 的 encoder 特征基本都进入了杀软的漏洞库,很难实现单一 encoder 编码而绕过杀软,所以对 shellcode 进行进一步修改编译成了 msf 免杀的主流。互联网上有很多借助于 C、C#、python 等语言对 shellcode 进行二次编码从而达到免杀的效果。
资源修改
有些杀软会设置有扫描白名单,比如之前把程序图标替换为 360 安全卫士图标就能过 360 的查杀。
加资源
使用 ResHacker 对文件进行资源操作,找来多个正常软件,将它们的资源加入到自己软件,如图片,版本信息,对话框等。
替换资源
使用 ResHacker 替换无用的资源(Version 等)。
加签名
使用签名伪造工具,将正常软件的签名信息加入到自己软件中。