受影响系统:
Trend Micro Titanium Maximum Security 2011 3.0.1303
描述:
Titanium Maximum Security使用云技术以自动化阻拦病毒和恶意软件。
Titanium Maximum Security所使用的tmtdi.sys内核驱动在处理IOCTL 0x220404时存在指针覆盖漏洞,本地用户可以通过运行恶意程序导致执行任意内核态代码。
\\.\tmtdi设备驱动的IoCtl处理器:
.text:0001D3CC ; int __stdcall sub_1D3CC(PDEVICE_OBJECT DeviceObject, PIRP pIrp)
.text:0001D3CC sub_1D3CC proc near ; DATA XREF: sub_1DD40+D0o
.text:0001D3CC
.text:0001D3CC var_4 = dword ptr -4
.text:0001D3CC DeviceObject = dword ptr 8
.text:0001D3CC pIrp = dword ptr 0Ch
.text:0001D3CC
.text:0001D3CC mov edi, edi
.text:0001D3CE push ebp
.text:0001D3CF mov ebp, esp
.text:0001D3D1 push ecx
.text:0001D3D2 mov eax, [ebp+DeviceObject]
.text:0001D3D5 mov eax, [eax+28h]
.text:0001D3D8 and [ebp+var_4], 0
.text:0001D3DC push ebx
.text:0001D3DD mov ebx, [ebp+pIrp]
.text:0001D3E0 push esi
.text:0001D3E1 mov esi, ds:MmIsAddressValid
.text:0001D3E7 push edi
.text:0001D3E8 mov edi, [ebx+60h]
.text:0001D3EB push edi ; VirtualAddress
.text:0001D3EC mov [ebp+pIrp], eax
.text:0001D3EF call esi ; MmIsAddressValid
.text:0001D3F1 test al, al
.text:0001D3F3 jnz short loc_1D403
[..]
.text:0001DAF3 mov eax, ecx
.text:0001DAF5 sub eax, 220078h
.text:0001DAFA jz loc_1DC89
.text:0001DB00 sub eax, 18h
.text:0001DB03 jz loc_1DC51
.text:0001DB09 push 4
.text:0001DB0B pop edi
.text:0001DB0C sub eax, edi
.text:0001DB0E jz loc_1DC30
.text:0001DB14 sub eax, 2Ch
.text:0001DB17 jz loc_1DBF1
.text:0001DB1D sub eax, 14h
.text:0001DB20 jz loc_1DBBD
.text:0001DB26 sub eax, 330h
.text:0001DB2B jz short loc_1DB7B
[..]
.text:0001DB7B loc_1DB7B: ; CODE XREF: sub_1D3CC+75Fj
.text:0001DB7B test dword_2289C, 10000000h
.text:0001DB85 mov edi, [ebx+0Ch]
.text:0001DB88 jz short loc_1DB95
.text:0001DB8A push offset aIoctrl_bind_cf ; "[IOCTRL_BIND_CFW]\n"
.text:0001DB8F call DbgPrint
.text:0001DB94 pop ecx
.text:0001DB95 push edi ; VirtualAddress
.text:0001DB96 call esi ; MmIsAddressValid
.text:0001DB98 test al, al
.text:0001DB9A jz loc_1DD19
.text:0001DBA0 cmp [ebp+DeviceObject], 8 ; check for length
.text:0001DBA4 jb loc_1DD19
.text:0001DBAA mov eax, [edi] ; eax – first DWORD from our buffer
.text:0001DBAC mov dword_228B4, eax ; pointer overwrite
这个地址包含有解释为函数指针的值,sub_10CD4函数将这个值用作了函数指针。
.text:00010CD4 sub_10CD4 proc near ; CODE XREF: sub_19234+480p
.text:00010CD4 ; sub_197FC+1D5p …
.text:00010CD4 mov edi, edi
.text:00010CD6 push ebp
.text:00010CD7 mov ebp, esp
.text:00010CD9 mov ecx, dword_228B4 ; copy to ecx
.text:00010CDF xor eax, eax
.text:00010CE1 test ecx, ecx
.text:00010CE3 jz short loc_10CE8 ; is NULL pointer
.text:00010CE5 pop ebp
.text:00010CE6 jmp ecx ; direct jump to our shellcode
.text:00010CE8 ; —————————————————————————
.text:00010CE8
.text:00010CE8 loc_10CE8: ; CODE XREF: sub_10CD4+Fj
.text:00010CE8 pop ebp
.text:00010CE9 retn 4
.text:00010CE9 sub_10CD4 endp
可通过调用函数绑定调用sub_10CD4函数。
<*来源:Nikita Tarakanov
链接:http://www.exploit-db.com/exploits/15376/
*>
测试方法:
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
http://www.exploit-db.com/download/15376
建议:
厂商补丁:
Trend Micro
———–
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
0 条评论。