找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2788|回复: 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。7 j* [3 R, [1 L: D# U8 ~
4 U2 j0 ?. x7 f' y9 k) _. m: u
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
, k! a( ^* Q/ r- ~& g/ S4 }6 a
5 e  C7 r2 n2 Z7 B- j研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
' M; _2 e& w. R  D
5 f: M4 b6 S; b9 I) n3 E / e( s. \. R- e% ~+ z
" k' ~* b7 O$ v5 h
function at 0x10024C20 is responsible for dispatching ioctl codes:
8 Z4 |) M- y' w( @3 ?8 }
5 _1 R6 d2 j0 ^* u# x3 b) F.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)+ C' ^' g2 q: b. N4 n
.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap7 _- R3 v9 e( Z3 Q0 i
.text:10024C20; }4 f0 Y5 H' t) R$ x% h
.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch4 x' @/ s# N* D' X
.text:10024C20 var_31          = byte ptr -31h
' p& ?3 ?6 B2 K6 ].text:10024C20 var_30          = dword ptr -30h
6 c$ B" E- F2 ~8 E+ g- p. m.text:10024C20 some_var        = dword ptr -2Ch% I. ], J5 U9 y
.text:10024C20 var_28          = dword ptr -28h" o0 Q7 y) V& O
.text:10024C20 var_24          = byte ptr -24h7 S3 w0 M3 f" D4 y
.text:10024C20 var_5           = byte ptr -5
) Y9 }5 a0 {. \7 W9 ^) b8 ?) s- c6 N.text:10024C20 var_4           = dword ptr -4
# ^# d$ v( C5 C# j7 h' z! o6 S.text:10024C20 ioctl           = dword ptr  8; H: N4 `% p, e  x4 G: ~
.text:10024C20 inbuff          = dword ptr  0Ch6 J4 r+ ]  Q$ T  p7 r; F
.text:10024C20 inbuff_size     = dword ptr  10h
" ]9 j0 M8 k+ ~$ b2 r' t. e) Q.text:10024C20 outbuff_size    = dword ptr  14h4 ~( e. m$ E& ^$ p6 C/ I8 z
.text:10024C20 bytes_to_return = dword ptr  18h
0 d% ~8 J( u& p! Q/ A6 w" g( h.text:10024C201 \: D- n1 t2 J' h% G- X
.text:10024C20                 push    ebp
/ S3 c! c0 |$ ?9 t9 C8 R- B.text:10024C21                 mov     ebp, esp
, E* l6 {, f( F) P# B/ S+ L. k/ a.text:10024C23                 sub     esp, 3Ch
' I# \0 b8 @% o% V" E) W9 J; x: P" ?( w.text:10024C26                 mov     eax, BugCheckParameter2
3 v- S8 g/ ?4 E4 a' ~.text:10024C2B                 xor     eax, ebp
8 t, S+ S& ^, m: B.text:10024C2D                 mov     [ebp+var_4], eax- r, Z7 E3 }; j" a5 x6 z5 I! S1 h% v
.text:10024C30                 mov     eax, [ebp+ioctl]* f2 \4 y% e: k* I3 R
.text:10024C33                 push    ebx
0 d! c( a- k0 [  U7 y.text:10024C34                 mov     ebx, [ebp+inbuff]
$ b- t- @5 W) C; }& _.text:10024C37                 push    esi
$ H* z6 U( R8 f; T& a7 S.text:10024C38                 mov     esi, [ebp+bytes_to_return]
" z5 W4 Z: b% Y9 F5 u.text:10024C3B                 add     eax, 7FFDDFD8h8 }/ f2 l, h# ^+ S$ a
.text:10024C40                 push    edi) }7 w/ s2 Z3 C
.text:10024C41                 mov     edi, ecx3 C: f; r2 N5 l7 Z/ n3 K5 B
.text:10024C43                 mov     [ebp+some_var], esi, o. z& M  l8 W( p5 I
.text:10024C46                 mov     [ebp+var_28], 0
/ A! g- X% U, {  t9 z- G! h7 {$ U.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases
3 w. r! P& r( k, D.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case
5 I- l* r1 D& j8 G.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]
/ A8 |! y% N8 f* Q: l! T: {  F.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump5 G* y' V1 I" p! t
2 ^. [5 l2 p1 g; o4 x$ K
[..]5 `0 G) C8 N" ?$ m; t  d9 D" L6 z4 H
, T& [+ W! X9 R, s. }/ \; q
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!; Z% J& d3 U0 x# v- v+ v
. a8 U+ @; k) J3 ^' B
.text:10024F5A                 lea     ecx, [edi+958h]7 n0 Y3 Z3 C, Q5 z
.text:10024F60                 call    sub_100237B01 f7 g) v3 U4 I
.text:10024F65                 mov     [ebp+some_var], eax1 V& z/ z5 l! e$ `/ @, m' D$ r1 T
.text:10024F68                 test    eax, eax6 S# f# ~* `# Q' y; v
.text:10024F6A                 jnz     short loc_10024F7D
9 [# D# h# j) A1 S.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh
7 h2 T1 r5 Q9 S2 J% @: ^" N/ m.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer* \/ G- `; F# {7 W6 {2 X" _7 l

- h3 V& j5 C; H) ^6 R: c# Wnext in IofComplete request will be rep movsd at pointer, that is under attacker's control7 I' ^6 u5 u  `4 K8 A7 e

1 L1 k% e5 A: ^8 X7 i: p0 SDue 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. $ {( j3 X0 d- L3 f

# |& H2 Z, @/ n" N1 x; vSymantec表示在2月份的补丁包中修复该漏洞。
3 \7 R7 h$ I+ g- L+ K4 u2 R9 [! L* U) \! n
相关阅读:
" t3 I6 d; A8 ^" r1 x
0 b. S0 Q1 H3 m  j# _/ R6 L赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。
7 ?7 k  C, D' g# r' l
4 S" c4 M. `$ H0 T1 K- D
回复

使用道具 举报

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

本版积分规则

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