找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2319|回复: 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。
. r# L/ o( H, m3 ]6 ~/ D
+ k$ G  m+ z' K0 C& P0 _Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
/ m( B) O/ R- k* ]9 n, c  D* d/ a+ G/ Q( R  L$ s
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:% N$ J* _- X* q9 R1 P

0 y) z2 [# l- K  _* `
, ^" S9 ~7 {1 c+ y: k- D5 I, m3 P; g$ d) \
function at 0x10024C20 is responsible for dispatching ioctl codes:
% y, r9 J5 D% T7 H; a0 j
4 ], {; p5 X* s2 s' n2 r.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)
/ g9 T# D$ \0 {.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap
9 Y5 I+ ]/ \; f/ `7 O' J2 q.text:10024C20
% {, e: P. Q2 E& }$ }# U5 f.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch
& H% a- u+ F) Z9 t' ~# n* t: p.text:10024C20 var_31          = byte ptr -31h
! \9 r$ A3 d+ ]3 X6 ^.text:10024C20 var_30          = dword ptr -30h
4 q. j) C4 [; Z9 e; d4 L% Y.text:10024C20 some_var        = dword ptr -2Ch9 k& n1 r" E) l+ A" q2 z
.text:10024C20 var_28          = dword ptr -28h4 q  K# s+ J" L9 J
.text:10024C20 var_24          = byte ptr -24h& X$ j+ f. T6 u: f, {
.text:10024C20 var_5           = byte ptr -5" H6 H7 N6 h6 |3 S0 N1 |$ ^$ z2 B
.text:10024C20 var_4           = dword ptr -4
4 H( X/ _& U- A; z( H% ~; @) U7 L.text:10024C20 ioctl           = dword ptr  8% Z, |5 {; \; F/ G0 E9 v5 ?* i0 ?1 i
.text:10024C20 inbuff          = dword ptr  0Ch
6 |. C& a$ d3 x) C.text:10024C20 inbuff_size     = dword ptr  10h
3 @! H9 X0 H! [/ [.text:10024C20 outbuff_size    = dword ptr  14h
- l$ w$ [  Y3 s# R.text:10024C20 bytes_to_return = dword ptr  18h# z' W. t+ o* D
.text:10024C20
  F+ N; B3 @* e  R' v6 Z6 O.text:10024C20                 push    ebp; F( B2 `' r# {. G5 M
.text:10024C21                 mov     ebp, esp
5 @6 z. Y5 H+ K/ B9 @6 g.text:10024C23                 sub     esp, 3Ch
1 P* s9 y0 q* }# e.text:10024C26                 mov     eax, BugCheckParameter2  f; M. b, ?$ _1 U! }
.text:10024C2B                 xor     eax, ebp0 Y- Y- @2 P& l
.text:10024C2D                 mov     [ebp+var_4], eax
; U0 c: n- _0 v% T.text:10024C30                 mov     eax, [ebp+ioctl]
0 w! W& i( x: X% H/ {.text:10024C33                 push    ebx  C# N  {+ P' X# x
.text:10024C34                 mov     ebx, [ebp+inbuff]
* i& n# d9 [0 Q3 J: i; l.text:10024C37                 push    esi2 ]% ]/ t# p1 ]( @4 x
.text:10024C38                 mov     esi, [ebp+bytes_to_return]9 `% }, Q! w3 W
.text:10024C3B                 add     eax, 7FFDDFD8h
8 f( j  n( c# \4 ^% W+ K) M.text:10024C40                 push    edi
/ d: @& T/ S2 N( Q$ A# p.text:10024C41                 mov     edi, ecx
& m5 M8 `2 l( `" n/ a$ o2 f.text:10024C43                 mov     [ebp+some_var], esi
1 x, }! F3 y9 o, L  @.text:10024C46                 mov     [ebp+var_28], 0
, N% a2 P5 h/ n: z.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases, A7 B- ^/ V' p. I1 [9 n$ u
.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case* [# y8 W9 B+ W) V
.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]1 \* z- n5 f$ z( [; P
.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump
$ W7 ?  d, G" b& j- {- r6 x4 e* N& O: A. F3 J1 n7 [, H' G; F
[..]' a2 r2 p5 O) X, I; ~( B

# k7 w% Z8 p  }# w0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
! a6 I2 l. ]2 D+ F2 k0 H$ e
* q4 C8 @9 c2 ]  G.text:10024F5A                 lea     ecx, [edi+958h]
2 f6 t9 \7 [# U' b) s9 _* P' u.text:10024F60                 call    sub_100237B0
$ ~( k: C/ r. L8 w3 A: A.text:10024F65                 mov     [ebp+some_var], eax
% }% B* {8 P) e4 w3 L9 ^$ c% d.text:10024F68                 test    eax, eax
" X- G- @0 }+ K2 ~! e.text:10024F6A                 jnz     short loc_10024F7D0 a4 [- N/ f2 b0 {' `/ P$ f+ p* }+ |. L
.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh
7 Q: m% j+ Q$ u/ r# Z+ X.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer2 _) `3 e/ X9 M6 j, @
: C. {$ E# P( m1 C) {
next in IofComplete request will be rep movsd at pointer, that is under attacker's control
% D" p+ R! Z$ R0 @! x" D/ c
5 W+ P3 \" a/ hDue 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.
9 `- _9 T% b4 l9 x, q5 o9 K* r, ~" i) N
Symantec表示在2月份的补丁包中修复该漏洞。0 W+ E+ k3 Z! ]$ w- j) E4 Q* u

. s9 j9 q4 z# \0 }! u9 o" R* F相关阅读:2 M  y3 A' f7 _1 x9 p5 B

. V1 B1 s& G9 ?6 ^$ Z赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。$ }9 i( d* ]# L' ]! P# Q

* O) @' a5 a9 t. i8 O* h( }
回复

使用道具 举报

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

本版积分规则

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