找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2202|回复: 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。
7 S' E; W9 w: z, h- L- |! J% M) k6 v* B2 i1 D  @- U7 T) L$ R, V/ R, b
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。" |+ X- T* C+ D) a% {$ h

: v7 W% o9 L4 H- @0 ?研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
) q. u: ^* Y8 _6 T3 i
& j6 B; ~8 ~4 L& r7 k " y( Z. R: u1 R6 k. a
' W- [- D% L- [/ K3 Q( W
function at 0x10024C20 is responsible for dispatching ioctl codes:1 R% P# p4 H* C9 P3 T! a

% O7 p; l/ j$ b- Q0 {.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)
9 T7 H" U, B& ].text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap
2 _6 @7 _% ?, ?6 _, S.text:10024C20
) T7 E2 ]8 f1 \  i1 g# }2 b.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch
( r9 ^4 o! ^0 ]+ n+ {( X: N2 S.text:10024C20 var_31          = byte ptr -31h
" ^1 k8 e# s1 J, w( Z" ^) ^.text:10024C20 var_30          = dword ptr -30h
3 B$ m1 F/ ~9 ?4 A! L.text:10024C20 some_var        = dword ptr -2Ch
0 N4 W$ W4 P2 q% V% I.text:10024C20 var_28          = dword ptr -28h/ @. i' i+ m* O- y
.text:10024C20 var_24          = byte ptr -24h
% M3 D, ~) h5 a.text:10024C20 var_5           = byte ptr -59 ^# L: E- g. @
.text:10024C20 var_4           = dword ptr -4
- W  ^0 @; f) I$ j- d' {9 B.text:10024C20 ioctl           = dword ptr  8( I' b$ t& s% S; R' j* A" e) c
.text:10024C20 inbuff          = dword ptr  0Ch
  z9 o; O  V# ~% p.text:10024C20 inbuff_size     = dword ptr  10h
; {% L0 S5 _/ L# N5 u. L6 ?4 d' h.text:10024C20 outbuff_size    = dword ptr  14h' e. d" U8 M9 t( z; @
.text:10024C20 bytes_to_return = dword ptr  18h
' k/ L$ k9 E2 b.text:10024C20: W. v& d8 u5 G, i! b; e% `3 z
.text:10024C20                 push    ebp
5 {3 {. k- N* Y6 b* h: @' T' n9 x.text:10024C21                 mov     ebp, esp- H6 [! k* F9 Y* p
.text:10024C23                 sub     esp, 3Ch
) u! @( y, [2 }0 l. H9 R.text:10024C26                 mov     eax, BugCheckParameter2. k+ Y% E1 s+ b+ z' V
.text:10024C2B                 xor     eax, ebp
( o7 ^& p+ t: L4 K1 l.text:10024C2D                 mov     [ebp+var_4], eax5 d! q6 i; u: i# `1 S- v; E
.text:10024C30                 mov     eax, [ebp+ioctl]
3 m: U- T+ N3 Q9 x& V.text:10024C33                 push    ebx
8 _; a2 ^6 U4 F" o* @4 s3 g+ E.text:10024C34                 mov     ebx, [ebp+inbuff]
9 w0 G* V/ v2 M' v. w# K1 w0 y.text:10024C37                 push    esi
# I, c) _- b8 _# T9 W.text:10024C38                 mov     esi, [ebp+bytes_to_return]4 ?  n6 X4 J( U$ _% d
.text:10024C3B                 add     eax, 7FFDDFD8h
  H, L: h( r: y) w  p.text:10024C40                 push    edi
& ~, u7 A5 X- N9 e1 p$ K.text:10024C41                 mov     edi, ecx# d0 w) m/ n6 l- x% y
.text:10024C43                 mov     [ebp+some_var], esi
+ L* Y' J8 Y  Z.text:10024C46                 mov     [ebp+var_28], 01 [4 D2 Z& w+ X- j& U5 {5 \
.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases
1 e0 N) v& R* \.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case
" q' A3 q& p( s" F! H& S$ Y% X.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]
3 F+ o4 L, M: g; v$ G.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump  o1 {+ j) m7 U6 x7 n* c6 g

) v# r! d+ Y# b% B[..]3 E; R- s7 b- k8 \  I% {! `# `

/ _! j" N6 E6 v& X0x80022058 case: no check for outbuff_size == 0! <--- FLAW!, R! b& {) W; y% c6 W$ {, c& x' q4 A

6 \: e6 I9 o" I) L/ x3 E.text:10024F5A                 lea     ecx, [edi+958h]
* N6 i6 f& r* k& z, [. {.text:10024F60                 call    sub_100237B0
7 |) A/ N% `' L0 }2 j.text:10024F65                 mov     [ebp+some_var], eax
" [6 z% m! y- _# \" q.text:10024F68                 test    eax, eax9 |, Z$ ^6 M, I5 A
.text:10024F6A                 jnz     short loc_10024F7D) s$ d8 h. M/ b" U
.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh" J& d0 A4 \, D8 ]$ e7 c" Y
.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer; Q! f$ }0 u) y! t4 K
+ ?, u7 l- R1 D3 t8 o' }8 U
next in IofComplete request will be rep movsd at pointer, that is under attacker's control
& I0 r$ I9 q3 \$ b* f5 ~% @! d/ ?1 ^( C# q1 ?$ M" T  L+ N
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. " t6 a" J, L0 Q) H  w
  Z3 l5 ^% f2 l9 L
Symantec表示在2月份的补丁包中修复该漏洞。
- Y0 C6 ^5 k' m' q# I: Z
  f* J- v& l9 r: T/ |; I, h/ Q( m9 o/ Y0 a相关阅读:
  v: F) v1 s7 a# j& W& @5 _+ j% o" y
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。7 V$ {4 n- l# _  M) h0 B* D/ k. K+ C
% T' g0 ~: ]7 G1 k
回复

使用道具 举报

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

本版积分规则

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