破壳企业应急安全(防御方向)课程 应急响应 勒索病毒 挖矿木马 DDOS 日志分析

利用几处设计疏忽R3程序停安全卫士主防

编号91636
Urlhttp://www.wooyun.org/bug.php?action=view&id=91636
漏洞状态漏洞已经通知厂商但是厂商忽略漏洞
漏洞标题利用几处设计疏忽R3程序停安全卫士主防
漏洞类型设计缺陷/逻辑错误
厂商奇虎360
白帽子听曲人
提交日期2015-01-14 12:55:00
公开日期2015-04-02 10:23:00
修复时间(not set)
确认时间0000-00-00 00:00:00
Confirm Spend-1
漏洞标签设计不当
关注数0
收藏数0
白帽评级
白帽自评rank8
厂商评级
厂商评rank0
漏洞简介
鄙人最近逆向学习360安全软件,发现360在自身功能的调用和操作的过滤上有几处设计不当的地方:这些地方可能被恶意程序所利用,导致360防线的崩塌。
漏洞的利用途径不唯一,本人采取的是编写机器人程序,在无人值守时短时间破掉360主防,修改360文件。
漏洞细节

疏忽1,360关闭主防的调用过于简单
360关闭主动防御的方式是传参调用360tray,命令也比较简单,就是“360tray.exe /disablesp 2”
如果用cmd调用该命令会被360拦截,但创建快捷方式(快捷方式的写法就是"路径\360tray.exe /disablesp 2")点击调用则不会被拦,原因是360会验证调用的来源,来自explorer的调用的合法的,弹出的主防关闭询问对话框如下图所示:

1.png


屏幕快照 2015-01-14 下午1.01.44.png


大家都知道,这样生成的快捷方式的图标是360的图标,鉴于快捷方式的图标是可以修改的,可以修改.lnk文件修改之。
现在,我们得到了一个能打开360主防关闭询问对话框的快捷方式,记做launch.lnk。
该快捷方式用两种方式皆可运行:一种是用程序打开所在文件夹后,模拟键盘按键调用。另一种是改成邪恶的名称比如“安装”,诱使用户点击。(360策略:调用explorer打开文件夹不会被拦截,调用explorer打开程序会被拦截,因此此处迂回了一下,360庞大的拦截范围犹如步步设卡,每一个利用环节都不能直来直去。。。)
疏忽2,360关闭主防的对话框太简单了,容易被图形学方式定位
疏忽3,使用程序生成的鼠标事件居然能点选它的“是”按钮,可见过滤做的不到位
由于疏忽2和疏忽3,使得弹出的灰色对话框可以被轻松定位,并产生自动点击事件把“是”点了,接下来,没有任何提示,但360的主动防御已经关闭了。
疏忽4,关了主动防御后,360软件的外观没有任何不同。
下面说一下完整的漏洞利用途径,途径有两种:
一种是,写个r3级小程序,程序启动就驻留在内存中,等到半夜3点,如果发现用户还没有关机,就用上文提到的手段打开文件链接,然后通过取像素识别出电脑上唯一的大块灰色区域(360主防关闭对话框)然后产生鼠标按键时间,点击“是”按钮。从此360主防关闭,可直接taskkill其进程,再进一步改掉360的文件。
第二种方法与第一种方法相比,只有最后一步不同。
鉴于第一种方法不好用抓图来掩饰,所以,本文贴上来的是第二种方法的图。第二种方法是,识别出360的对话框后,把一个无边框对话框放置于360的对话框之上,由此愚弄用户。用户醒来时发现弹框了,又有恶意无边框对话框掩盖了原360真对话框上的文字,用户误读对话框内容,乖乖关了360主防。。。
这种方法有两个要点,一个是,恶意无边框对话框的程序必须在360对话框出现后再调用,另一个要点是,一定要用计时器对恶意对话框反复SetWindowPos置顶。
另外,识别对话框的算法有很多,我简述一个,以便于读者重现:
首先,360主防关闭询问对话框弹出的位置是不固定的,但屏幕的中轴线总会经过360的对话框。
从屏幕中轴线上1/3处开始,扫面中轴线周围长度为60的每个像素行,找到第一个全灰行(RGB=240,240,240),从这个与中轴线的交点开始向左遍历,知道找到这一行最左方的灰点,这就是对话框有效区的左上角,然后,360那个弹窗的大小总是不变的,算好适合的地方点击即可~
更好的方法是把桌面分成若干个块,算块的灰度值,然后定位,这种方法会比上一种快很多,但我由于写的比较急,所以本文用的是上一种算法,
另,而且最终不是去点掉“是”按键,而且在对话框上覆盖了含有虚假文字的对话框,这有利于截图说明定位的易行性

POC

360询问是否关掉主防的对话框上被虚假的提示文字所掩盖

proof.png


无论用自动鼠标按键还是人工点击,都可以关闭360主防,
关闭后,360进程可随意关闭,关闭后360文件夹下的文件可随意篡改

proof2.png

修复方案

1,关掉主防这样重要的功能,还是用IPC通信吧,用参数太草率
2,关掉主防的询问对话框,最好复杂一些
3,按来源过滤发给主防关闭询问对话框的鼠标事件
4,主防关了,好歹在图标上显示一下。。。
5,如有需要,与本文相关的识图定位之类的代码们,可以联系本人索取

状态信息 2015-01-14: 细节已通知厂商并且等待厂商处理中
2015-01-14: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2015-03-10: 细节向核心白帽子及相关领域专家公开
2015-03-20: 细节向普通白帽子公开
2015-03-30: 细节向实习白帽子公开
2015-04-02: 细节向公众公开
厂商回复360云主动防御开启的情况下,是可以有效防御此类攻击的,可以参考:wooyun-2014-这个报告,和本报告是同样的问题。
回应信息危害等级:无影响厂商忽略忽略时间:2015-04-02 10:23
Showing 1-3 of 3 items.
评论内容评论人点赞数评论时间

模拟点击?

cat7302015-01-20 05:21:00

360你都没说清楚参考哪个报告

李宇航的小柠檬02015-01-17 20:14:00

杀死 0回复

laoyao02015-01-17 07:55:00