找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2328|回复: 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。+ h  ?; r! t6 ?8 d# Q* `! e: L

0 B8 k! O+ d( W0 J% HSymantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。6 e- N9 D0 t9 g6 w0 L4 `! A0 Q

; c" R7 O# g7 K( o3 D" U  L研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:- y$ [8 f) e& S: t( _7 f+ Y

4 J% v$ G2 a9 F/ C2 E3 P- A 4 c3 M- b2 v  k  F# m) e
% w5 O1 R/ k7 }' O8 \5 M
function at 0x10024C20 is responsible for dispatching ioctl codes:
5 t0 o1 P% i$ d1 o. W' V
, H# u2 \8 P' {, ^.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)( i+ a' J/ u( u
.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap
# w: _$ v) H  }8 o  V1 d.text:10024C20
+ \" y! k% w. r.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch
, ?- W5 Z9 W( q% e% z. \.text:10024C20 var_31          = byte ptr -31h
$ {6 H+ ~& F/ F- s.text:10024C20 var_30          = dword ptr -30h
; I  ]" B: X6 @/ P0 c* N.text:10024C20 some_var        = dword ptr -2Ch4 I/ I. a4 O, |7 g5 ^0 Z9 p, Z5 y/ v
.text:10024C20 var_28          = dword ptr -28h
$ u. Q$ A, a5 t0 [.text:10024C20 var_24          = byte ptr -24h
- N, n/ m# x/ t6 |: ~.text:10024C20 var_5           = byte ptr -5
4 N) p5 N6 }( ]6 U. R' l  }.text:10024C20 var_4           = dword ptr -4, ?( [4 ^1 r$ Y8 }
.text:10024C20 ioctl           = dword ptr  84 @9 x" s3 \( S8 X# H1 S6 }  `
.text:10024C20 inbuff          = dword ptr  0Ch
7 V$ K, P. r. _.text:10024C20 inbuff_size     = dword ptr  10h$ o, s; e' y: |3 O) R# W% m* d
.text:10024C20 outbuff_size    = dword ptr  14h
8 `7 r& i9 [, E* o) a.text:10024C20 bytes_to_return = dword ptr  18h1 R/ I' ^5 C" T0 X+ v' d7 u
.text:10024C20
+ y; i& Z' Q* m) @  {' U.text:10024C20                 push    ebp1 |* |; h( J3 b1 [8 y
.text:10024C21                 mov     ebp, esp3 f# L6 U7 |7 }( s5 C% W
.text:10024C23                 sub     esp, 3Ch( t1 X+ K! F& a. O
.text:10024C26                 mov     eax, BugCheckParameter2
  s0 d( ^' ^' f  M+ Q1 d# ^+ H.text:10024C2B                 xor     eax, ebp
0 j. r  p7 ?# r/ N* A4 X9 a6 m* a.text:10024C2D                 mov     [ebp+var_4], eax7 u. k6 h6 x0 \+ @+ Q6 s
.text:10024C30                 mov     eax, [ebp+ioctl]
9 D. U$ K: O0 G6 D" C1 X.text:10024C33                 push    ebx9 v# T9 R+ l- b
.text:10024C34                 mov     ebx, [ebp+inbuff]: j: d2 Q1 B$ {4 E! r# h. w
.text:10024C37                 push    esi% C' e% M% j: a/ Y9 `" C. i
.text:10024C38                 mov     esi, [ebp+bytes_to_return]
1 ^% A2 K: G' ~4 X4 n1 O.text:10024C3B                 add     eax, 7FFDDFD8h  @. p8 O0 r7 h! t, M( h# w* n! a' [
.text:10024C40                 push    edi9 R) u1 |/ S) F/ t: i6 h( _9 K
.text:10024C41                 mov     edi, ecx
+ z% @0 {7 ~  ]+ d1 h4 V.text:10024C43                 mov     [ebp+some_var], esi3 f$ r; E" W, |5 X* F
.text:10024C46                 mov     [ebp+var_28], 0' \; e: `: Z  F1 S5 v1 _" S/ h
.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases
& \9 M, t; F% ~) v# o% `% n.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case
6 |  H; T1 L8 ~* T. m5 D. W.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]
. k: e  S7 [# d# X.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump9 F9 f  }+ \' K
7 v% B; }2 y9 W# ]$ N$ L8 ^
[..]4 H! L  V  U. P! T$ K: {" j
: W) ]( E3 d/ L8 m: I  \" {0 N6 C
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!; o9 ~% Z2 t* u9 n! D/ F3 d

8 J3 ^* s8 T0 M.text:10024F5A                 lea     ecx, [edi+958h]4 u' J+ o+ ]: L. k
.text:10024F60                 call    sub_100237B0
$ }7 @7 Q5 N4 d+ ?- m- g0 `; M.text:10024F65                 mov     [ebp+some_var], eax
4 r! }5 l& ^3 t3 s3 D' F/ a.text:10024F68                 test    eax, eax7 L8 j# Z& E% }& |
.text:10024F6A                 jnz     short loc_10024F7D
, M7 i! j& }( B* p9 z5 b.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh1 ~5 y% z. ?2 @$ O% n2 a2 M
.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer
: a, D( ~. }- k# B5 T7 \- Z( q1 z
6 ]9 G: Y. n8 \next in IofComplete request will be rep movsd at pointer, that is under attacker's control+ g  I) l' O2 b8 D: n3 K

- H1 s3 {8 u" Z) T" w; x2 FDue 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. * d" W7 Q3 q' M- U

! y1 p7 R6 E5 c, r# tSymantec表示在2月份的补丁包中修复该漏洞。
0 ?- P; m) ?0 V8 Y7 u! }
, b% e: {- k+ p& J' j5 [相关阅读:  q* j' M6 S/ R1 u
7 x# X1 X& O5 U/ c. @  e) g
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。# R* G. H7 q/ ]" A. s) Y

  d' y3 |/ E  l1 ]% q! S
回复

使用道具 举报

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

本版积分规则

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