找回密码
 立即注册
欢迎中测联盟老会员回家,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。
' Q! l4 v1 g9 P% d/ B4 c, u9 R* j  k0 c
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。) q+ q# X0 h+ r

8 ]% j+ ^  h) B" i# ]- Y$ D0 K研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
, p: V) F' H  b2 i& }* C2 S  K, v* J1 \) d

( g; V  z* t; X8 u; \7 y* x1 o7 ]2 V% o, }
function at 0x10024C20 is responsible for dispatching ioctl codes:
) T& }2 s7 K2 l5 i+ P
3 f5 x. B5 `# O0 [0 ]7 Q% ?7 c) 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)
7 g! V# {1 _) m+ c# Y  @1 [9 x+ e9 i.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap
) r- @7 g: }# W3 U: x' _* b  O- ^. n.text:10024C200 M# i* y2 f# N" T, Q
.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch% H: m' k: Q' r4 Y& |6 K
.text:10024C20 var_31          = byte ptr -31h7 B; [5 X0 {7 l( M$ O1 U8 S
.text:10024C20 var_30          = dword ptr -30h$ `- N: `' G: x. E% A* Z" ^- L
.text:10024C20 some_var        = dword ptr -2Ch
* X: C) w% O( ]: N: J  l6 @.text:10024C20 var_28          = dword ptr -28h
8 D! T  L' m9 u0 x- w.text:10024C20 var_24          = byte ptr -24h
! \: ?7 Q% Y6 w) Y3 T.text:10024C20 var_5           = byte ptr -50 H9 W: Z* X9 k3 T0 q* g+ S, ?4 U
.text:10024C20 var_4           = dword ptr -4* [' n% ?% y0 U
.text:10024C20 ioctl           = dword ptr  8
0 y! n% O( Q* T' F9 f.text:10024C20 inbuff          = dword ptr  0Ch% r9 a7 t* |$ c: h0 D
.text:10024C20 inbuff_size     = dword ptr  10h
& C- i; F% i+ L' X.text:10024C20 outbuff_size    = dword ptr  14h
  _( i7 V  x+ A" U& B  H.text:10024C20 bytes_to_return = dword ptr  18h
6 ?3 ~" B- S) D( l# `! K' q.text:10024C207 T6 G+ |3 s3 a$ B
.text:10024C20                 push    ebp$ B, z7 k9 m1 ~
.text:10024C21                 mov     ebp, esp
' U/ m+ D% S, ^  `.text:10024C23                 sub     esp, 3Ch
0 X) p: g1 a( L( T" h; Q7 U.text:10024C26                 mov     eax, BugCheckParameter2
0 t/ j9 d. V" }) ~7 Y' A.text:10024C2B                 xor     eax, ebp' H4 S( A3 H1 R1 S5 u  H! ~7 H
.text:10024C2D                 mov     [ebp+var_4], eax. B2 m) P/ Y7 s$ R' Y  x, b
.text:10024C30                 mov     eax, [ebp+ioctl]
2 `# v- ?6 t9 H.text:10024C33                 push    ebx, O8 A: J( K. H* K$ n
.text:10024C34                 mov     ebx, [ebp+inbuff]7 V9 Q) g3 K5 W  p3 c
.text:10024C37                 push    esi
1 a  e; p  A% k.text:10024C38                 mov     esi, [ebp+bytes_to_return]
% z2 a4 K% |- g( W.text:10024C3B                 add     eax, 7FFDDFD8h
- [4 X* v1 X7 g. h.text:10024C40                 push    edi
. s: A# ?' {7 {0 X8 |/ u.text:10024C41                 mov     edi, ecx
0 b; I% y1 J: h; H; P.text:10024C43                 mov     [ebp+some_var], esi" i- Z; o+ n: I4 P0 ^1 ]$ }
.text:10024C46                 mov     [ebp+var_28], 0
( V$ Y: ^% s5 R; s0 ], `.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases
3 k! m  z: k" x.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case
; K. s8 ]: i8 e+ i6 H, x.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]
9 x- g7 b- I' ]  t3 h# u4 Q.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump
+ V; q6 c7 ]. ~  Z" m& \7 J
- O$ ]) B: l1 Z[..]
2 D. |7 V4 Y1 e5 Q6 H! g" d
% u8 W. f) }& N0 _, V. Y0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
  j/ M' ~. O+ N; S: m7 D6 f, }1 r4 f# J, ^4 h6 W4 {$ i
.text:10024F5A                 lea     ecx, [edi+958h]
6 p) _; ~& @2 t! R.text:10024F60                 call    sub_100237B0
( |/ T+ b; y. z$ e.text:10024F65                 mov     [ebp+some_var], eax; l9 {9 X& \; ~: y7 a& U: W; v& X( U  j
.text:10024F68                 test    eax, eax  y1 v% M- y, t8 A& w1 W
.text:10024F6A                 jnz     short loc_10024F7D
. E& l$ a) [# R& l; n: R7 ^* k.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh  `' y* M$ N9 L) ]  \3 V
.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer' h8 |/ i! a9 z2 n9 |& J
& f% h" ~) |3 j" t8 g
next in IofComplete request will be rep movsd at pointer, that is under attacker's control
! z9 p: h  o) C3 U: e; B4 t" G1 b' Q4 D+ _2 e( h  \" [. k
Due 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.
/ M6 M  I; {3 E' H6 u
7 K) d" p- G) K9 p" KSymantec表示在2月份的补丁包中修复该漏洞。2 c* E9 G8 \( _) R, T2 N) S# b
2 @" q! B- K3 k# b
相关阅读:6 M$ T0 j! z* q  ?  K3 g
1 D5 `+ D  i( z. c( D# w5 T; Y
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。
: q- L% F1 b# g% b7 @7 S
* o/ T' D+ N! j4 {( Q- r: A
回复

使用道具 举报

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

本版积分规则

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