找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2372|回复: 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。
  S! N& l% n1 K% F
: _2 n$ s! V6 C( X+ \) LSymantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
" z  c9 d) i! C  S0 \& U1 [) w# z( o2 _) P
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:/ D, e9 C7 S6 H  U/ n4 D

" f$ j7 u/ ~6 ?1 D
5 |5 h/ ^" T; T; a8 m* ~
" [. I% `% R- v7 s: A* I1 h0 F, pfunction at 0x10024C20 is responsible for dispatching ioctl codes:
. \3 E  i% H: W  F& @5 G7 M
9 |3 W+ l0 K$ C( W5 a* q2 @. p.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)0 J5 e, O4 N! M0 y* e
.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap
, X' |. t- B9 b# R7 J9 M.text:10024C20
8 Y1 _2 M" X5 R8 q3 c4 |.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch$ ]' k3 z$ D6 {2 B, h# P- e9 f. W+ M
.text:10024C20 var_31          = byte ptr -31h2 a$ E- A" t, p
.text:10024C20 var_30          = dword ptr -30h
! c2 X' v: |/ t+ M" z# n' _+ X.text:10024C20 some_var        = dword ptr -2Ch
, h" X' w6 n. E$ o: i.text:10024C20 var_28          = dword ptr -28h& c, z4 E7 r- S' c) H, {5 j1 t
.text:10024C20 var_24          = byte ptr -24h
$ {6 a3 ?  @% x.text:10024C20 var_5           = byte ptr -5
. J, y# v* G1 P7 K) r4 ^1 K.text:10024C20 var_4           = dword ptr -4
, F3 i5 f5 ?* M5 e- H.text:10024C20 ioctl           = dword ptr  8/ Z3 y/ K- {4 k% [, Y1 [* \0 c6 ]) C4 m
.text:10024C20 inbuff          = dword ptr  0Ch/ P5 o5 P9 N9 A" n
.text:10024C20 inbuff_size     = dword ptr  10h
5 @6 [; `7 q. v$ E.text:10024C20 outbuff_size    = dword ptr  14h
) s; D8 m/ F) r, R8 x& k.text:10024C20 bytes_to_return = dword ptr  18h% I7 `" x7 X; _" ~
.text:10024C20
) O6 l6 t; K+ s.text:10024C20                 push    ebp. u) Q7 j/ q# b8 y' a' b' i# [. j
.text:10024C21                 mov     ebp, esp
% Y6 j" N, O! r# @0 ~- K.text:10024C23                 sub     esp, 3Ch5 X; n8 U* K+ [( C0 K+ |
.text:10024C26                 mov     eax, BugCheckParameter2- z4 c3 c( S$ r; _
.text:10024C2B                 xor     eax, ebp; n0 X% y# ~% C" e& z" v: t2 a% U
.text:10024C2D                 mov     [ebp+var_4], eax+ d4 Q5 n( ?2 }5 B& \' K
.text:10024C30                 mov     eax, [ebp+ioctl]
9 f6 |0 B: a/ N, C0 z* d& U.text:10024C33                 push    ebx
$ C5 ~' t! H( a( n4 d! x1 K.text:10024C34                 mov     ebx, [ebp+inbuff], x$ Q+ r! u: O
.text:10024C37                 push    esi
: Q; {& P9 ]/ w% Y. H4 a.text:10024C38                 mov     esi, [ebp+bytes_to_return]6 h' T- E' r& G! U
.text:10024C3B                 add     eax, 7FFDDFD8h
" K2 R# `0 v& x.text:10024C40                 push    edi
5 V3 d8 U% J5 C' @/ K( {.text:10024C41                 mov     edi, ecx
/ ]& X1 @' P1 j# ^2 d3 M1 v.text:10024C43                 mov     [ebp+some_var], esi
6 x) T- b  q9 S" Y4 ~# c- e.text:10024C46                 mov     [ebp+var_28], 0
# M1 h, A' A/ U& j) s.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases
4 l5 U# _+ C3 b, E5 z' l& r.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case
- H$ X! w; ?& u2 }# a1 t7 C! R.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]0 R2 o/ c8 z( B6 v
.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump
* L  c. L0 {8 P6 C( _2 t- k
5 d6 L' U8 R: d! Z[..]
; n+ O$ P+ ^* i! s3 h/ j! U! K7 E9 K. T8 X' {+ ]$ q$ |, E
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
3 f4 I$ M: y: Z: T8 ]* i! C2 b7 |$ `6 t
.text:10024F5A                 lea     ecx, [edi+958h]
. W8 u" l* n$ j.text:10024F60                 call    sub_100237B0
0 G* R. C) \, b.text:10024F65                 mov     [ebp+some_var], eax  ~2 r* {+ ?6 I- s% N4 L
.text:10024F68                 test    eax, eax
* i9 X8 v# u9 |# k8 ?.text:10024F6A                 jnz     short loc_10024F7D
. C2 ^" X# f2 N9 \& x8 o.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh( L) @$ t9 D; a( W/ {7 E
.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer- z! G3 B* |4 R: b# d1 Q" q

1 n+ u6 B3 w! P$ R% J; G0 E4 ]* bnext in IofComplete request will be rep movsd at pointer, that is under attacker's control
' d6 @1 Z; p: ?
5 k) q( J, c- A7 M. h3 R% p9 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 x6 ~2 e' x- x6 J
8 H* b8 z+ E9 L4 {7 OSymantec表示在2月份的补丁包中修复该漏洞。7 J  M- U. j  t. O+ g* @
1 r  g$ H/ g4 g. ~7 V- d$ A
相关阅读:
: b+ t) d5 e! g1 x
! \5 b! {$ j/ _5 n. Q8 Z赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。
, A& V- {; C* ?- n" N; }) G+ ?0 y: y: `) m/ x+ G
回复

使用道具 举报

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

本版积分规则

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