找回密码
 立即注册
查看: 2732|回复: 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。
: N2 [% N* ?$ K% E# U& G: L
  S# P- R3 j4 o* K, H" c0 gSymantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
& X: w! k4 D5 M: W0 q" y( K; {+ }1 \. p( w
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
) O# u  g6 B0 x; \8 q% a- W' _8 M: {' Z

. J; f9 o) S! s* I" ~' a. G4 C# E4 ~
function at 0x10024C20 is responsible for dispatching ioctl codes:
3 G+ D, I( Y- l+ R" V
: {. u( d* e6 P, J+ y.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)7 y" d1 F" {/ [" J7 r
.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap5 o( I3 v/ j- g% o6 H7 U3 c
.text:10024C20: w( g7 D! Q$ {. ~' d, \) W
.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch* D# D' b- U6 H% e3 u8 m* C- B
.text:10024C20 var_31          = byte ptr -31h: u  |5 V$ [2 v$ ~3 w+ s( R' S1 Y6 z
.text:10024C20 var_30          = dword ptr -30h- [9 c- F$ v; l8 ]/ R& H
.text:10024C20 some_var        = dword ptr -2Ch
$ w3 @( U, u+ m+ Z, l* U7 |& y.text:10024C20 var_28          = dword ptr -28h; l1 n; ^* N+ W4 d! K  Y
.text:10024C20 var_24          = byte ptr -24h: p6 [. p$ J+ o/ l& i, l
.text:10024C20 var_5           = byte ptr -5  B5 W& N7 w- L; j$ W% p, W
.text:10024C20 var_4           = dword ptr -4/ }3 y2 m, g2 v6 L
.text:10024C20 ioctl           = dword ptr  8
" j& q  X; J# i3 p.text:10024C20 inbuff          = dword ptr  0Ch
. d: P$ U% R+ D.text:10024C20 inbuff_size     = dword ptr  10h
& S% p$ X$ e' h. O.text:10024C20 outbuff_size    = dword ptr  14h
6 o) t' l2 a) I: s' B.text:10024C20 bytes_to_return = dword ptr  18h/ K7 R! i- u# ~$ y" l, g
.text:10024C208 q8 ~( _- b) @& Y+ g% e% R- @
.text:10024C20                 push    ebp: x0 V" ?& h4 N' L$ L
.text:10024C21                 mov     ebp, esp! _; v1 L" b: z3 J
.text:10024C23                 sub     esp, 3Ch
" o) \  y# V- o& j/ y.text:10024C26                 mov     eax, BugCheckParameter2( x% z1 B" s) @2 D" F5 L
.text:10024C2B                 xor     eax, ebp0 E( f7 J" u2 U& `: [
.text:10024C2D                 mov     [ebp+var_4], eax
+ b4 G; G# ^$ T" |/ n6 n.text:10024C30                 mov     eax, [ebp+ioctl]' E8 B4 j5 @. p2 g8 t! w/ J2 h
.text:10024C33                 push    ebx3 {6 L( o& k, s$ v: }; d
.text:10024C34                 mov     ebx, [ebp+inbuff]- o3 Q( j* v  `; B
.text:10024C37                 push    esi
7 {* I! |3 U& @& D8 V, @.text:10024C38                 mov     esi, [ebp+bytes_to_return]) ?, f5 a2 s/ [& H1 o& ]$ i+ \! _
.text:10024C3B                 add     eax, 7FFDDFD8h
0 I. M, K; {* W6 \3 Q" t.text:10024C40                 push    edi  a. m( i+ X2 ~( M0 b
.text:10024C41                 mov     edi, ecx" x( t9 c. C3 x9 I& E' D. a" n: ^
.text:10024C43                 mov     [ebp+some_var], esi( H% P& M6 a4 \1 q' r0 C3 w( T
.text:10024C46                 mov     [ebp+var_28], 0) ?2 @( t# l( K8 B4 ?! g
.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases
5 a" b# x+ d4 v2 b2 C.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case
- z9 E, A. m# P3 z8 ~& `0 f+ @; ^" \.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]# g6 Q+ _) B. Q
.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump' F2 ~7 [' E5 I. A8 v7 T' r
6 Q9 o8 }% p0 @& U* I
[..]
( v  @& w8 v3 E0 e+ d1 k( W
7 K" _& @+ |' S" X0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
! g4 c# h! o+ l# Q. o7 [# ]; r- a( Y; E/ {; J  L" i2 Q
.text:10024F5A                 lea     ecx, [edi+958h]5 O- n+ ^) k/ {+ g
.text:10024F60                 call    sub_100237B0) _; F7 w8 @9 m4 V% h
.text:10024F65                 mov     [ebp+some_var], eax0 L. J- d  ~, G8 K0 s! c+ K  Q
.text:10024F68                 test    eax, eax& J, l7 m, T0 B) }' t0 U0 f6 M
.text:10024F6A                 jnz     short loc_10024F7D" v! F5 X3 @8 e
.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh% n1 ^. d1 n  E; V9 ~
.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer5 T6 e$ y  O5 y
/ d$ I7 X, u5 e& m- N7 f
next in IofComplete request will be rep movsd at pointer, that is under attacker's control
& C8 J4 `$ [$ e
& D; L' O3 i# B% q3 w/ Y! tDue 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. 6 g- w3 _8 y2 d6 v6 X& K
5 g; k, p' a4 L( N* i4 x% K& f/ P
Symantec表示在2月份的补丁包中修复该漏洞。3 N) S, {% K% \8 g: X" n
5 T0 H1 K( {; ?- |
相关阅读:
# O% a9 j0 p4 V) e( C$ d9 Q7 U
9 f) M( _1 t% P; J# }$ Y; ?赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。8 o1 j2 O/ `0 h( \8 Q% l  `, r3 ]5 H

, _+ T) j* d& o$ K9 b$ A) N
回复

使用道具 举报

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

本版积分规则

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