免杀简单介绍
免杀,指的是一种能使病毒木马免于被杀毒软件查杀的技术。
当前不论是个人PC还是服务器都有杀软,如个人PCwindows操作系统自带的 Windows defend与服务器上的各种杀软。如果在没有漏洞的目标,社工钓鱼也是需要进行免杀的。所以免杀是安全人员必备技能,到后渗透阶段一定要有好的免杀思路来支持。
一、免杀的分类
1.1 静态免杀
比如你在文件上传漏洞上上传了一段木马到服务器,服务中的杀软识别出该木马的特征后判定为病毒,就直接将木马删除掉。
1.2 流量免杀
杀软数据库中记录了知名远控木马的通讯特征,同时有些霸道的杀软会直接BAN掉你服务器,只要和你服务器进行通讯就会被查杀。
1.3 内存免杀
杀软数据库中记录了知名远控木马的内存运行特征,如果木马在静态杀毒中不会被查杀,当你执行木马的远程下载反射到内存中时会被杀软捕捉到特征,将特征匹配的木马进行隔离或删除。
1.4 动态免杀(难点)
就算上述三种免杀都绕过后,但是在执行一些敏感行为,比如添加自启动,计划任务、开启远程端口也会被杀软发现,如果频率低一点可能会被拦截,如果你高频敏感行为,杀软会对该行为进行重点标记。
二、免杀语言分类
2.1 编译型语言
编译型语言要求使用编译器一次性将所有源代码编译为一个可执行程序,一次编译可以重复执行。代表的语言有C、C++、Golang、汇编等。
编译型语言一般不能跨平台
编译出来的只执行程序不能跨平台:因为不同操作系统对可执行文件有着不同的要求,彼此之间不能兼容。
源代码不能跨平台:不同操作系统下的函数、变量、api等可能会有不同。
2.2 解释型语言
解释型语言是使用解释器一边执行一边转换,用到些源代码就转换哪些,不会生成可执行程序。代表语言有JavaScript、Python、PHP、Shell等。
三、免杀方法
3.1 修改特征码
这个就是猜测杀软对哪几个字节进行查杀,再对应修改,现在几乎没啥人使用了,就算能用也是一次性的东西,意义不大。
3.2 shellcode加载器(当前主流)
目前shellcode加载器是主流的方法,只要简单的加密shellcode执行就能绕过一些杀软。简单可以分为加载到内存的方式和加密方式。
3.3 反射dll加载
反射dll加载主要是用在老远控如:灰鸽子,来代替shellcode做的工作。这个方法就是把dll加密,远程下载到内存中再解密执行,之后的流量免杀和内存免杀就需要修改源码了。这里必须说一句CobaltStrike的强大,它可以自定义流量和内存从而绕过杀软。
来源地址:https://blog.csdn.net/qq_38675102/article/details/128569675