中国网络渗透测试联盟

标题: 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。6 Q0 U5 I- ]" d/ x; T& k
3 A) }( O; F+ r% N1 D
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
# ~& `- p8 h9 o- S; l- I$ z. m# q& E' Y/ K
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
! `1 v+ q' K' z! M" d
. s: _$ `& r# o& J3 \
, r0 u% t) U& E- r' X' _- f5 u% D3 v5 {
function at 0x10024C20 is responsible for dispatching ioctl codes:
8 b2 b: {% v: R1 Q5 _1 W0 w9 |: W1 h, ^+ r4 z, F
.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)
& Y/ N0 r8 r! U2 q: v6 R2 p: T.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap
$ I# R5 C5 o2 M8 p% T.text:10024C20
! ]. u0 E# o- q8 j8 C.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch' \, Y/ U$ [/ Z( z. u1 C0 \
.text:10024C20 var_31          = byte ptr -31h5 a( X+ N, S9 r5 @5 A% k5 j
.text:10024C20 var_30          = dword ptr -30h1 |) g0 d9 n$ }0 |+ w1 A# b) q
.text:10024C20 some_var        = dword ptr -2Ch) b2 ^3 R1 S- k( M( f
.text:10024C20 var_28          = dword ptr -28h
- e4 i$ U4 T# {, x+ A& ^.text:10024C20 var_24          = byte ptr -24h2 p8 S( B4 O! ?
.text:10024C20 var_5           = byte ptr -5$ f+ G# }3 A4 \
.text:10024C20 var_4           = dword ptr -4  s( F0 z8 D6 C
.text:10024C20 ioctl           = dword ptr  8
, G5 n8 u6 ~3 S( O.text:10024C20 inbuff          = dword ptr  0Ch
- _6 t7 Y. y. O7 i+ e.text:10024C20 inbuff_size     = dword ptr  10h! M% V1 z2 a$ ^) s2 _, F8 \
.text:10024C20 outbuff_size    = dword ptr  14h
' g4 B  z; h7 h$ q4 \.text:10024C20 bytes_to_return = dword ptr  18h
( y) u! Z" O3 J8 G1 n.text:10024C20
/ a/ [0 _  k9 K5 R0 i+ r+ Q" F: x.text:10024C20                 push    ebp
, d/ {. ~1 }6 g6 B% r.text:10024C21                 mov     ebp, esp: z+ ~" {3 n( d7 t7 a
.text:10024C23                 sub     esp, 3Ch% H7 t6 v/ g, Q# y2 J
.text:10024C26                 mov     eax, BugCheckParameter2% N6 r+ L! S7 e$ l8 }6 I) d% @; m
.text:10024C2B                 xor     eax, ebp
7 s+ ~- ~( o( z.text:10024C2D                 mov     [ebp+var_4], eax
: X. W$ P1 H# j! _5 g, b.text:10024C30                 mov     eax, [ebp+ioctl]
/ t" m/ j" |6 u# e  G.text:10024C33                 push    ebx
* T! C, v, ]6 V) \# ^.text:10024C34                 mov     ebx, [ebp+inbuff]
2 s+ `: \9 q2 }' o.text:10024C37                 push    esi' C- w; v! \  k' j3 r  s& g" H
.text:10024C38                 mov     esi, [ebp+bytes_to_return]
* M' G, z1 I5 g& `2 H: y.text:10024C3B                 add     eax, 7FFDDFD8h
( H" m+ y% n7 @- x/ ~.text:10024C40                 push    edi3 J: \* J0 w9 o: E- i  S
.text:10024C41                 mov     edi, ecx& u6 u3 x* b- K9 @( q7 \
.text:10024C43                 mov     [ebp+some_var], esi  L2 V4 d8 |2 ?/ \& }) @; o
.text:10024C46                 mov     [ebp+var_28], 0
2 V  K  I* Y* A6 M" L; T. b) R.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases9 R. l9 x: y" k- q
.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case: O. S8 d+ [9 P
.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]
/ [# f9 t7 o5 y" S.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump
3 c# s3 B8 X3 W* m1 q1 w
$ m5 M8 V& I& \8 u" P[..]
- ]; Z- H" |5 Z7 o& I8 Y1 [6 t
. U$ c5 A: ^3 q: l( i' q0 {/ g8 E2 F0x80022058 case: no check for outbuff_size == 0! <--- FLAW!5 \' ~. ^5 v0 \5 z. P
+ u1 }9 w4 m+ k* f" Z# d
.text:10024F5A                 lea     ecx, [edi+958h]5 o: A  D& J. }4 c3 b6 y
.text:10024F60                 call    sub_100237B0
2 I$ L, j7 _, q* `& m' n* M, Z.text:10024F65                 mov     [ebp+some_var], eax3 B2 t9 G: U5 m: \6 f2 k, F  F
.text:10024F68                 test    eax, eax* t9 G1 i$ ^$ g
.text:10024F6A                 jnz     short loc_10024F7D
" q$ |3 D$ |, S( i, M& D1 ^; j.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh# C! A% [! w: K5 ]* x" r
.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer
, H/ x2 B  Y! i' R  S; D) n
' v, |% J1 U8 E" t3 \1 @% Anext in IofComplete request will be rep movsd at pointer, that is under attacker's control
1 W/ |4 {2 G+ M! o  P" L- E. F+ F
* L+ m- L! @' iDue 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. . {! k3 V# P3 W8 P2 J% |7 w

4 h' K' r3 C4 LSymantec表示在2月份的补丁包中修复该漏洞。
1 e6 X2 I( p* S
5 v' e8 l% A! b$ c( X$ N相关阅读:
; J/ |7 Q& V$ i: l  `# h: {3 e$ Z# H; d5 Q+ r" `/ l
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。
/ p$ V% L! N9 z
+ Y0 Q! L4 O2 b- y$ l  R' u




欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2