找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2370|回复: 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。
0 y/ s) M" x5 x5 P2 u. Z, W& o0 n. R  k9 ?% E# y1 j
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
8 m* ~" f" u* p! A5 l- z! ?2 C) c3 M: s# v+ E+ j5 \
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:2 G/ ]+ z) z1 z* b* N, |
/ J7 e# U9 H' E! s, u3 L
1 Q$ P0 A* c5 X7 o( t: b- [, C0 Z

( V: ], E- r5 P5 T2 g8 \function at 0x10024C20 is responsible for dispatching ioctl codes:
6 T- R0 I3 [6 K5 {2 a9 \
7 n# P* Q7 e- ?: 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)
6 S5 }2 ^, P4 @3 ~  B( M.text:10024C20 ioctl_handler_deep proc near            ; CODE XREF: sub_10007520+6Ap3 D3 {  l4 ^( f! [0 z
.text:10024C205 j- w9 y1 ]/ D, z
.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch$ k% @5 w( g# q6 |/ o! K* R
.text:10024C20 var_31          = byte ptr -31h
" m8 \& Z0 s! m) a# Y5 m2 d& h' U.text:10024C20 var_30          = dword ptr -30h
9 u' J) r* B# F. u; }$ ?: |.text:10024C20 some_var        = dword ptr -2Ch
( W9 I" Q: |) k6 k9 W3 L.text:10024C20 var_28          = dword ptr -28h3 Z4 p$ O9 k7 E9 e" H+ J* c
.text:10024C20 var_24          = byte ptr -24h1 e! ^& o/ C6 l
.text:10024C20 var_5           = byte ptr -5' V$ Y  [; }6 W
.text:10024C20 var_4           = dword ptr -4  R2 M0 W+ n, g  H5 M- Q- ?* Z3 U- W
.text:10024C20 ioctl           = dword ptr  8
1 v5 V4 K( N) c- t1 E* q: d.text:10024C20 inbuff          = dword ptr  0Ch; G# s# j; ^2 Y, i5 W3 P( k
.text:10024C20 inbuff_size     = dword ptr  10h
- F8 ?4 \$ {6 m% \" Z) j3 U.text:10024C20 outbuff_size    = dword ptr  14h
8 w* s  m2 Z5 X+ N+ X% {.text:10024C20 bytes_to_return = dword ptr  18h
1 q, K4 N. W/ O$ ].text:10024C20
9 y% B8 _' B: H! j( e! c.text:10024C20                 push    ebp8 U" C& _- ]# s! n% U
.text:10024C21                 mov     ebp, esp
3 ?; e# ~3 M* u4 o# @.text:10024C23                 sub     esp, 3Ch
9 c* P6 R% R! z9 G.text:10024C26                 mov     eax, BugCheckParameter2: [6 t- |, B. N7 s1 `# u& O
.text:10024C2B                 xor     eax, ebp
+ Z: `! H% k: t0 Z1 L% X.text:10024C2D                 mov     [ebp+var_4], eax  ]$ m3 Y' O8 f
.text:10024C30                 mov     eax, [ebp+ioctl]
6 }; {# M- j6 D3 z8 ]3 Z; @2 b.text:10024C33                 push    ebx3 J& Y* n: D  j3 N! \* C3 y7 m
.text:10024C34                 mov     ebx, [ebp+inbuff]
" F; ?# h' ^: N- F1 m7 T8 e.text:10024C37                 push    esi, ]) U" T$ f9 G1 j" _, `4 a
.text:10024C38                 mov     esi, [ebp+bytes_to_return]; y3 D. B, y; ?' e" ?$ W, ~
.text:10024C3B                 add     eax, 7FFDDFD8h
8 M3 w! \2 y8 U% c% m) Z2 ~.text:10024C40                 push    edi
, O" s0 O, {( I.text:10024C41                 mov     edi, ecx; L4 o: p/ T5 d3 H" E" A3 v( j3 q
.text:10024C43                 mov     [ebp+some_var], esi7 m; Y: y% p+ B- u4 ]3 ^$ s3 |
.text:10024C46                 mov     [ebp+var_28], 04 e% N" T3 Z9 w& C6 v! D
.text:10024C4D                 cmp     eax, 0A4h       ; switch 165 cases  l3 }' O7 H1 ~, Z& r/ {
.text:10024C52                 ja      loc_10025B18    ; jumptable 10024C5F default case% }2 [) R) }" M& v  y
.text:10024C58                 movzx   eax, ds:byte_10025BF0[eax]( P2 d/ O; H, x3 R
.text:10024C5F                 jmp     dsff_10025B50[eax*4] ; switch jump; T) C% J! \& t: a* O

5 M3 c" D$ w5 t[..]
. e8 g, g; b; T0 g, d/ V9 n' _$ j4 r- m5 G% P. u
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
, @" n; _; k+ w5 p: b, I  D) ?! C! M/ l8 B, j* N: f
.text:10024F5A                 lea     ecx, [edi+958h]
8 [0 p0 u9 r6 D1 N% d: t7 H.text:10024F60                 call    sub_100237B0
8 [0 |# v/ c" P4 i" x.text:10024F65                 mov     [ebp+some_var], eax( n6 ^+ h% c% a( r: {
.text:10024F68                 test    eax, eax' N, Z  ]5 T6 ?# ]
.text:10024F6A                 jnz     short loc_10024F7D
% q, e5 H4 ~3 Z.text:10024F6C                 mov     dword ptr [ebx], 0FFFFCFFAh
- k0 g- k) e4 T+ x  Y5 r, p.text:10024F72                 mov     dword ptr [esi], 10h <--- bytes to copy to output buffer8 q  q3 f3 i, u; s7 `/ Y
& r* Z. g% c! I9 A2 r
next in IofComplete request will be rep movsd at pointer, that is under attacker's control' ^( Q# I; a8 J. g7 G4 c6 b  W. F3 S

# \6 s: Q6 R/ n! N2 i; vDue 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. + u9 e! s1 N2 W9 `

# D' @8 f! V1 v- ?5 HSymantec表示在2月份的补丁包中修复该漏洞。
5 z  g" l9 k2 B( V4 F. P
# C% Y+ ]8 ^! }7 w8 `& y2 J) `8 a相关阅读:
" ^9 |; R5 \0 F) ~* d0 F% L9 r2 B5 n2 i5 X9 s) b7 j9 X6 y5 q
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。! j2 ~7 Q1 p4 s- R" W/ }+ N
/ B9 N- j: F5 O+ p/ |
回复

使用道具 举报

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

本版积分规则

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