找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2431|回复: 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。
+ V. _! }! W2 R
5 I% ^- F" T) L! q% c( P2 B; S& Y' ?+ c" iSymantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
. h  y- Q9 U3 f# @. O! W; M% [5 Q2 ]
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
6 h% k8 O3 p0 @8 K+ ]8 b4 d  X
- J7 H6 \- l! F3 Q5 M
/ {7 g  h) K+ E9 c& p
$ c6 D: r) E4 g' `0 wfunction at 0x10024C20 is responsible for dispatching ioctl codes:
; I6 z1 ~8 M$ R8 Q* x% Z7 ?7 y' U! m: o; H( x
.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 L5 H8 W8 t' _# k6 u0 B* S1 c- Y.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap
. B4 ~1 s: U5 m- T.text:10024C20
) n+ N0 w: T+ ?5 W.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch2 w* w! I$ @% Y+ W
.text:10024C20 var_31          = byte ptr -31h1 }" v- ^# c  Z! ^, d0 L
.text:10024C20 var_30          = dword ptr -30h- x; U- `  `/ r
.text:10024C20 some_var        = dword ptr -2Ch# e/ o- {" l  x  A' R4 m
.text:10024C20 var_28          = dword ptr -28h% @$ x: W; Q# K( Y5 t
.text:10024C20 var_24          = byte ptr -24h
9 T7 {+ z3 F8 u  n.text:10024C20 var_5           = byte ptr -58 J. Z- H& F% B7 [7 T1 j& w" a
.text:10024C20 var_4           = dword ptr -4! q1 H4 U  C" @0 W) B, B# \
.text:10024C20 ioctl           = dword ptr  8
3 M) @, g  [' A0 A.text:10024C20 inbuff          = dword ptr  0Ch
7 C+ K0 _' G# ?2 U8 z! V.text:10024C20 inbuff_size     = dword ptr  10h
, W! k) o2 B' z" B8 [, I.text:10024C20 outbuff_size    = dword ptr  14h
4 ~' q& a0 }- T6 f.text:10024C20 bytes_to_return = dword ptr  18h
( g7 W9 ~2 V# h# z.text:10024C20) T) |9 s1 R$ ?/ J3 p  g1 \
.text:10024C20                 push    ebp/ b6 W1 `; L: i/ C: A
.text:10024C21                 mov     ebp, esp9 D& v9 Y' c" l7 Y
.text:10024C23                 sub     esp, 3Ch
0 ^2 V5 s+ [9 G/ T1 z.text:10024C26                 mov     eax, BugCheckParameter2
, O, X1 ^  m1 k, y9 S.text:10024C2B                 xor     eax, ebp, V; F/ n0 s7 R
.text:10024C2D                 mov     [ebp+var_4], eax
' O1 V6 K4 Y# f9 G4 G- n.text:10024C30                 mov     eax, [ebp+ioctl]/ y! U: n" h6 M5 _
.text:10024C33                 push    ebx) i- _4 i7 O6 i  s
.text:10024C34                 mov     ebx, [ebp+inbuff]1 P0 L( e& b5 U! G2 F, P; O7 Q
.text:10024C37                 push    esi
2 l' s, F% u4 A/ I& I8 {+ r& [& k4 _.text:10024C38                 mov     esi, [ebp+bytes_to_return]
6 w& J' F0 G4 t$ Z; [8 z1 h.text:10024C3B                 add     eax, 7FFDDFD8h# R2 d: ]1 a9 `, e
.text:10024C40                 push    edi$ ]+ X  {. G1 W: P; b1 @: V) y% ~
.text:10024C41                 mov     edi, ecx
! W& |1 ~3 Q- l3 j& A) c1 Q.text:10024C43                 mov     [ebp+some_var], esi
# H4 e# D6 F0 ]; C! x, [.text:10024C46                 mov     [ebp+var_28], 0% P; `# F2 c' {+ d* t& g; d$ H
.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases  S6 d1 v* ^6 f. D9 U) u
.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case/ c0 {& P5 j7 u, R4 u
.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]
8 r* w6 ~! r* U$ _1 [9 G.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump
* l+ y9 r0 t: {" G7 i7 r# o* c0 ]- t
) L; T) {. z9 F) {9 s  q4 s[..]% e7 U# E+ E& |) d& p7 T; I
7 w5 W( T7 a7 P/ `
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!; p+ h9 g( t; P- {

2 j" z/ a0 q8 V2 l8 D% R& u! x. B.text:10024F5A                 lea     ecx, [edi+958h]
+ z* A  S2 b! l, a.text:10024F60                 call    sub_100237B02 v4 t$ [1 P# {
.text:10024F65                 mov     [ebp+some_var], eax) a; r. m2 q/ v9 X% Z- z
.text:10024F68                 test    eax, eax4 ]4 {/ T0 G, b
.text:10024F6A                 jnz     short loc_10024F7D
' M, V# |0 s% X7 h2 U! ^.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh
& `  U% @+ B+ w  \.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer
* m! m( X0 h- E) r) P" q) @+ c0 u- ~( [5 `, K. @
next in IofComplete request will be rep movsd at pointer, that is under attacker's control4 o- o& |! j& D8 X9 U- c. c

; R/ ^' h7 J+ [" {$ z: ?/ O9 kDue 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. ) _* K, D  \7 o0 U! y  c
# M" p; L' V6 {% R3 Z
Symantec表示在2月份的补丁包中修复该漏洞。3 m( w2 E7 ]( |3 R/ S
7 G1 _9 ^# v  V$ ?; \
相关阅读:
1 t. s8 h! [3 D, B6 c& u. v& r, s( U8 r9 Z% X
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。: O  u& \5 k* ]6 s1 @2 ]# a4 I
0 k7 n# U/ @$ A- r9 c1 T
回复

使用道具 举报

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

本版积分规则

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