找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2392|回复: 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。
/ o: j% D5 v3 h0 j; E6 ?2 F8 |) j3 I6 E0 q3 t# |3 D4 y8 N% D
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
3 y: ^1 T- o( {5 g6 R7 ?, E( D4 o- \6 f) ~$ B
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:& I  @7 x* j2 _

* V. O& F/ p* `! T! l - K  h/ z5 X0 X! a5 q
: D0 z; a6 \0 N2 z2 T$ T, q
function at 0x10024C20 is responsible for dispatching ioctl codes:
. v4 y7 v% |, M3 `" G
- K" t" i3 |! f9 ~6 ^3 k7 Q.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 C' a1 [. t2 g+ ].text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap
  }5 X) N9 n: x0 f- ]# u.text:10024C20
% B8 v7 D# f- N9 o; i: d4 G4 N- C; y.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch
% i, l- m2 r$ D: S& C.text:10024C20 var_31          = byte ptr -31h. }  m, n& h% T
.text:10024C20 var_30          = dword ptr -30h" m* o! [: U; Y0 K8 k' C. N
.text:10024C20 some_var        = dword ptr -2Ch9 a$ I9 Q# a9 m1 k4 t7 ?0 ~
.text:10024C20 var_28          = dword ptr -28h; s; p; e) Z8 }/ ^/ U) |* G
.text:10024C20 var_24          = byte ptr -24h
; d5 k' `! m1 K% W& @$ e, r.text:10024C20 var_5           = byte ptr -59 w( E1 T: F; ?: E0 b
.text:10024C20 var_4           = dword ptr -4& y* X  X: r' I+ g& S+ w( [( S
.text:10024C20 ioctl           = dword ptr  8: ^; f3 Q9 u9 ^! Q+ h
.text:10024C20 inbuff          = dword ptr  0Ch
* D3 Z* m) l+ W/ J.text:10024C20 inbuff_size     = dword ptr  10h/ e. i+ Z8 u; w* V
.text:10024C20 outbuff_size    = dword ptr  14h5 g, R( J: m8 M, r% o
.text:10024C20 bytes_to_return = dword ptr  18h
! a- R* H: W2 @% K# k6 }.text:10024C20
( f+ z$ p; u( U  q.text:10024C20                 push    ebp. `# Z. z$ {5 X# n
.text:10024C21                 mov     ebp, esp* F. }, m! b4 @: T2 o7 R/ q  m) T
.text:10024C23                 sub     esp, 3Ch% V- ]$ v( U5 l) \5 Y
.text:10024C26                 mov     eax, BugCheckParameter29 X9 \; W1 }8 w, _1 S, f
.text:10024C2B                 xor     eax, ebp
% o/ e$ J5 z! ^! `4 V# G  l' h.text:10024C2D                 mov     [ebp+var_4], eax
# A* z4 y0 P' k) T.text:10024C30                 mov     eax, [ebp+ioctl]. m0 h4 f; r/ o2 K
.text:10024C33                 push    ebx& Q( {& z$ G8 ^3 @# P: C% V* t8 s
.text:10024C34                 mov     ebx, [ebp+inbuff]
& {8 g' |1 W  N' m. s+ N% ]" n, {.text:10024C37                 push    esi
5 q7 f4 N* Q3 A.text:10024C38                 mov     esi, [ebp+bytes_to_return]& C" }/ Y. o. {" i; Y" `, E
.text:10024C3B                 add     eax, 7FFDDFD8h. w  ]" N: {6 q
.text:10024C40                 push    edi4 u  F0 b) [! Z6 Q2 {8 A4 |. @9 [
.text:10024C41                 mov     edi, ecx. j* v+ y5 s/ T; |7 b+ T
.text:10024C43                 mov     [ebp+some_var], esi
% b1 }/ |. L6 V# |3 ?.text:10024C46                 mov     [ebp+var_28], 0" Q; H( v$ B. c
.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases
0 X1 {6 Q8 J, P.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case) a& E" U* B) C* r+ U# K
.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]
# d# t$ A9 E/ u7 [' o.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump
; n. K8 l( N7 L* M3 C1 N
  D* }" k/ P1 P" R( [2 T7 z[..]) E- s( p3 B( F* A2 c/ o
; h& g  k, V5 f$ y% ~6 }
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
) X& G  T0 Q9 u+ T: a! `; n1 @, e9 r  |! J
.text:10024F5A                 lea     ecx, [edi+958h]
3 C+ P9 b0 x- }. a, b7 n.text:10024F60                 call    sub_100237B0
! `+ f4 [" ]- O6 O8 n& [.text:10024F65                 mov     [ebp+some_var], eax& C$ L# c6 u  u  j+ {. Y; q
.text:10024F68                 test    eax, eax9 g3 t9 Y' q, L+ v0 A$ V4 U
.text:10024F6A                 jnz     short loc_10024F7D
. R# }( o; {+ H5 A0 B.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh) z$ x) z. v# m. b, u
.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer5 `3 O. X( a* l' Q+ k' y

# V+ J2 B; ^& I1 A. {! B/ K7 enext in IofComplete request will be rep movsd at pointer, that is under attacker's control4 ]0 m( q4 F0 _) `1 L, A
, \- I% s' a  K# T! T
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. ; u6 b! Z1 {1 j& u

* Y( i. ~; _& ?' A. Z0 ~  s% WSymantec表示在2月份的补丁包中修复该漏洞。7 _' }9 c2 b) w& u, w
6 O* h! p; X$ k+ |8 h; Y8 @
相关阅读:! D9 M5 A% _4 x8 n- {
' q$ P5 A& C0 e, q4 _7 k( _9 {
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。; I; s6 }: C; O

6 r1 d, o% Z2 h- S  o5 B
回复

使用道具 举报

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

本版积分规则

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