找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2327|回复: 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。# C* l: {( d1 c( S' x! L& K' ?

3 N  L, f( K, D6 aSymantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。4 U  Z' }/ v5 Y2 C7 x8 {0 x! b
3 Q) s) z1 B7 U. r8 Y% u6 w( l
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
3 F" v5 Y+ K1 f! a% d2 C
: T, X- ]- Z5 Z9 ]0 c' K
8 T9 K& V( P3 p: r2 A) c% u5 ]" ?, S. q- h, u. K( u/ g' }
function at 0x10024C20 is responsible for dispatching ioctl codes:
' X6 R& s6 d4 f/ L2 s7 k
  {3 d+ V* `8 h4 j: b2 {. I.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)- n1 D7 x' D3 o" z
.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap& f7 ~& t# L, P0 g9 n( m1 K
.text:10024C20) N% Z3 X: o3 {7 w+ I* R
.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch. A$ P! o3 k# E- y4 T! h
.text:10024C20 var_31          = byte ptr -31h
( ~& E# V: a% P" T1 \, l. W.text:10024C20 var_30          = dword ptr -30h. V' ?7 k% ?: ~
.text:10024C20 some_var        = dword ptr -2Ch
5 Y8 L/ G9 s* t& G.text:10024C20 var_28          = dword ptr -28h
5 ~" H1 p' t. d, n2 e1 e8 S.text:10024C20 var_24          = byte ptr -24h
) v- W* {: w0 z, E.text:10024C20 var_5           = byte ptr -5
$ R+ E7 l1 u! M. ~.text:10024C20 var_4           = dword ptr -4
' X% R* W3 }! P* g' B1 K.text:10024C20 ioctl           = dword ptr  8! s# o. z% {0 Y$ g1 s6 i
.text:10024C20 inbuff          = dword ptr  0Ch! u  @* S4 R- e$ ]* V
.text:10024C20 inbuff_size     = dword ptr  10h
* P3 z5 W6 v0 M5 q7 O.text:10024C20 outbuff_size    = dword ptr  14h$ M% b, }" w. }! [
.text:10024C20 bytes_to_return = dword ptr  18h2 a4 r% d$ n7 h( h0 K
.text:10024C20" E. [- M, r) f: S2 z
.text:10024C20                 push    ebp
7 l  {' O" d- N. S6 \. U) [.text:10024C21                 mov     ebp, esp5 W  W2 r1 E2 B0 w# O
.text:10024C23                 sub     esp, 3Ch
2 @/ [' {8 r! B.text:10024C26                 mov     eax, BugCheckParameter2
/ c- t& ~$ ~: B( A0 [  @.text:10024C2B                 xor     eax, ebp
' c# M- v1 x+ \0 X! y.text:10024C2D                 mov     [ebp+var_4], eax
* c1 V: c. [/ ]8 @5 a.text:10024C30                 mov     eax, [ebp+ioctl]
7 O7 V7 f- k  O2 M4 s" O.text:10024C33                 push    ebx& j4 d" f; [; l' R
.text:10024C34                 mov     ebx, [ebp+inbuff]1 c' Y/ ^- s0 o8 [# q- t0 G
.text:10024C37                 push    esi/ N& e3 ^# i7 t& {# P/ }0 m/ `2 ]" X
.text:10024C38                 mov     esi, [ebp+bytes_to_return]
% l' K0 c. S7 e$ _.text:10024C3B                 add     eax, 7FFDDFD8h1 V0 Q; r, X$ {8 w1 s
.text:10024C40                 push    edi
7 j- g* J' D0 Z  H5 c.text:10024C41                 mov     edi, ecx/ ^2 Z8 T% a5 s* w$ l
.text:10024C43                 mov     [ebp+some_var], esi
+ Y. f: A% P1 L4 d1 X.text:10024C46                 mov     [ebp+var_28], 0
6 O' v1 i8 c  \$ d, [$ c3 Z+ W/ X.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases
: c! A; f; S( _.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case
5 F" m' s/ Z5 f! t/ z/ u7 m.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax], M4 V, H( ~2 m, F6 G4 T. z$ R6 y
.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump& b+ E; `; F& M. S! z. D# v
8 y( F) M, l$ Q3 w! W
[..]
% M2 ]& j/ P- ?1 ^
% H4 V5 O1 _: Y" e  Q+ ?0x80022058 case: no check for outbuff_size == 0! <--- FLAW!6 O3 j0 A7 Y3 i9 q
# \, \& Z$ _) a/ g! n
.text:10024F5A                 lea     ecx, [edi+958h]
* d+ b& q9 X( g9 T.text:10024F60                 call    sub_100237B0& Y1 D4 M9 \. y, K
.text:10024F65                 mov     [ebp+some_var], eax
- @$ k" X1 P4 V7 |  c.text:10024F68                 test    eax, eax9 K) J/ {/ f! L- J  L7 I
.text:10024F6A                 jnz     short loc_10024F7D2 }+ d3 F# F" h4 S
.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh
/ s$ Q4 }! m* l1 V# j& H.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer
" T% E& @1 c& C: L, y9 q4 O: a* W$ _; H+ q: u
next in IofComplete request will be rep movsd at pointer, that is under attacker's control- y8 {+ z) I1 j, h5 l2 _, H

3 Y$ G# c' Q8 z, D% ~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.
6 R, z# d$ e# N/ T+ ~5 E: i  [
) f; F2 K# G6 c1 @) H9 ^Symantec表示在2月份的补丁包中修复该漏洞。% }) Y3 F. S: I( |2 p2 k8 z4 E* k

9 G/ }0 y# _$ q8 J相关阅读:
% [/ g' a1 j) g# g0 Y" T: l6 E' N4 e# @2 {! N* H0 R! X8 B
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。5 b: t+ n5 Y. G% M3 ^; U( ]
8 b  @3 _: K3 D- w3 j; y# [
回复

使用道具 举报

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

本版积分规则

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