找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2318|回复: 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。
" p& g7 b( v: k& T1 }: z- g( `. h4 U: r7 Q: e
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
& t# s# x% G" ?8 U6 i, f( l5 J& _, ?
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:( d) i0 Y6 i6 K: L/ P
8 s6 k7 q* b: b# i  o

3 E0 d/ {" X/ S6 ^
7 I2 G# _* d; `3 g9 ^0 Q; yfunction at 0x10024C20 is responsible for dispatching ioctl codes:
( c' v) r, C( v2 U& c
7 C8 F# R+ {, S: o2 f3 U. j.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)
6 R- c( j1 Z, _, K* b5 g.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap
, F. }* F. ?& ?6 S* @& M% G( D.text:10024C209 H* G7 q' Z0 {' g5 G4 }
.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch
) F! N) U1 E" G' ].text:10024C20 var_31          = byte ptr -31h
5 G) E7 B) \4 ^: i1 Q/ v.text:10024C20 var_30          = dword ptr -30h
: M7 Q) C  u2 g- ]9 {+ S.text:10024C20 some_var        = dword ptr -2Ch
* ~* M' V7 ^; W' q4 r( r.text:10024C20 var_28          = dword ptr -28h; j) o" |" n, ^- }8 c* }4 T
.text:10024C20 var_24          = byte ptr -24h( p9 M% J$ Y+ H3 {) G% z
.text:10024C20 var_5           = byte ptr -5
5 S) |; u( f1 g* J. `! v.text:10024C20 var_4           = dword ptr -46 ?! E* x6 `7 z" j
.text:10024C20 ioctl           = dword ptr  8$ @5 p4 s( c8 g) ~  r) {
.text:10024C20 inbuff          = dword ptr  0Ch* R5 k/ \/ U$ t7 w
.text:10024C20 inbuff_size     = dword ptr  10h
3 l) ^5 z1 D. N- L+ D) P.text:10024C20 outbuff_size    = dword ptr  14h
$ s; w: b% _# i/ s$ t.text:10024C20 bytes_to_return = dword ptr  18h
8 |; R& q3 M: l0 Q+ o.text:10024C20/ u$ i: K$ A8 g- R- b6 Y
.text:10024C20                 push    ebp$ I; `, n: P' t1 w8 I% v
.text:10024C21                 mov     ebp, esp- z' B8 m! ^5 |
.text:10024C23                 sub     esp, 3Ch& s8 P: J: Y- v
.text:10024C26                 mov     eax, BugCheckParameter2
, O. m$ a% X+ M5 X! V: X.text:10024C2B                 xor     eax, ebp% g4 N& \+ F" q; f9 ]/ _5 a: `
.text:10024C2D                 mov     [ebp+var_4], eax
: j! ~9 r6 J' n* o  p, `.text:10024C30                 mov     eax, [ebp+ioctl]; C5 l6 `$ X, V2 p
.text:10024C33                 push    ebx
$ j  P) M6 v; @6 x: ^6 H.text:10024C34                 mov     ebx, [ebp+inbuff]0 V% N: G! Z( S/ c4 J7 _# n" x
.text:10024C37                 push    esi
  H0 N# }& c1 n- W* _1 g: U& z7 ?.text:10024C38                 mov     esi, [ebp+bytes_to_return]& a) h& w: Z, V' d0 j% s4 b
.text:10024C3B                 add     eax, 7FFDDFD8h9 Z  B* C1 X$ V9 f3 _
.text:10024C40                 push    edi
* m, s8 t) h& h* M' S8 }: x4 s* a.text:10024C41                 mov     edi, ecx& O, Y7 ]- J( H4 L+ s3 y$ m' D0 w
.text:10024C43                 mov     [ebp+some_var], esi
; G$ M  |+ ?, _.text:10024C46                 mov     [ebp+var_28], 0
, ^% d* l( I( \7 _7 @, b.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases- [* M! I  g7 y- W6 v' Q
.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case
" E. S: ]3 ^! L. z! w9 a3 C: O, h.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]
# S" S+ M6 \" G2 m8 i5 Y4 ?.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump
  f; Z9 k& @. A0 b6 w9 \7 ]9 K# e5 J8 n& D6 [$ A5 X2 O
[..]" [9 [. f' Y4 H* v" y# d( S

4 A% x# U* _+ Q: _2 Q& I/ D' N0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
) ]$ o) y) n: m0 O1 T
" `" L( W5 b0 ^2 Z6 Y6 y+ q% l.text:10024F5A                 lea     ecx, [edi+958h]: Q; X# x/ I  e" D' \; K
.text:10024F60                 call    sub_100237B0$ n9 T0 p5 D+ w; ?. Q
.text:10024F65                 mov     [ebp+some_var], eax' r- y/ t, s* L4 T. o9 v5 I- \: C
.text:10024F68                 test    eax, eax
  R1 n7 X6 X* ?6 A4 a1 K8 e.text:10024F6A                 jnz     short loc_10024F7D" @- w7 b# F: J9 z' [
.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh
  A- i) C! M; y8 M( o; W, t.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer
3 V2 v/ [  X8 P
2 i) G6 P# D# D9 Y* gnext in IofComplete request will be rep movsd at pointer, that is under attacker's control9 _& Q) h& I" d  L( ^% {- I0 z+ A
- e. x3 E# D4 E  T5 n+ v9 W
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. ) U, p) d$ a# v2 S$ e" j
& d, i3 Y# o0 P8 m' M  j
Symantec表示在2月份的补丁包中修复该漏洞。
2 ?. P- e  o- c) a+ {* g+ U; a% p: ~' S& a; i9 n
相关阅读:5 N5 i  n& ]$ X  p+ m$ H/ v0 A
! y3 f% i, L/ |8 D! J: t
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。
! x) P9 ]0 o7 f7 `
" y9 v) E! P# R/ I' J
回复

使用道具 举报

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

本版积分规则

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