找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2464|回复: 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。
5 u3 F% e5 N% v) Z- w  w' u. b
- V+ H$ Q# [+ {: Z4 F$ k" q8 Z8 _Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
. q; A4 T4 T: c" g) n! X* u- x# l4 `2 ~: K# S: F8 Q9 u) ?
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
8 f: E! z. V0 S) X0 |
- T) t7 m/ D0 @) [ - E+ D* M$ B1 N6 A6 Y/ [" j

7 f$ j- e  j& f" Gfunction at 0x10024C20 is responsible for dispatching ioctl codes:1 w; F8 Y" m, A0 u
" |/ s) [! J" j7 T0 a
.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)% O, @# h: s& D: o! U" Y; x( b
.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap& \% ]4 K, x6 N1 ~2 N7 N' @" ^
.text:10024C208 H( ?9 t3 {5 N5 P
.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch
- C2 X% M+ ~2 G! p7 Q* l* C.text:10024C20 var_31          = byte ptr -31h+ S  p/ i: R# V6 W0 }* E+ E# L% p3 b
.text:10024C20 var_30          = dword ptr -30h
1 B3 g) F+ `, m7 k.text:10024C20 some_var        = dword ptr -2Ch6 {0 }. s/ w2 D. S( N; s+ t' ]% L4 G
.text:10024C20 var_28          = dword ptr -28h" f( p" `/ Z; j% `
.text:10024C20 var_24          = byte ptr -24h/ m" h# I( q& Q9 p2 E: L! f
.text:10024C20 var_5           = byte ptr -5( j0 x1 f" g" s& f2 b( V# O" M4 S7 S
.text:10024C20 var_4           = dword ptr -4! ^) a# v& z6 l4 \, M
.text:10024C20 ioctl           = dword ptr  8
' U( x! h3 P% r.text:10024C20 inbuff          = dword ptr  0Ch
9 b2 a4 g/ u+ z8 N. b& S. H0 l.text:10024C20 inbuff_size     = dword ptr  10h) p* K0 E9 @7 D( O
.text:10024C20 outbuff_size    = dword ptr  14h! X7 D& B; m* o- b( R- c
.text:10024C20 bytes_to_return = dword ptr  18h4 n9 ~1 S7 t+ [- I& e+ O
.text:10024C201 [' b) Y$ N+ }( D- |1 k! D
.text:10024C20                 push    ebp8 P: m3 m% T& \' L0 i. [: p
.text:10024C21                 mov     ebp, esp/ p6 ]) o7 |- [; v' q
.text:10024C23                 sub     esp, 3Ch
7 i0 B$ p: @& |+ O, x8 b& N.text:10024C26                 mov     eax, BugCheckParameter2  r7 {0 Q* {8 K9 g8 h0 b- _1 \& g8 v3 ^
.text:10024C2B                 xor     eax, ebp6 X/ x$ z0 z3 n! o# n. a$ ^" H8 R
.text:10024C2D                 mov     [ebp+var_4], eax" h2 I5 B* t# k( X
.text:10024C30                 mov     eax, [ebp+ioctl]
4 o# b7 k. G3 N; r  E; m4 k.text:10024C33                 push    ebx
) S* P  D" n9 C+ v1 T.text:10024C34                 mov     ebx, [ebp+inbuff]
8 j' y9 q3 m% ]0 R- O0 r.text:10024C37                 push    esi
; @/ P' y8 P1 F+ `) U: e.text:10024C38                 mov     esi, [ebp+bytes_to_return]
/ p- ?9 l* K, \3 d' g" u" v.text:10024C3B                 add     eax, 7FFDDFD8h$ K. R$ O6 c" w0 d
.text:10024C40                 push    edi( E4 F& v4 ~2 I, g$ s% h
.text:10024C41                 mov     edi, ecx
. w" [8 X% e" Z4 Q, G.text:10024C43                 mov     [ebp+some_var], esi
. ~3 G# b9 c! }1 K) G. u.text:10024C46                 mov     [ebp+var_28], 0& B/ {8 |; p( ?# E: p) O. j$ |2 n
.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases# n8 R) {+ v( \+ G' I# X' N3 q" p' b
.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case3 b$ q) s6 H) ]
.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]
" b* a6 e2 d: }1 `.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump
2 W' \! b' c5 F# h) L3 I0 R! |6 g7 |. Q0 q& w8 Z+ s- c
[..]
% ^- r5 }7 ?# a3 |5 Z* `9 D. I+ G& ]* R! w1 @' M- {7 S. H1 _9 T
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
9 Q3 c* c* B9 {+ v# c8 P
& a: F- y! O' \& U  i) Y.text:10024F5A                 lea     ecx, [edi+958h]2 x1 t9 X3 p9 @- E* }
.text:10024F60                 call    sub_100237B09 f; U# T  o4 T0 v
.text:10024F65                 mov     [ebp+some_var], eax
; l% ~+ Q4 o9 U: \6 c.text:10024F68                 test    eax, eax
, X# S9 d5 ]" R( n/ y8 ], s.text:10024F6A                 jnz     short loc_10024F7D" I6 d2 J; T6 N. L
.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh
# }! F% V% O) r6 ?0 {2 I* R! h.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer
7 ~7 O  k1 j! Y: ~
; Q6 |; Q) {. i$ ^8 o3 z: Onext in IofComplete request will be rep movsd at pointer, that is under attacker's control
( T3 Q+ D$ p1 |) ?! Q" v
1 L1 Y- d8 z% F6 q6 C4 ^. l- WDue 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. ( A* V) X/ s, U4 P+ ]0 t- U; C, Q% Y
6 L# }' g) {) Q
Symantec表示在2月份的补丁包中修复该漏洞。+ O4 T: E* O+ L/ n* `

$ ?& h1 V9 i" |" b* A; a相关阅读:8 P1 g9 `$ c" l' `9 i5 R- U
. H- R! k7 E3 s
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。2 K5 G5 Y! ?4 m6 A( e" o1 ?
$ b. v5 ?8 U6 v8 d
回复

使用道具 举报

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

本版积分规则

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