🌕写在前面
- 🍊博客主页:Scorpio_m7
- 🎉欢迎关注🔎点赞👍收藏⭐️留言📝
- 🌟本文由 Scorpio_m7原创,CSDN首发!
- 📆首发时间:🌹2021年11月10日🌹
- ✉️坚持和努力一定能换来诗与远方!
- 🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢感谢感谢!
常规免杀思路
静态查杀
模糊哈希算法又叫基于内容分割的分片分片哈希算法(context triggered piecewise hashing, CTPH),主要用于文件的相似性比较。
大致就可以理解为,不要把一个文件的所有内容都拿来计算hash,而通过分片,取出部分重要(不易改变)的内容进行hash计算,这样就能达到通过一个特征码找到类似的病毒变种。
手工修改
无源码
数据方面
- 字符串,如果不影响程序逻辑,可以替换大小写;无关紧要的数据,随意替换;
- 整数,如果不影响结果,替换值,清零等操作。
- 地址,基本不能修改。
- PE头数据,根据PE结构具体来看,无用数据清零或修改。
代码方面
- 等价替换汇编代码,如mov eax,0可以换成xor eax,eax,直接结果相同,二进制代码不同。
- 在不影响逻辑的情况下,交换代码顺序。
- 代码块移位,将代码块移动不用的内存位置,通过加入jmp addr跳过去执行,addr是新的代码块地址。
有源码
- 如果特征码是数据,那么修改数据位置,访问数据的代码位置等。
- 加花指令。
- 加数据计算代码,加减乘除各类组合。
- 加字符串操作代码,增加、删除、查找、替换等。
- 加多层跳转,跳转间加无效指令。
- 加貌似有效的API调用,如LoadLibrary+GetProcAddr+API等等。
工具免杀
在没找到有效的特征码,或者不好修改的时候,可以试试这种方式。
替换资源
使用Resource Hacker对文件进行资源操作,找来多个正常软件,将它们的资源加入到自己软件,如图片,版本信息,对话框等。使用资源编辑器(Resource Hacker)打开文件->操作->从资源文件添加
加签名
使用签名伪造工具,将正常软件的签名信息加入到自己软件中。
PE操作
-
PE优化
使用PE优化工具对文件进行优化,删除0,PE头优化,附加数据等
-
增加节
增加节数据,随意加入无效数据。
加壳
通过加密器/压缩器将原始代码进行加密压缩,让其特征码变化隐藏,然后组装上解密器/解压器到文件中,运行是先运行解密/解压器,将加密压缩内容解密解压,然后继续运行原始代码。
-
加壳
壳也有特征,知名壳杀软基本都能查自动脱壳,然后进行查杀。 所以建议加商业壳,壳特征未被分析,不能自动脱壳,可以隐藏原始代码。例如: Virbox Protector,VMProtect
-
加壳改壳
将常用壳进行修改,让壳特征变化,也可以让杀软失效。比如修改入口,区段信息修改,入口代码移位。
行为动态查杀
杀毒软件有主防的功能,对恶意行为进行拦截提示。如:读、删除、移动系统文件。杀进程,创建进程。注入、劫持。监控cmd.exe、powershell.exe。
杀软拦截API调用,通过策略来判断是否属于恶意行为。API(单个或多个API结合使用, 杀软监控这些API)。策略(顺序,调用源,参数等)
-
替换api
使用相同功能的API进行替换,杀软不可能拦截了所有API。比如MoveFileEx替换MoveFile。
-
未导出api
寻找相同功能的未导出API进行替换,杀软拦截一般是导出API,或者底层调用,寻找未导出API有一定效果。通过分析目标API内部调用,找到内部一个或多个未导出API,来完成相同功能。
-
重写api
完全重写系统API功能(通过逆向),实现自己的对应功能API,对于ring3的行为拦截非常有效。比如实现MoveFile等。
-
底层api
杀软拦截API可能更加高层,通过找到更底层API进行调用,绕过拦截。比如使用NT函数。或者通过DeviceIoControl调用驱动功能来完成API功能。
-
合理替换调用顺序
有时拦截行为是通过多个API组合来完成的,可以合理替换顺序,绕过杀软拦截策略。
(F:\file\知识\深圳分区\8月技术培训\图片2.png)]
-
增加干扰代码
请求百度域名
cs的payload免杀
cs生成python的shellcode进行base64编码再替换成一些shellcode里不存在的字符。放到txt中并上传到腾讯云的cos上。把这个文件的链接url进行aes加密。加载器解密这个url并开辟一块内存远程加载payload。
沙箱
通过注册表检测沙箱,检测vm
但是检测沙箱反而会引起杀软的注意。让程序在沙箱里面不能正常执行就能绕过沙箱检测。比如添加特定参数才能正常执行。