中国网络渗透测试联盟

标题: 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。
0 L3 k9 b1 M  g
% k. i; K, O/ o( }  E! _Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。. i- l( k4 z9 x9 h" v
; K) l4 D( D# `$ y5 e! }  e7 {6 ~
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
; h7 h# y$ H+ ?  v) c( q, R2 F2 q, y

4 }7 n* V9 e* I% b' s5 [! M$ v, T, X* S- ]  ^% o0 i
function at 0x10024C20 is responsible for dispatching ioctl codes:
" I! l  r: Q% r0 ]
- v. j, z3 U1 T5 |) A* h1 L0 b.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)$ O2 {$ t! k  f- k* m- i7 K% U- O
.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap
: c( u8 h* n  @) J; ~" ?3 o: Z  F.text:10024C20+ v  q( g4 H( _* U2 C2 A( ~
.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch( W' w9 C  ?5 h) o; D1 A* y: G
.text:10024C20 var_31          = byte ptr -31h
: w3 F) R2 \/ R9 r" Y4 U! H' f.text:10024C20 var_30          = dword ptr -30h: G1 ^* ?* ^" J0 y& x. z' x- f& B) [4 f
.text:10024C20 some_var        = dword ptr -2Ch# k% J! o2 n9 C( w9 m; p  A
.text:10024C20 var_28          = dword ptr -28h0 `- @* j0 A( R8 r$ M- \7 M
.text:10024C20 var_24          = byte ptr -24h/ ?. E- E" V- ]4 [
.text:10024C20 var_5           = byte ptr -51 h8 b2 U8 U. f7 h7 i. [6 r2 l
.text:10024C20 var_4           = dword ptr -4
$ Q* k2 S% O% ]5 _' m.text:10024C20 ioctl           = dword ptr  8
1 N4 {+ W3 Y$ Y6 f8 S.text:10024C20 inbuff          = dword ptr  0Ch3 P7 {9 N; K' S  I
.text:10024C20 inbuff_size     = dword ptr  10h
1 B3 `$ t5 z3 U& g# k3 l0 e.text:10024C20 outbuff_size    = dword ptr  14h5 u3 \6 u: c( F+ b# |% U% a$ ?
.text:10024C20 bytes_to_return = dword ptr  18h2 m' c  [7 A! a7 J4 [  f
.text:10024C20
3 i/ ?0 y, |8 H* a.text:10024C20                 push    ebp
, U  [+ t8 t5 r.text:10024C21                 mov     ebp, esp
6 `- S" H) q$ `, ^.text:10024C23                 sub     esp, 3Ch
  q+ }" ]6 {; @1 O) j) @.text:10024C26                 mov     eax, BugCheckParameter2
# L& ^9 t2 F  U) \.text:10024C2B                 xor     eax, ebp' _9 B% [/ ?( Y, |) G
.text:10024C2D                 mov     [ebp+var_4], eax
) J+ N5 Q. q$ Y7 ?) F6 `5 Q2 B9 j+ ^! u  F.text:10024C30                 mov     eax, [ebp+ioctl]
* }5 A/ p2 k4 s  u( n* ]  m.text:10024C33                 push    ebx7 s' V2 d7 v) p3 k. I3 u1 Y
.text:10024C34                 mov     ebx, [ebp+inbuff]
% l" G8 _/ f/ c: L4 N* P1 f.text:10024C37                 push    esi# V- x1 M4 h0 l2 J# I
.text:10024C38                 mov     esi, [ebp+bytes_to_return]4 Y2 e2 n) `8 u  Q; [
.text:10024C3B                 add     eax, 7FFDDFD8h5 n; X* Y+ a8 F) E3 k- [% }: |
.text:10024C40                 push    edi
7 J: _: Y" Y- h.text:10024C41                 mov     edi, ecx
, x* s3 Q3 U( r) H.text:10024C43                 mov     [ebp+some_var], esi+ k2 o# w/ }& q1 C# G  O
.text:10024C46                 mov     [ebp+var_28], 0
% c  S# Y6 K) Q" T.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases
0 v- @% A# a' z3 `5 l% ~.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case4 R. W% [0 }, @% r5 g
.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]) Y: P2 U( E+ _5 J! y: v! q) }; H
.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump
; u7 L0 Y3 K, g8 K" P. H0 R
" R9 e& ~. ^: h5 u: N4 ?[..]5 x4 j$ }# f) o, y2 j" k+ X& [. x
. c2 K, p; C/ I; l
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
* j8 b  g' ~0 ?# G* j* u
9 w. Y: ~, H+ X; N; }.text:10024F5A                 lea     ecx, [edi+958h]5 ~) E" r# D& p! k7 m. C/ C
.text:10024F60                 call    sub_100237B0
# F0 C  N- ?" v# t3 J9 l4 m: q.text:10024F65                 mov     [ebp+some_var], eax
; H6 u; G. p8 |) F9 e% b.text:10024F68                 test    eax, eax/ c9 T. {8 Q1 ^6 I7 h! ~1 @2 ?
.text:10024F6A                 jnz     short loc_10024F7D
5 g5 W% c. q$ K.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh. l; \* s+ `2 [5 @1 ?4 j8 L. x
.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer
  Q4 d# F8 {: g6 ]* o; b
6 B* T( Z" V9 _7 E% \next in IofComplete request will be rep movsd at pointer, that is under attacker's control
# h4 q/ z, b% U. O- s. G
5 _0 h: A" @7 U8 y4 X9 mDue 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.
7 [8 {3 k6 F2 |
: s0 y! ^, M! t4 q: V) wSymantec表示在2月份的补丁包中修复该漏洞。
- H5 V8 w2 Q' f( x/ M& w
. |9 n" K2 x3 f2 c# J相关阅读:, q& v& S) }$ f& \) {

0 ]$ v* C3 d. `: G- A3 k* n7 H6 E赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。- B+ H+ U% C2 K" F9 W

5 ?! }. x" C4 u  A$ F- t




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