找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2212|回复: 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。
! V, }* ~' S' z8 v. W# t/ E3 c2 A; J8 b1 x$ P1 [
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
) f& s6 C- ]5 ?' O0 i7 j2 `' r9 o* U5 h" `7 ~4 `- E# y9 r
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
+ s$ F( P, e" P: s3 y& t2 }
& d; Z; Q' q+ n4 A4 x. w$ |
2 _4 ]* F/ Y. D' |3 R- W8 ]/ A9 `9 D& P8 W
function at 0x10024C20 is responsible for dispatching ioctl codes:
! D. L* s) z; W! K: G7 o; w& c5 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)
' f! M1 l" c9 u& h  y# b. H/ ^: a.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap4 B. z. |0 z" I
.text:10024C20
# ~; l: k; A: d( w2 L! Z3 i3 G0 T.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch
( X7 l" U# ]: I% `2 C.text:10024C20 var_31          = byte ptr -31h# `* h1 g* r2 n( A' R
.text:10024C20 var_30          = dword ptr -30h
- g% d6 _! E! G6 J6 k- Z7 B+ y.text:10024C20 some_var        = dword ptr -2Ch1 `, o0 t; h3 i: h/ b* h4 n
.text:10024C20 var_28          = dword ptr -28h' \6 `( I' I( R5 K+ x
.text:10024C20 var_24          = byte ptr -24h. W' {: |! q% L8 I
.text:10024C20 var_5           = byte ptr -5
5 n& d! R' \" L.text:10024C20 var_4           = dword ptr -4
$ c9 ]& ^3 ?' {  }, z7 ^& _$ u.text:10024C20 ioctl           = dword ptr  8: x/ y+ j+ u* ]$ H+ {- J+ h5 e+ y
.text:10024C20 inbuff          = dword ptr  0Ch- r5 u  s2 C% U  U% [2 g
.text:10024C20 inbuff_size     = dword ptr  10h
& g! f/ O- M, l3 D; ^1 Z( C.text:10024C20 outbuff_size    = dword ptr  14h8 c. b& K9 D( C, Z6 B- F
.text:10024C20 bytes_to_return = dword ptr  18h
' K7 O  t8 f3 R$ J( [8 E) h0 g.text:10024C20* O: ]1 y' u( M% h8 j( M7 H' e$ Q0 R
.text:10024C20                 push    ebp
9 b" }$ ~4 F, q, T: l.text:10024C21                 mov     ebp, esp% h# F& d; _7 m5 J, i+ m$ @
.text:10024C23                 sub     esp, 3Ch0 x% N/ |0 [2 I  V' ~& B
.text:10024C26                 mov     eax, BugCheckParameter2
- i/ e* b: X2 S.text:10024C2B                 xor     eax, ebp
$ B7 ?4 Q  A* o' m/ ^( g.text:10024C2D                 mov     [ebp+var_4], eax' s- k* @; @1 T4 @, t
.text:10024C30                 mov     eax, [ebp+ioctl]8 I. s5 U' d! V) ^
.text:10024C33                 push    ebx
4 g1 m7 @) Q8 F$ S.text:10024C34                 mov     ebx, [ebp+inbuff]
$ U8 E3 U/ M- j! A.text:10024C37                 push    esi' B. J$ \, X$ y' H7 a4 v" ~/ h
.text:10024C38                 mov     esi, [ebp+bytes_to_return]
3 d- n0 @0 @9 r! s/ h6 ~2 h.text:10024C3B                 add     eax, 7FFDDFD8h; j$ U' ^0 T, J  {2 ]+ ~( Z: g: j3 @
.text:10024C40                 push    edi& c, H) s8 {9 }) t9 h
.text:10024C41                 mov     edi, ecx+ Z3 K! `9 ]" t# M" z
.text:10024C43                 mov     [ebp+some_var], esi
. Z3 `# q% P: N7 ~.text:10024C46                 mov     [ebp+var_28], 0/ ]. ?$ B/ W' h4 j: ~" Y3 z( A& u
.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases7 I$ E. a' C* }6 M
.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case
8 F$ Z. v* G5 a# K2 I.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]
5 q$ [. R" O2 y+ R5 D" z.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump
0 @8 I3 G7 g0 U9 K. B' c& D
9 A% i1 W; J3 W' W[..]
0 L5 e3 |# n, }6 S' e5 N9 f) S& v+ M4 r
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!/ j. f1 x* D. U! S* p" v
/ B* g% N" b) N$ I; U2 O
.text:10024F5A                 lea     ecx, [edi+958h]
6 W3 C; o+ n: y) g.text:10024F60                 call    sub_100237B07 b8 X4 ~5 n: [  H
.text:10024F65                 mov     [ebp+some_var], eax
* b+ ~4 ?) W  Z+ a- [.text:10024F68                 test    eax, eax  Q, x5 `% H. x+ I
.text:10024F6A                 jnz     short loc_10024F7D  y+ d7 ]% M/ _# x4 Z# Z
.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh0 M# q/ U: u" X( T" L% }
.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer
" H9 |& g" }: A' F; o5 H: z; v! w5 m
next in IofComplete request will be rep movsd at pointer, that is under attacker's control5 J; [3 ?1 q9 r/ J) M( [& x

# ]; Q1 ^1 ^' `( P+ MDue 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. + o) F3 S* |. y" s! Z0 e, ~* Q

4 Y/ P* G0 \; u* Y3 pSymantec表示在2月份的补丁包中修复该漏洞。, }' M' K- k$ x; K  X

# N9 G. o/ {- k9 j相关阅读:
: H# R+ x# E* r2 P# s; z) y' z
; {5 D% p  [6 U  y4 h/ A赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。% y( a: w# h5 p/ |7 K& c) D2 ^1 x
" e2 ^& C3 E. J! O+ X# m
回复

使用道具 举报

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

本版积分规则

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