Bkav联网防火墙绕过漏洞

vn的软件,这个漏洞已经发现了1-2年了, 不知道现在修复没, 我没放到其它漏洞发布平台上去过....都是自己用= =刚刚搜了一下网上是没有相关信息的(难道现在还是0day? Σ( ° △ °|||)︴)....

虽然没测过有没有修复(记得2015版的还能用, 其它版本所有的专业版和免费版都有这个问题,它们共同设定都是百分之百被绕过),但是为了继续能用所以代码不完全公开,只告诉你这里有,自己去找. 发在这里反正厂家看不懂中文....


做bakv免杀最烦的是它的联网防火墙, 本身这个软件杀毒性不强, 但是它的网络防火墙很烦. 它不管你什么权限什么进程, 只要联网就有提示, 一般注入或劫持的进程都不在它的白名单里, system权限也照样拦, api hook得很深, 一个个解掉会浪费很多时间, 但是反汇编查看后, 发现它的拦截机制是多么的sb, 而且发现它给自己的某个程序开后门(唯一的白名单).

它做api hook用的方法是强制让自己的一个dll载入到运行的程序中(这部分代码我没解析, 总之就是任何进程都会载入), 程序启动好api也被hook了, 比socket函数还底层的函数都被hook, 在调用栈里它dll的一些函数都在最下层, 解hook后程序退出堆栈不平衡会引发错误. 

它的验证机制简单来说是这样的. 程序使用socket触发了它的验证机制(被hook的代码), 代码向杀毒主体验证程序是否合法(包括白名单验证和域名验证), 然后阻塞自身(它用WaitSingleObject, 还有几个阻塞的地方还是比较复杂的)等待主体反馈. 主体接到验证后,如果不在自身名单里的就弹出对话框让用户选择操作, 过了时间或阻塞超时, 都会让函数走向不能连接网络的部分; 主体反馈信息后, 被hook的程序检查反馈信息合法性, 选择是否让连接通过. 

这里有个问题, 就是能不能联网都是由我自己程序的本身来决定的, 这就是这个杀软的bug(这杀软技术不行做socket只能在这个层面做hook). 这样只要找出这部分东西就可以在不触发任何警报的情况下绕过去了, 同理一些有这种问题的程序也可以这样绕过去. 改的方法是让程序自己认为自己在白名单就行了.= = 不过验证的这部分代码返回的不是简单的0或1, 估计返回的是枚举, 而且并不是确切某个值表示放行, 而是根据调用方来决定, 简单就是说它的返回值一会这个值表示允许,一会另一个值表示允许. 这个要在修改的代码里读函数调用栈确定是哪个函数在用.

原理很简单,代码懒得找了,以后如果要做这类软件注意不要把禁止联网的逻辑像这样注入到别的程序里就行了.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值