中国网络渗透测试联盟
标题:
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' s
5 [! 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 -28h
0 `- @* j0 A( R8 r$ M- \7 M
.text:10024C20 var_24 = byte ptr -24h
/ ?. E- E" V- ]4 [
.text:10024C20 var_5 = byte ptr -5
1 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 0Ch
3 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 14h
5 u3 \6 u: c( F+ b# |% U% a$ ?
.text:10024C20 bytes_to_return = dword ptr 18h
2 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 ebx
7 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, 7FFDDFD8h
5 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 case
4 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 ds
ff_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 m
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.
7 [8 {3 k6 F2 |
: s0 y! ^, M! t4 q: V) w
Symantec表示在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