如何绕过杀软主动防御?且看这篇文章渡尽劫波兄弟在,相逢一笑泯恩仇。——鲁迅
利用白文件绕过杀软的主动,可以追溯到很久之前。我在看雪看到一篇关于白加黑的文章时候还是在13年,当时也有人在研究白加黑。所谓白加黑,原理大概可以概括为:
恶意程序的调用藏匿于白程序代码中,表面无壳,有一定欺骗性。
一般的话,利用带有数字签名(白名单)的白文件调用DLL时的漏洞达到调用黑DLL执行恶意代码。但是现在许多的DLL和EXE基本上利用的是动态调用,基本上是查不出表函数,导致大部分的白加黑“绝种”。所有想要找到这种容易被恶意利用的文件非常困难,但是我们依然能够寻找到。对应本章话题,正课开始:
(本篇文章仅代表个人观点,不提供任何资源下载)
文件要求
本篇以写入启动项为例
白文件:
最好带有数字签名;受到360等国内杀软的信任(白名单)依赖DLL较少,能够独立运行DLL要求:
输出函数尽量少;尽量定位在第一个调用的函数上;输出函数最好不要带符号,必须是明文。序号或者未显示均不能作为替换Dll使用例如:
启用后立即调用:PingSocks5Proxy(易语言演示)
寻找途径:
寻找这样的文件可以在360软件管家或者其他软件厂商中尝试(其中的大部分软件都是进了杀软的白名单),例如:
搜狗壁纸升级程序,曾经被利用作为loader加载黑DLL(已失效)
文件限制:
例如改文件(xxxplayer.exe)
一个播放器,一般是不会写启动项的,如果直接利用的话,写入启动项时提示敏感操作.
还有一些文件,例如浏览器组件等,默认会被360优化删除启动项
所以应该找一些能够被用户接受的启动项(没有哪个浏览器会开机自启打开文件,(⊙o⊙)…)
实战操作
经过一番寻找,在360软件管家的平台上找到如下文件:
软件权限默认允许添加开机启动项,
EXE依赖项仅为utility.dll,而且导出函数极少,适合用来做loader
这开发者能走点心吗?足以看出是多么的粗制滥造,就只打了个签名,手动点赞b( ̄▽ ̄)d
经过测试,可以直接利用initHttp函数用来加载恶意代码,并没有对DLL文件进行二次校验 \(^o^)/~
当然可以直接进行系统底层的调用,写入启动项后,(以360为例)杀软并没有提示,
文章后记:
说实在话,道高一尺魔高一丈,要想真正的能够杜绝白加黑,恐怕还是得靠软件开发者的自觉。
如果还想进一步学习,建议到看雪或者各大杀软厂家自己发的文章看看。
看雪:点我前去
永远记住一句话:百度是你最好的老师