中国网络渗透测试联盟

标题: 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。6 z$ J* {9 I# x3 W3 G
/ {& ]' `8 F! V8 B
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。# f( Y5 v; B& E1 V9 v, s) N

9 m5 p3 p2 Y" H7 U7 m研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
; d0 A0 i' y+ \8 j4 P2 ?$ M
1 f/ {2 U* k9 l" D4 ` 5 T# C: X: @1 H0 o
0 A" x, A! t% H# V
function at 0x10024C20 is responsible for dispatching ioctl codes:& y/ R& k4 k8 L" \" G

# u% \& A/ B8 I4 R.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)3 v9 y- D$ t2 z! L" x0 r% Z  S
.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap
% A! L" x* K) s/ U.text:10024C20
( H* G& K" o3 G$ G( U.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch
) m7 K+ b* o' x9 P.text:10024C20 var_31          = byte ptr -31h" Y7 x; G$ S& r  a7 L
.text:10024C20 var_30          = dword ptr -30h1 w7 |3 o: d  h2 D4 C) U8 I. T( ]) Q
.text:10024C20 some_var        = dword ptr -2Ch
5 w! K1 O( ]! m: g$ s, e1 s.text:10024C20 var_28          = dword ptr -28h
, P" }+ h3 }, o' Z.text:10024C20 var_24          = byte ptr -24h, a. m9 x: V9 c1 ]
.text:10024C20 var_5           = byte ptr -5/ X- \2 V1 T( r2 ?1 [
.text:10024C20 var_4           = dword ptr -4# \' n: W" `) m8 ]& h
.text:10024C20 ioctl           = dword ptr  8
) W0 t7 L, @7 y- D9 _4 F.text:10024C20 inbuff          = dword ptr  0Ch9 U3 h& u3 C4 {0 G" A" V
.text:10024C20 inbuff_size     = dword ptr  10h
6 m% b: @/ ~9 M1 s5 O8 e.text:10024C20 outbuff_size    = dword ptr  14h" ?2 O& ]2 u" v* n# v, H
.text:10024C20 bytes_to_return = dword ptr  18h
# ^8 x& d# P# X.text:10024C20
8 L. [# W, ^' P* D2 {5 g- g! I.text:10024C20                 push    ebp6 [* f* n' N, y- M8 J; B' O: Z
.text:10024C21                 mov     ebp, esp
8 }0 k$ e6 L4 b8 m, `1 N! K.text:10024C23                 sub     esp, 3Ch, v0 O! a$ y% y, N% Z
.text:10024C26                 mov     eax, BugCheckParameter26 V  x" N1 |  s+ e2 {& ]
.text:10024C2B                 xor     eax, ebp
0 O+ S7 Y5 j, \8 _2 d.text:10024C2D                 mov     [ebp+var_4], eax
! {$ u& l( m7 g' m6 u9 N7 E) w2 }$ {.text:10024C30                 mov     eax, [ebp+ioctl]2 X, W* r9 \7 A
.text:10024C33                 push    ebx: C; R# H# S2 x' S1 C5 n
.text:10024C34                 mov     ebx, [ebp+inbuff]6 z1 j. E* A5 e. ]1 p
.text:10024C37                 push    esi
! i# O! _$ F% t" o.text:10024C38                 mov     esi, [ebp+bytes_to_return]$ D: \) ~+ ?6 G, s- E  g
.text:10024C3B                 add     eax, 7FFDDFD8h% H+ B3 C( A# \( R0 Y6 c' |; a) ]3 @& w
.text:10024C40                 push    edi% ]6 ?% y% I- G- Y4 W2 h5 r" ~
.text:10024C41                 mov     edi, ecx
# q0 J) a1 w. u: q! U.text:10024C43                 mov     [ebp+some_var], esi
0 I( d& w7 N1 U6 w9 v' K.text:10024C46                 mov     [ebp+var_28], 0
7 W5 x; F% y4 [' k.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases" c; Z2 b& u, d% O
.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case
; i6 U/ E- X1 B0 I.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]9 }8 _2 m6 r$ B0 W& J3 _# M/ P
.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump
  Q; D) Q( c2 v( Q8 }8 {, X* J+ B5 _0 r& Y1 R' Q
[..]
7 I8 ?& u. `; J5 H6 g1 S: E1 T" X) q
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!' p, p# ?1 g% [) g0 Q/ p: a2 u) T( T

3 r! u5 |% j1 G. Y1 M( t. d+ o.text:10024F5A                 lea     ecx, [edi+958h]. Q+ J6 S' X; X; R; E( |: F
.text:10024F60                 call    sub_100237B0# a5 }! Z; p# J' E0 s/ J
.text:10024F65                 mov     [ebp+some_var], eax
/ l" n% b3 e% c9 U( o; o.text:10024F68                 test    eax, eax
8 K/ o' {+ W+ ^" Q.text:10024F6A                 jnz     short loc_10024F7D
' e) x9 T; W* [: K( @.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh! ?4 s( L( I! p* R' K2 j
.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer. n! [. N" y. A% F1 u

9 O* `) U, w! M: o! `next in IofComplete request will be rep movsd at pointer, that is under attacker's control3 T) S+ X4 V/ L* g- h$ Z" j; r
, i! w, Z" `. r/ `: S
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.
1 {0 A! C% [& N) n: j4 l) r4 K. R' X& s! N) P
Symantec表示在2月份的补丁包中修复该漏洞。
4 n- @! ~+ a$ J7 t$ b% N: b5 e! V$ `% Z. n. v  Q
相关阅读:/ Y! g& b; \0 s  q

' e1 D, f) w& }2 a' @( W& ^6 g赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。
% z2 d  I& M' r2 R, i6 |/ D0 u0 l1 Q8 @8 K% P3 V; i





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