前言
360核晶作为一款杀毒软件,无疑拥有相当的强大实力。与国外许多强大的杀毒软件类似,它也有自己擅长的领域。不同于卡巴斯基的内存扫描,核晶的强项在于其行为检测能力。一旦发现程序试图利用注册表、计划任务或其他提权注入操作,它都能及时发出警报。这种基于应用程序行为的检测方式非常难以绕过。 绕核晶初试 ![](https://mmbiz.qpic.cn/mmbiz_gif/1WyXJ9AxlFHHIb1T8E4S0ONsKBnUwbkicxhCBIHyza4xEKJmBBFcjfMwY2bEXYO24q0l5Cy5iasAmMCk8f2ljKwQ/640?wx_fmt=gif&from=appmsg&wxfrom=13&tp=wxpic) 以前的核晶它对于注册表与计划任务的监管主要是基于CMD窗口,当时绕过核晶可以简单地采用Windows API操作注册表,实现对核晶的绕过。 但现如今的核晶显然不能简单地利用Windows API进行绕过,甚至于许多BOF都无法实现绕过。(这里指的是我自己找的一些较老的BOF,如果是自主开发BOF或者一些新BOF则不一定) 这时候就引出一个思考,核晶的行为检测是基于什么原理呢?它是在哪一进行的行为检测?R3?还是R0?于是我尝试过伪造PEB的方式来伪造自己的权限,想利用伪造的高权限尝试对核晶的行为检测进行绕过,但也依旧失败了。(有可能是笔者实力不到位,并未深入到内核层。)既然之前的思路都不行,那么使用白加黑可以吧?众所周知,行为检测的手段有利有弊。好处就是行为检测很难规避,除非是基于内核层直接对硬件进行操控。但问题是核晶环境下又不允许加载未知的驱动,想要对内核动手我目前能想到的方法就只能利用漏洞。行为检测的坏处也很明显,那就是容易误报。需要利用注册表或者计划任务实现自启动的程序有很多,大部分程序都并非是木马程序,因此就需要设置白名单,避免出现大量告警,所以利用白名单很显然能够成为绕过核晶的手段。但很不巧,简单地利用DLL中导出函数上线依旧被核晶拦截,并且报出了恶意的黑DLL。突破核晶维权技术 ![](https://mmbiz.qpic.cn/mmbiz_gif/1WyXJ9AxlFHHIb1T8E4S0ONsKBnUwbkicxhCBIHyza4xEKJmBBFcjfMwY2bEXYO24q0l5Cy5iasAmMCk8f2ljKwQ/640?wx_fmt=gif&from=appmsg&wxfrom=13&tp=wxpic) 利用DLL侧加载实现白加黑能够对我们的黑DLL有更好的隐藏效果,使用DLL侧加载实现的白加黑上线成功避免黑DLL被识别并成功实现注册表维权。 核晶致盲问题是应对核晶的老办法了,所谓的核晶致盲就是利用核晶兼容性差这一点,启动会对核晶虚拟化技术产生冲突的程序,实现致盲核晶。 网上爆出能实现核晶致盲的程序有不少,包括但不限于LOL,雷电模拟器等。在上线的同时启动能致盲核晶的程序,依旧能实现核晶下维权。 效果展示 ![](https://mmbiz.qpic.cn/mmbiz_gif/1WyXJ9AxlFHHIb1T8E4S0ONsKBnUwbkicxhCBIHyza4xEKJmBBFcjfMwY2bEXYO24q0l5Cy5iasAmMCk8f2ljKwQ/640?wx_fmt=gif&from=appmsg&wxfrom=13&tp=wxpic)
CS维权回显:核晶下添加的注册表项:
|