中国网络渗透测试联盟
标题:
Symantec完整磁盘加密软件爆0day漏洞
[打印本页]
作者:
admin
时间:
2013-1-11 21:11
标题:
Symantec完整磁盘加密软件爆0day漏洞
日前,国外安全研究组织Nikita Tarakanov称在Symantec PGP Whole Disk Encryption(完整磁盘加密软件)中发现0day漏洞,该软件的内核驱动程序pgpwded.sys包含一个覆盖任意内存的漏洞,可执行任意代码,受影响的软件版本是Symantec PGP Desktop 10.2.0 Build 2599。
8 _$ a( i+ ?- N
4 e( Q- k5 a7 D( m
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
4 H1 N9 i! S0 ~% N# E, K3 H( N
; Q3 ]% s' H, u+ L8 E( v8 q
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
/ \( v! O2 ?# {+ w9 i
, }5 r) {) y. v8 w4 i- i
4 e( K0 h4 N( L' l9 t; d4 I2 N' l
7 e u0 e2 o f+ K& F& w: i: h
function at 0x10024C20 is responsible for dispatching ioctl codes:
$ s& l1 Z) B# W
$ p3 c6 v h& |% _. J8 q& @
.text:10024C20 ; int __thiscall ioctl_handler_deep(int this, int ioctl, PVOID inbuff, unsigned int inbuff_size, unsigned int outbuff_size, PDWORD bytes_to_return)
; z( u6 f4 e% b) e
.text:10024C20 ioctl_handler_deep proc near ; CODE XREF: sub_10007520+6Ap
/ c, w4 F6 [" q- w/ L3 B4 i& V6 E! S
.text:10024C20
; O& Z8 v, a" t
.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch
# m- _" M2 I, A1 ~$ R; W
.text:10024C20 var_31 = byte ptr -31h
/ v: ~1 V" A6 x: m6 d# l" x
.text:10024C20 var_30 = dword ptr -30h
! h8 h+ g8 @6 n% S6 l7 C) K0 ?
.text:10024C20 some_var = dword ptr -2Ch
" S4 F' ]5 G9 s' o$ k
.text:10024C20 var_28 = dword ptr -28h
! f4 J ~) A; @: E, D3 K
.text:10024C20 var_24 = byte ptr -24h
: f) m- P; a4 L9 N6 s0 |
.text:10024C20 var_5 = byte ptr -5
! D8 ?7 b; G+ W; o
.text:10024C20 var_4 = dword ptr -4
. h* o2 w8 e7 l8 A b: a0 v7 l
.text:10024C20 ioctl = dword ptr 8
6 V: R5 o4 U' d+ S) u, D$ n+ E: Z
.text:10024C20 inbuff = dword ptr 0Ch
. G- w7 u5 a% B
.text:10024C20 inbuff_size = dword ptr 10h
, x4 U5 r& F; R+ H
.text:10024C20 outbuff_size = dword ptr 14h
- [7 L8 t- P5 p7 S9 S* c, {* v; @
.text:10024C20 bytes_to_return = dword ptr 18h
. ^2 J! v0 ?# I& ~2 x
.text:10024C20
5 } G* [4 t R7 J3 b/ Y: W
.text:10024C20 push ebp
0 |) ?7 d6 \1 E7 x: a
.text:10024C21 mov ebp, esp
! Q* A5 Q$ e( D. I V8 ~% X
.text:10024C23 sub esp, 3Ch
; K; \8 ^/ \4 a, R# ^& i
.text:10024C26 mov eax, BugCheckParameter2
5 o$ e+ Q+ @6 D* J$ u) B1 L* {
.text:10024C2B xor eax, ebp
% q7 v/ A: ]0 t' X" a: K$ A
.text:10024C2D mov [ebp+var_4], eax
5 f6 J# V1 M# y- [: V, T. v* H3 h- d
.text:10024C30 mov eax, [ebp+ioctl]
! A/ ]* E2 A8 V6 ^
.text:10024C33 push ebx
/ K9 z8 |9 l6 g. V0 |) K
.text:10024C34 mov ebx, [ebp+inbuff]
+ t) N# F/ c |1 P0 }( W; r
.text:10024C37 push esi
. ?. @ z' e" n4 x. ^* H0 [+ A
.text:10024C38 mov esi, [ebp+bytes_to_return]
5 p o, @+ _8 X/ m8 I% |4 L @8 F7 v
.text:10024C3B add eax, 7FFDDFD8h
8 i& K: y4 k! H9 R& E5 s& V
.text:10024C40 push edi
. n1 `1 R7 F8 a" Y& K% ^
.text:10024C41 mov edi, ecx
' Y4 p5 x+ A' K. j9 C7 c- H& [' k
.text:10024C43 mov [ebp+some_var], esi
& h) q5 y: _& n1 u- J( W
.text:10024C46 mov [ebp+var_28], 0
! T/ ^, h- t: W+ z/ s' D
.text:10024C4D cmp eax, 0A4h ; switch 165 cases
N& L# A" H% ~2 S
.text:10024C52 ja loc_10025B18 ; jumptable 10024C5F default case
# P G" K9 c/ u3 O* x
.text:10024C58 movzx eax, ds:byte_10025BF0[eax]
7 ?1 a2 Z" T9 n0 B: S, p
.text:10024C5F jmp ds
ff_10025B50[eax*4] ; switch jump
% Q: W9 S; s) q% E
' r# X* S7 G8 y
[..]
$ w& e# P: b f8 ?4 D
! n% @/ B w# }( N# u
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
4 m2 }4 _9 ^' J
* I- |* I( ~- l9 X& k* Y" @$ \
.text:10024F5A lea ecx, [edi+958h]
5 p$ Z0 l- b* L* |& s
.text:10024F60 call sub_100237B0
+ S. @" V* {- }- `, f- P$ i# e* Y& C
.text:10024F65 mov [ebp+some_var], eax
+ T9 Y& z" P9 a( a1 X3 C; m
.text:10024F68 test eax, eax
0 T# n! X5 s3 l5 y+ ]* `( K4 ^
.text:10024F6A jnz short loc_10024F7D
: Z6 P8 {. P1 W" B
.text:10024F6C mov dword ptr [ebx], 0FFFFCFFAh
- ^, Y# ^" ?- |: V
.text:10024F72 mov dword ptr [esi], 10h <--- bytes to copy to output buffer
# t( @$ c. S5 Q+ }% c7 P
, x4 {7 \* D/ X( Z4 Z/ t7 A0 A
next in IofComplete request will be rep movsd at pointer, that is under attacker's control
) ^; y8 { K9 k( \: l I
3 v8 C( `8 t' Z G+ J6 y' T
Due the type of vulnerability (METHO_BUFFERED with output_size == 0) exploit works only on Winows XP/2k3, cause in later Windows OS I/O manager doesn't craft IRP if ioctl is METHOD_BUFFERED and output_size == 0.
/ r" r% R1 b+ N3 h6 r0 _
T% |" u4 A4 w) B: ?
Symantec表示在2月份的补丁包中修复该漏洞。
" K% y7 B; s0 [4 b4 ]
3 {2 K8 V/ Z, E: E; T
相关阅读:
* i8 n+ m9 R3 D1 R, x
7 V1 f+ O0 G$ ~) R" y5 ~6 N8 x
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。
2 V3 W6 L% j5 M2 G* i; j6 A4 Q
3 B Q- A4 J8 E+ D' Q) ^7 m
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2