找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2438|回复: 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。* u* @# ~. a' X$ I8 d: ^
: f/ b4 R1 I7 p9 G: o
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
$ x$ |0 e  M% d, T) u" F  Y# h8 `/ A  T! P
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:$ b+ m; |. m# D0 ]# ]9 B! O
2 V, Q' p) x- t) J% F7 U

: z/ {3 W0 M0 k+ O2 N/ _9 n% e3 q+ z' I( T5 r
function at 0x10024C20 is responsible for dispatching ioctl codes:* X: f7 X' g! K2 [& z

4 w, j* P7 B! ?' ?# B9 X' A0 @$ Y.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)
3 N4 U, g2 c/ `+ i/ K3 I.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap, R2 A! D& u1 U4 |, \7 G
.text:10024C20
! y) y/ |3 h/ X; p.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch
3 }9 k; I' ^& @: i.text:10024C20 var_31          = byte ptr -31h
3 ^- a! l  W. D7 S9 q7 @.text:10024C20 var_30          = dword ptr -30h* W6 n* O# N8 h: {7 b1 r
.text:10024C20 some_var        = dword ptr -2Ch
$ L0 q5 e, y) x0 f.text:10024C20 var_28          = dword ptr -28h' m2 l6 s/ R* {& A2 {
.text:10024C20 var_24          = byte ptr -24h! F+ l3 b% Z5 U
.text:10024C20 var_5           = byte ptr -58 C! X: e7 l% @$ J& r# m' H
.text:10024C20 var_4           = dword ptr -4
' c$ n; {' |! L  P! j5 c.text:10024C20 ioctl           = dword ptr  8' f2 t6 B" X$ }/ _) j
.text:10024C20 inbuff          = dword ptr  0Ch
; l; e9 r% a, A, P.text:10024C20 inbuff_size     = dword ptr  10h
& x6 y0 s! W' r" G8 j.text:10024C20 outbuff_size    = dword ptr  14h! W. U' ?* X7 x, T7 d
.text:10024C20 bytes_to_return = dword ptr  18h
6 K: s$ D! y( |3 ~& N- t( A1 R.text:10024C20
* }; I% a$ J& [+ D7 H.text:10024C20                 push    ebp" p5 {" }* a: x7 f6 w+ }2 Y2 `  a
.text:10024C21                 mov     ebp, esp# s0 h5 B. U6 L; S  _
.text:10024C23                 sub     esp, 3Ch: _* A4 @' V( \" K
.text:10024C26                 mov     eax, BugCheckParameter2( m1 V) {$ n$ B+ J7 R
.text:10024C2B                 xor     eax, ebp
7 P# D& ]3 J  I.text:10024C2D                 mov     [ebp+var_4], eax
' B" L$ z' S/ G/ m.text:10024C30                 mov     eax, [ebp+ioctl]
; n1 M( {5 U5 D3 _* e.text:10024C33                 push    ebx3 U2 ^' W3 x8 G# q4 M+ [
.text:10024C34                 mov     ebx, [ebp+inbuff]3 N: S- P  T9 V, ]4 O) q
.text:10024C37                 push    esi
, w1 o, X. g( t& A2 E9 P.text:10024C38                 mov     esi, [ebp+bytes_to_return]5 ?/ u8 h! |$ |& H6 k) u
.text:10024C3B                 add     eax, 7FFDDFD8h5 b$ ?0 K% V8 _, Y  X9 v- Q
.text:10024C40                 push    edi
; O# Y2 k( \- H$ @- q& e( u.text:10024C41                 mov     edi, ecx
& M  C  ]3 J" U* M  i.text:10024C43                 mov     [ebp+some_var], esi- a& F. y  t$ |* n. {3 B
.text:10024C46                 mov     [ebp+var_28], 04 B) |- S, H$ ^8 I5 V
.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases
" Y) f3 v* j& A$ d.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case$ y3 A- R6 s5 a  S) I  k
.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]
, P* H( Y0 o4 b( _.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump  `% u1 _+ i2 u1 `% ]1 H

4 R2 e' M1 i1 E0 E& Y1 t[..]# L' x4 n% h3 I* Z2 p& H3 \! e
7 k- L+ W& L6 Y2 i2 L+ D& |7 \
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!1 e* }5 D# ~, b: ?) D; f
( d) {/ H) e6 G6 p  y# x, x2 t( o
.text:10024F5A                 lea     ecx, [edi+958h]# T$ ?6 T- J  `6 D: Z( A
.text:10024F60                 call    sub_100237B05 }3 i! h6 \- ?$ E8 @
.text:10024F65                 mov     [ebp+some_var], eax$ h; `# u2 u# c) M" v( f
.text:10024F68                 test    eax, eax; c( r6 m1 t, G$ c
.text:10024F6A                 jnz     short loc_10024F7D* c- v/ Y& C' v, `7 Q& f7 V/ v
.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh
2 d& @" R: ]' i. H, ~- l.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer6 v' o9 ?2 T( m1 W. o7 P
7 `  I$ U0 a. i6 I" s! s1 P
next in IofComplete request will be rep movsd at pointer, that is under attacker's control
" n3 E8 l  \3 D  E7 v4 w) H2 v; [0 `$ K6 F7 D' r
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.
% `( k% X+ J! U* K% y
+ W, d1 w) n( NSymantec表示在2月份的补丁包中修复该漏洞。$ q; ?$ R. C2 k1 E0 H

% M- d8 G% u$ q相关阅读:6 z! _4 O( I6 v; C" s
) a+ O8 H. Q5 o" h- J* ^+ p
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。
5 B$ N4 x+ k: U, h2 ?8 v  M/ m; y& L- g: [$ _9 f, e  ~& w* c
回复

使用道具 举报

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

本版积分规则

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