找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2522|回复: 0
打印 上一主题 下一主题

Symantec完整磁盘加密软件爆0day漏洞

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:11:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
日前,国外安全研究组织Nikita Tarakanov称在Symantec PGP Whole Disk Encryption(完整磁盘加密软件)中发现0day漏洞,该软件的内核驱动程序pgpwded.sys包含一个覆盖任意内存的漏洞,可执行任意代码,受影响的软件版本是Symantec PGP Desktop 10.2.0 Build 2599。, v! M" C6 c3 b4 N, @

6 N& V" D- }+ A% K/ ]0 Z3 U0 V+ WSymantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
2 f  C$ V9 ~; z+ l% |0 s3 |* X# M  J" K" D
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:- \0 R' q0 Z5 p) B) o) m- l" y( W
' U1 N! F0 w7 D
4 z, {2 ]% A' c1 B

- P) C" U0 O7 nfunction at 0x10024C20 is responsible for dispatching ioctl codes:/ t" C) _* X2 x2 ^! q
) G( g, ~# u8 G6 @
.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)
) w6 {! {4 G' F1 m+ i.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap
9 \( \7 Z6 ?3 V1 J  b: h' D.text:10024C20
3 N5 x# c! t( a: `# P, R.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch/ ~# n, A/ q$ h/ g% i
.text:10024C20 var_31          = byte ptr -31h& F6 `3 b. U: h6 |, {
.text:10024C20 var_30          = dword ptr -30h" E: {, N+ v# ?8 O
.text:10024C20 some_var        = dword ptr -2Ch
) T  o- g) V: i  k- X.text:10024C20 var_28          = dword ptr -28h+ k0 I' D0 ]; \5 s; j' `, Z( ^; W
.text:10024C20 var_24          = byte ptr -24h
$ V* D5 g6 ~9 ]) P- A.text:10024C20 var_5           = byte ptr -5! P7 b7 X7 b7 M$ }( \
.text:10024C20 var_4           = dword ptr -4
: K. y, L3 I! x8 X4 Z7 ]% h.text:10024C20 ioctl           = dword ptr  8" P8 d; s. d8 A3 S' C8 F- x
.text:10024C20 inbuff          = dword ptr  0Ch8 Q7 c9 z' o% v" u  x
.text:10024C20 inbuff_size     = dword ptr  10h
2 A0 }# c' R7 }+ b.text:10024C20 outbuff_size    = dword ptr  14h% m& A% y  d" v$ \
.text:10024C20 bytes_to_return = dword ptr  18h
$ P( _# V5 m1 A3 E) o.text:10024C20
" @# C" X6 K% v& p.text:10024C20                 push    ebp, {  P4 y& ]% r9 N; m6 N: l
.text:10024C21                 mov     ebp, esp6 L0 u6 W& Z4 m% s5 U
.text:10024C23                 sub     esp, 3Ch0 A5 _; T: G  L5 R
.text:10024C26                 mov     eax, BugCheckParameter29 N( D  I1 G) U3 }6 n# w+ Z1 r
.text:10024C2B                 xor     eax, ebp
$ ]7 l( m7 E5 D.text:10024C2D                 mov     [ebp+var_4], eax' V" j8 v, Q( [1 ]1 z
.text:10024C30                 mov     eax, [ebp+ioctl]
- {+ n" E# M6 b$ D8 B# N2 ]/ d.text:10024C33                 push    ebx
; l) x$ `) _. s2 ?( u.text:10024C34                 mov     ebx, [ebp+inbuff]2 D* i- f$ c. U
.text:10024C37                 push    esi; k* k* a: ], E* i9 f; _
.text:10024C38                 mov     esi, [ebp+bytes_to_return]
# u8 r/ ?  H8 {( e: N, m) H.text:10024C3B                 add     eax, 7FFDDFD8h
6 Z3 y# A6 r" Q" g6 t( N# d  z( m5 N.text:10024C40                 push    edi- X) J  h) ]9 ]! O( b
.text:10024C41                 mov     edi, ecx8 W4 @( _7 |- G- g" f; F% h, k* z
.text:10024C43                 mov     [ebp+some_var], esi& H1 q$ a9 @, o4 S3 I
.text:10024C46                 mov     [ebp+var_28], 05 ^- V, C! t5 r
.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases
/ B5 q, q. D6 A  j.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case
& w- f0 F: B1 W- P1 k.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]0 s+ x! p" X! \5 Q: q3 P1 `9 y
.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump' [, G1 v& c7 @* i, t1 L

+ v  K& C+ F0 j7 l# t  T[..]1 r8 Y# E2 [% C0 L, f
, x- b0 x% B2 L) W( Y* }
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
- }9 A$ A9 ~8 M  Z6 s, \2 b
$ F+ _+ v9 X  S: B' P.text:10024F5A                 lea     ecx, [edi+958h]
! r* r2 s& v1 y9 J* b+ L.text:10024F60                 call    sub_100237B0: x0 M1 {/ @8 j6 K. N
.text:10024F65                 mov     [ebp+some_var], eax
# P5 y& w6 Y6 ?# I! j! ?, J.text:10024F68                 test    eax, eax7 G0 J! n0 j% l# n
.text:10024F6A                 jnz     short loc_10024F7D# Z% V5 x% o- Q0 O6 X
.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh
. _. _( X  T8 @0 Q.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer, a) U9 g; m  ]
6 ~% M, {+ v8 s& Z) R& T
next in IofComplete request will be rep movsd at pointer, that is under attacker's control" c, h& H: B$ G. t! t

& F, f- u; U% n2 d1 xDue 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. " p$ x3 @/ I9 X$ O) A$ k- }
8 K8 w* M+ |( U
Symantec表示在2月份的补丁包中修复该漏洞。
( k/ ~+ a- O1 c$ l% `( N, f* g/ M! W7 L/ |# Z
相关阅读:  a1 o% ~3 p% x) L& Q
+ Y3 Y. H! s  q/ r/ {) o6 u2 @- Y
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。
; Y4 t  Z' m3 w# P# n% u1 a' x7 }) J. r/ ^+ |! Z. O7 ~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表