中国网络渗透测试联盟

标题: Symantec完整磁盘加密软件爆0day漏洞 [打印本页]

作者: admin    时间: 2013-1-11 21:11
标题: Symantec完整磁盘加密软件爆0day漏洞
日前,国外安全研究组织Nikita Tarakanov称在Symantec PGP Whole Disk Encryption(完整磁盘加密软件)中发现0day漏洞,该软件的内核驱动程序pgpwded.sys包含一个覆盖任意内存的漏洞,可执行任意代码,受影响的软件版本是Symantec PGP Desktop 10.2.0 Build 2599。- D0 b: T3 A) [# }
/ Y' t2 Q# h7 j9 l: b
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
( ~( M# m/ n$ E2 S5 U* |) O/ s. |3 o7 j5 U
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:7 A' c1 \. Y1 J6 y: ^' V5 k
5 P1 {# q( ^! X
& C( }. j8 ^8 o
' B7 Q7 ^, `( A7 U4 N8 k/ |4 a
function at 0x10024C20 is responsible for dispatching ioctl codes:
# w' X  y- M* u' s, t" q( w1 P  o  L4 \8 ?
.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)% M8 `! _9 N' b/ [
.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap
1 [- _* B. ~/ q.text:10024C20: D6 z: i! x! h! Y. R8 z: w
.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch
4 |" F& p2 L6 Q* a' \.text:10024C20 var_31          = byte ptr -31h7 E* S, z9 H* j! Z* ?) |! x4 x
.text:10024C20 var_30          = dword ptr -30h
) l- w+ x0 `7 V2 A- c6 g7 d& C5 o.text:10024C20 some_var        = dword ptr -2Ch
' w+ V/ \4 u6 g  ?.text:10024C20 var_28          = dword ptr -28h6 W1 `; ~/ p; B8 k, x
.text:10024C20 var_24          = byte ptr -24h
! w; I! N( b3 g2 C.text:10024C20 var_5           = byte ptr -5
( ?% l  t8 ~1 J' O4 C.text:10024C20 var_4           = dword ptr -4' ]1 ^% ^7 S2 h* x) H' @6 \
.text:10024C20 ioctl           = dword ptr  8
# ~* X; }$ D4 @) l.text:10024C20 inbuff          = dword ptr  0Ch: F) |) c3 ~/ m0 h# w; _
.text:10024C20 inbuff_size     = dword ptr  10h
7 i& s5 X7 Y! N9 K# s3 V: z; f) ~.text:10024C20 outbuff_size    = dword ptr  14h, l0 G1 C' T7 C2 i% d! ]
.text:10024C20 bytes_to_return = dword ptr  18h% `/ `: r$ u' ]; u% x/ }/ b
.text:10024C20
( o* C8 ]  I5 `) W2 p.text:10024C20                 push    ebp
* O$ U( o% h" M% K8 V3 `% ^* _# j.text:10024C21                 mov     ebp, esp
' n: m3 r" f6 _# o( P+ {0 ~& r.text:10024C23                 sub     esp, 3Ch: ?9 x" j" `$ a3 y
.text:10024C26                 mov     eax, BugCheckParameter2
  X1 Z' O! }% |3 ^.text:10024C2B                 xor     eax, ebp$ L3 S( _& [6 d5 @
.text:10024C2D                 mov     [ebp+var_4], eax
* {0 }+ K3 I, D5 G7 A.text:10024C30                 mov     eax, [ebp+ioctl]! h) ^- U4 p: T1 F# {0 r$ D1 y" L
.text:10024C33                 push    ebx
" \0 p7 }" d: Y" B' t0 {1 b; C3 O.text:10024C34                 mov     ebx, [ebp+inbuff]/ {9 X/ d% t# i" G. ^3 Q
.text:10024C37                 push    esi. s- p4 v0 t% V
.text:10024C38                 mov     esi, [ebp+bytes_to_return]
6 J5 h; C/ B% @# Z/ N* x8 o.text:10024C3B                 add     eax, 7FFDDFD8h
0 F/ z; j: B2 Q6 Q# T' ?) X.text:10024C40                 push    edi  d/ Y- M0 T8 o+ H4 U
.text:10024C41                 mov     edi, ecx
9 \2 q0 G; b4 Q5 C.text:10024C43                 mov     [ebp+some_var], esi- r  G1 X) S1 w; A7 W; r
.text:10024C46                 mov     [ebp+var_28], 0
, @, m; x6 H$ J" `.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases3 A) o  p5 N- w. m$ L
.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case
6 M3 P& O6 Y9 m8 d+ v1 T.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]7 F) j# |  W& l" @+ h( H' S
.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump
6 k" e) ?1 K: q0 c" z7 j$ _+ a9 i: M! H$ e
[..]
7 O9 O. @$ W" {. l
, J9 [7 o! I+ _* v( o0x80022058 case: no check for outbuff_size == 0! <--- FLAW!4 x" U# O4 U# B. x3 g/ B, [, M
! f3 n0 }  D! b: J4 s. I2 ?
.text:10024F5A                 lea     ecx, [edi+958h]* h/ A, d/ W, f5 `
.text:10024F60                 call    sub_100237B0
0 w' R1 D9 P' O. t! X* q.text:10024F65                 mov     [ebp+some_var], eax1 x5 M* n+ z; b0 c
.text:10024F68                 test    eax, eax4 H/ b0 C: ~* S9 c
.text:10024F6A                 jnz     short loc_10024F7D
2 m+ S4 }& l4 ]1 Q1 }' {" z; Q.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh& Z7 V5 S& m5 k3 \- q% R1 ^: M4 ~
.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer3 C% n3 e7 d, z4 y

. ~9 G4 ]! M& {8 R5 b7 O4 B. I5 `' fnext in IofComplete request will be rep movsd at pointer, that is under attacker's control
7 J" i6 |; q1 p( V! J
1 q$ m6 E$ a( W0 _9 [. bDue 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 a: y5 K9 m, u' a( J' F

& T9 f3 D) w$ C: ?! o4 j" vSymantec表示在2月份的补丁包中修复该漏洞。
& f7 L) P6 M  O" V
" d5 i$ F7 G% }1 n( {6 D% S相关阅读:9 M; z* i4 U9 B; M  c
; ]0 E: P& @( ~" S, X& E# T3 i2 I
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。& j8 j. Y: I5 x. P; m- _

# _/ K* e. a2 `2 [, g2 z( F  F




欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2