找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2211|回复: 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。: b" Y% T& K% j/ K
. g$ a: k* S. g" g
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。2 l% Q' y8 E6 H, P; v, G0 |; }

9 p: X% D2 }0 _5 ~+ k6 j1 I/ h研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
6 f7 |) G( J. T5 ]1 n& B. G. z1 F5 d  Y2 K# [4 d4 V

2 W1 Y2 ^4 [8 R3 M1 w2 T, y' ~
1 M  ~( p0 R& H5 b1 m( dfunction at 0x10024C20 is responsible for dispatching ioctl codes:8 G# G7 R4 M4 i, M

4 g, R5 k3 `6 p5 f7 V.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)- `- R! d. P/ N5 n1 w* |
.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap9 ^$ w7 M- k+ U2 C
.text:10024C202 |" K# \# |( x7 x2 t
.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch
, `. j2 P0 h9 g) Y.text:10024C20 var_31          = byte ptr -31h, I2 c; O1 L& j8 n+ ^' q  i
.text:10024C20 var_30          = dword ptr -30h/ ?. Y. p5 I7 W! i' b+ e
.text:10024C20 some_var        = dword ptr -2Ch
5 o: K( Q0 d: P+ g1 ^7 L9 ^.text:10024C20 var_28          = dword ptr -28h
9 M3 k# x( k) z.text:10024C20 var_24          = byte ptr -24h; P2 j, W$ f5 w2 T
.text:10024C20 var_5           = byte ptr -5
% u4 N( G3 B: |% B.text:10024C20 var_4           = dword ptr -4
: r- Q8 f3 d2 X, g! d9 J+ [3 e% v.text:10024C20 ioctl           = dword ptr  8
2 a/ w& J$ d1 o.text:10024C20 inbuff          = dword ptr  0Ch
+ I  T$ _: s) S.text:10024C20 inbuff_size     = dword ptr  10h
- _) y- n# q- y: E8 C.text:10024C20 outbuff_size    = dword ptr  14h
/ C2 }$ w1 [/ ?5 L.text:10024C20 bytes_to_return = dword ptr  18h
, f5 }* m9 N1 m* ^# P0 Q.text:10024C20# l+ P5 {0 G" e1 [7 d( R
.text:10024C20                 push    ebp
, x6 C1 `& j  H.text:10024C21                 mov     ebp, esp
( v) I- _$ H  w' O5 T: F.text:10024C23                 sub     esp, 3Ch0 U. ^9 g+ \8 m! Z) T9 X9 ~
.text:10024C26                 mov     eax, BugCheckParameter2# P4 S& e) X0 e- k. k
.text:10024C2B                 xor     eax, ebp
/ h! S& A0 D7 Q7 @.text:10024C2D                 mov     [ebp+var_4], eax# y: W/ k: s( E+ O; R# i1 X
.text:10024C30                 mov     eax, [ebp+ioctl]3 J" b4 E4 S) z5 T: p# M, j- i, X( x
.text:10024C33                 push    ebx( z9 _7 Z1 v" S/ w4 R/ ?$ |
.text:10024C34                 mov     ebx, [ebp+inbuff]" N7 ~, p3 T& f8 `% o
.text:10024C37                 push    esi
2 A1 J/ [& e- C.text:10024C38                 mov     esi, [ebp+bytes_to_return]
0 R+ D; ~2 d3 \. t5 [* p.text:10024C3B                 add     eax, 7FFDDFD8h7 I) Z. v7 u, q% H: V
.text:10024C40                 push    edi
. J: X9 ?# T0 C+ d' {( j0 V# T- {.text:10024C41                 mov     edi, ecx
: N* y- S5 J! s7 x1 t.text:10024C43                 mov     [ebp+some_var], esi
/ b% Y/ P) ~8 p1 J( k; h.text:10024C46                 mov     [ebp+var_28], 0
* B/ P) B% V4 x8 T3 t8 ~.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases
/ E- y0 y3 B6 v) p0 m3 ~.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case' L; e3 R4 {% X1 V/ j
.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]
5 e+ B. A0 W7 ^+ P- A.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump
; K- s' T5 z+ C1 Y, q, [5 E0 [2 x# b$ W& r
[..]
3 @4 B: G8 k8 @  A/ P1 |
( h. j* g0 C6 @8 x0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
' g1 ]' k! B4 H! \
3 \  K* b+ o# d6 ]9 \( N: u.text:10024F5A                 lea     ecx, [edi+958h]
) V, M" p# A6 L# W9 K& Z.text:10024F60                 call    sub_100237B0
4 V8 g" G5 t- e2 B. w/ Q+ h/ a* O5 O1 L.text:10024F65                 mov     [ebp+some_var], eax
8 A/ c7 r7 {; ?! G: a% Z7 Z+ c$ g.text:10024F68                 test    eax, eax
/ |" \: ^! V& D3 J% X! w.text:10024F6A                 jnz     short loc_10024F7D8 z8 H3 J( ]% s
.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh! U0 i+ B+ L* o( g( ]
.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer% x0 y& d' G; x' c. F

' B$ i: i7 ?" q0 o0 s+ w5 V# Vnext in IofComplete request will be rep movsd at pointer, that is under attacker's control% J1 B( e  N; h" C( u2 s
9 j% N; Y6 V  e. ?! E
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. + m# p! r, @9 `2 j. H$ i8 L

+ X2 R7 q: ~0 A) n' pSymantec表示在2月份的补丁包中修复该漏洞。- g1 |1 G6 M. o; q
0 Y# J8 A- I; @  U2 r- o& m
相关阅读:
, \' m' r, C+ I' F
* A2 w( v; B. q( v" g1 ]! U- g赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。
# ?7 I0 W% k$ D$ q/ |9 E; T$ Z6 Q$ E
" a7 M! y! w6 U3 S1 n  R
回复

使用道具 举报

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

本版积分规则

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