找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2524|回复: 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。. i0 L9 `' Y" q1 Z

% `, ~) a! R6 H& \  J/ gSymantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
/ D  k0 h. t& N9 {$ i0 E4 H/ Y$ M
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:# j) s) G( {9 `/ S
0 `+ Y% I' u1 [2 P3 Y. m3 V

. ~# ^+ [& L9 \. ?& b0 Z! o( c( G, J4 m, O
function at 0x10024C20 is responsible for dispatching ioctl codes:
5 |+ R5 r( W* b( N  c" y! O
7 O# ]8 I/ X- g5 [' n5 h.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)
, N8 c$ d4 l5 u& ]- o.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap! j0 v7 U! U, `* A# Y, f0 P8 o1 k
.text:10024C20
' b/ A7 o2 W1 p) }8 z! |( A. G.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch5 Q# r0 A: e, K& K# A2 n' H: x. I; P5 c
.text:10024C20 var_31          = byte ptr -31h
- Z$ X0 S2 y) l- `1 t6 P- p6 F.text:10024C20 var_30          = dword ptr -30h
$ n1 v! ^6 f+ ?; b/ X3 j.text:10024C20 some_var        = dword ptr -2Ch+ V2 D: B1 T2 X7 @
.text:10024C20 var_28          = dword ptr -28h& c5 F! D- t: Z
.text:10024C20 var_24          = byte ptr -24h3 M: K: z, t5 @7 ?1 C2 t
.text:10024C20 var_5           = byte ptr -5
$ }4 Y* Z, @% M' k" \/ C& Z.text:10024C20 var_4           = dword ptr -4
% L- M% V" U; `5 f.text:10024C20 ioctl           = dword ptr  8
0 {/ w% l+ I9 b6 M% k( _5 q.text:10024C20 inbuff          = dword ptr  0Ch5 r, k; [$ N5 }+ K$ h. \
.text:10024C20 inbuff_size     = dword ptr  10h9 U' G  i- R& V2 D
.text:10024C20 outbuff_size    = dword ptr  14h
8 x& N- Z4 l! w0 I.text:10024C20 bytes_to_return = dword ptr  18h
2 T* r" }  j: Q.text:10024C20
9 @* G0 ?) q9 g9 r3 t( A" v.text:10024C20                 push    ebp; {# T- L$ D$ U. ?+ s
.text:10024C21                 mov     ebp, esp
* w1 g3 k7 h* \" j.text:10024C23                 sub     esp, 3Ch- C' u/ j3 Z7 p* X4 b5 A
.text:10024C26                 mov     eax, BugCheckParameter20 _5 J9 W4 I2 f, E+ L6 Z9 K
.text:10024C2B                 xor     eax, ebp+ g+ Z1 h' ^* Q' B5 `
.text:10024C2D                 mov     [ebp+var_4], eax. v" r6 a# M+ R2 V
.text:10024C30                 mov     eax, [ebp+ioctl]
6 L. }/ \# }" s.text:10024C33                 push    ebx$ I* f3 M, o2 B  |
.text:10024C34                 mov     ebx, [ebp+inbuff]% p$ f$ J6 _. T0 J8 A. H, H
.text:10024C37                 push    esi
. l0 k# K3 N+ ]5 \6 r.text:10024C38                 mov     esi, [ebp+bytes_to_return]
5 E4 n  l2 a1 d- M6 h.text:10024C3B                 add     eax, 7FFDDFD8h
8 k1 y3 Y, v# n. n.text:10024C40                 push    edi
3 Q( V5 o6 i- o5 f0 P5 {* j.text:10024C41                 mov     edi, ecx2 N; z% |0 C1 y' A- l
.text:10024C43                 mov     [ebp+some_var], esi. j. Z% U7 W) u& c9 W8 V/ |/ o
.text:10024C46                 mov     [ebp+var_28], 01 n  H. p- J" m" e1 O% d. X/ Y* ~
.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases
! G7 y1 L3 U* F0 q.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case4 X0 m0 |9 E8 O/ g
.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]3 r. `- [# p/ R) ?
.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump1 d1 i/ w7 e3 A/ ^. W. M# [: q
3 r5 U9 h. \6 @* Y' l! O' h
[..]
; Q5 v+ n$ v; y0 k. _0 d' h5 `- U0 ]. J( e8 Y4 k1 C
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
' D' O; Q' N' _4 c; X2 @/ i0 V' g! ~2 v4 w- k
.text:10024F5A                 lea     ecx, [edi+958h]
' X  P, E4 U9 s3 r2 ~# @.text:10024F60                 call    sub_100237B0
+ b" {+ v4 ]3 @0 p( K" |* S8 c.text:10024F65                 mov     [ebp+some_var], eax
: t3 Y! ^* n/ L5 b, r# o.text:10024F68                 test    eax, eax
, B5 O" \4 M, g& \  x.text:10024F6A                 jnz     short loc_10024F7D$ r: q+ t/ l2 ?+ ~6 g) X: e) i/ w
.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh
, B8 @3 M2 v, o7 L- s8 N.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer$ _$ _2 ^4 a3 T

, O1 g& Y- C! S) [& T6 Inext in IofComplete request will be rep movsd at pointer, that is under attacker's control
2 I  Y: D6 E( Z; D. O% ]% ]9 R: d- K; Z
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. ( T' Q$ s# p& X( p3 k
0 X0 s% B% ~7 c! q" R% X+ A
Symantec表示在2月份的补丁包中修复该漏洞。' k- _0 A% u. C# h- R
' @$ `% u9 L- L  n. ^' b  J
相关阅读:
/ z$ c. n, |- ?: m; t4 G0 z' j- O! z# H1 y) w
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。7 o# }+ B8 q: T

/ _5 J& y; g2 z  r2 [! B
回复

使用道具 举报

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

本版积分规则

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