当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0124016

漏洞标题:通过逻辑缺陷撸穿金山安全套装(含具体分析)

相关厂商:金山毒霸

漏洞作者: cssembly

提交时间:2015-07-02 08:20

修复时间:2015-08-16 09:10

公开时间:2015-08-16 09:10

漏洞类型:未授权访问/权限绕过

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-07-02: 细节已通知厂商并且等待厂商处理中
2015-07-02: 厂商已经确认,细节仅向厂商公开
2015-07-12: 细节向核心白帽子及相关领域专家公开
2015-07-22: 细节向普通白帽子公开
2015-08-01: 细节向实习白帽子公开
2015-08-16: 细节向公众公开

简要描述:

程序只需要起个好名字,然后增加注册表项,就能够实力大增,撸穿金山安全套装

详细说明:

ksapi.sys对关键位置未保护,导致绕过限制,撸穿安全套装

漏洞证明:

ksapi.sys中sub_13F10处理上层驱动打开动作

QQ20150701-1@2x.png


其调用了sub_1C2F0函数,改函数对当前试图打开驱动的进程进行校验,判断是否应该允许进程打开驱动,该函数进行了很多的目录判断

屏幕快照 2015-07-01 下午10.24.03.png


这里就包含对\Registry\Machine\SOFTWARE\Kingsoft\AntiVirus注册表项的ProgramPath键值的判断,当我们尝试对ProgramPath的值进行修改时,就会发现已经被保护了

屏幕快照 2015-07-01 下午10.28.58.png


通过对sub_1C2F0函数进行进一步分析,发现它使用了dword_21F54,该值读取自\Registry\Machine\SOFTWARE\Kingsoft\Kavudisk的Path键值,同时将“sysfixkill.exe”黏贴在键值之后,也就是说sysfixkill.exe在白名单之列,它能够打开驱动

屏幕快照 2015-07-01 下午10.35.47.png


通过查看注册表,发现程序没有创建这一键值,也未对起进行保护,尝试创建改键值为c:\

屏幕快照 2015-07-01 下午10.39.40.png


这样放在桌面的sysfixkill.exe无法打开ksapi.sys,而放在c:\的sysfixkill.exe就能打开ksapi.sys

屏幕快照 2015-07-01 下午10.41.42.png


通过对ksapi.dll发送的DeviceIoControl进行逆向,能够得到参数的格式,下图是文件打开动作的参数

屏幕快照 2015-07-01 下午10.52.07.png


通过向驱动发消息,能够修改、删除系统文件、注册表等功能,原本在应用层不能完成的动作,现在就能够完成了,例如删除\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Services\\ksapi中的ImagePath的值,因为被保护,所以会得到

屏幕快照 2015-07-01 下午11.18.40.png


尝试不关闭explorer.exe进程,直接删除可执行文件,会得到

屏幕快照 2015-07-01 下午11.02.05.png


但是通过给驱动发送命令就能够实现这些功能,修改ImagePath的值为C:\windows\system32\calc.exe,删除explore.exe,并用calc替换

屏幕快照 2015-07-01 下午11.20.32.png


通过这种方式,就能够轻松替换系统文件,也能轻松的替换和删除ksapi.sys等文件,轻易的持久驻留在系统中

修复方案:

保持校验的一致性

版权声明:转载请注明来源 cssembly@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-07-02 09:09

厂商回复:

非常感谢提交,立刻反馈处理

最新状态:

暂无