中国网络渗透测试联盟
标题:
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。
; F2 A2 L0 {$ w* Z0 S3 ]
( a! ?8 }- Q& n+ K
Symantec通过博客文章证实该版本软件确实存在安全问题,但是利用起来比较繁琐,并且仅限于运行在Windows XP和Windows 2003的系统,成功利用该漏洞需要有计算机本地访问权限。
' k u* ?4 l+ V0 v2 t
$ Z/ V. l0 z4 _; e! m
研究员Kelvin Kwan称“该漏洞触发场景非常困难,成功利用必须进入一些错误状态,但是成功利用的话可能允许攻击者执行任意代码,获取更高级别的权限”。该漏洞详细细节如下:
) b* z' F6 Q# A; V
3 ]( U; H8 d0 m4 K
( q6 y# E8 X- p! C+ l7 M) k2 E
4 ^- ]8 o7 G& A- N) z' _
function at 0x10024C20 is responsible for dispatching ioctl codes:
8 [# \% b c; z( R) L
5 Y* R& K0 V. e9 r0 e# U
.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)
# T: h W/ E. Q% n' V L ?- O
.text:10024C20 ioctl_handler_deep proc near ; CODE XREF: sub_10007520+6Ap
; l5 J3 j' G9 y* h4 P$ M
.text:10024C20
- j/ C4 Q2 _4 P3 g$ c
.text:10024C20 DestinationString= UNICODE_STRING ptr -3Ch
* m* r5 I- ~: V. _! [5 t% ~
.text:10024C20 var_31 = byte ptr -31h
; V- Z1 u) R2 x( d$ j
.text:10024C20 var_30 = dword ptr -30h
* _/ ~: w. `4 }6 k1 ^$ d
.text:10024C20 some_var = dword ptr -2Ch
( X+ y* T! [( R2 n- a4 t% I8 p
.text:10024C20 var_28 = dword ptr -28h
, y5 }9 N4 t* U' l+ O
.text:10024C20 var_24 = byte ptr -24h
& r" W; @9 ^5 ?$ I# s5 ]
.text:10024C20 var_5 = byte ptr -5
# l/ S# S6 G9 y
.text:10024C20 var_4 = dword ptr -4
5 B3 ~7 Y/ ^" ]
.text:10024C20 ioctl = dword ptr 8
; ], ]6 T7 M6 W- J; j# ]
.text:10024C20 inbuff = dword ptr 0Ch
6 I2 N3 o) \/ ]! O4 t! [ U; A
.text:10024C20 inbuff_size = dword ptr 10h
# o% M- r5 h- n% A* z% Y! [
.text:10024C20 outbuff_size = dword ptr 14h
9 e! a3 P2 i, ?/ c9 m
.text:10024C20 bytes_to_return = dword ptr 18h
# Z k8 e" l. t+ ^) _/ X
.text:10024C20
% u8 P8 `* Y" s, ]! {6 [3 R) x
.text:10024C20 push ebp
5 G$ c) P$ J9 u7 f) W
.text:10024C21 mov ebp, esp
2 f9 q7 j% o9 n/ v' U; A
.text:10024C23 sub esp, 3Ch
0 _0 B% ^ r- Q. ~- U6 |
.text:10024C26 mov eax, BugCheckParameter2
* C! G, R, I8 K' E5 b8 R
.text:10024C2B xor eax, ebp
# L. o& y- h# K
.text:10024C2D mov [ebp+var_4], eax
& c W5 s7 r/ D/ N2 y) u
.text:10024C30 mov eax, [ebp+ioctl]
1 x! A) S6 m: Z+ T$ w3 ^( N
.text:10024C33 push ebx
+ I- k' s* [! ~$ ~5 J
.text:10024C34 mov ebx, [ebp+inbuff]
# S+ q* |4 `) H+ o9 ]! F
.text:10024C37 push esi
& }/ O c4 D6 Y
.text:10024C38 mov esi, [ebp+bytes_to_return]
3 ~6 s5 G6 ^& z/ m1 C+ f# B1 a$ k
.text:10024C3B add eax, 7FFDDFD8h
~8 P2 S r5 N: q. |
.text:10024C40 push edi
5 Z+ q5 ]5 ~7 m$ K: r- y( @) {
.text:10024C41 mov edi, ecx
7 Y# S0 z3 Q! b* ~/ b7 E1 w
.text:10024C43 mov [ebp+some_var], esi
8 C7 `5 r4 W% Q: }* x% v
.text:10024C46 mov [ebp+var_28], 0
8 A6 T/ ~% e, }9 y. @9 z+ I& {' S, p
.text:10024C4D cmp eax, 0A4h ; switch 165 cases
( D* h, V0 {. Y) @
.text:10024C52 ja loc_10025B18 ; jumptable 10024C5F default case
. ~/ l( t1 f" o8 _. R" N
.text:10024C58 movzx eax, ds:byte_10025BF0[eax]
5 @0 G7 v6 F7 l8 E Z/ K
.text:10024C5F jmp ds
ff_10025B50[eax*4] ; switch jump
; p/ o5 {- {8 q
$ R: n) E, T/ I+ z0 D
[..]
; o8 h# \0 W% h! e& A
- y+ j) y0 F+ g, k- V( { S- V
0x80022058 case: no check for outbuff_size == 0! <--- FLAW!
" O1 O+ u2 A* q3 O5 w/ b3 e4 B
* N) t3 k5 G' e
.text:10024F5A lea ecx, [edi+958h]
/ [6 F8 y9 w0 A+ N c# q
.text:10024F60 call sub_100237B0
3 ]" s" O/ p7 C' q ]
.text:10024F65 mov [ebp+some_var], eax
) Z" _9 @' e; }' X- a, [
.text:10024F68 test eax, eax
4 `7 B% c2 ^7 c8 H5 N
.text:10024F6A jnz short loc_10024F7D
w: e" I+ G: n2 W) H, O0 `* C& |# }6 |
.text:10024F6C mov dword ptr [ebx], 0FFFFCFFAh
& s1 @# H3 T0 I5 t5 b7 m
.text:10024F72 mov dword ptr [esi], 10h <--- bytes to copy to output buffer
: A3 H" h% g; q7 W+ l( Z+ c( t
: d, A! N9 R9 c/ ?# F6 H5 ]
next in IofComplete request will be rep movsd at pointer, that is under attacker's control
7 J* \& b5 R9 D/ a* l& o: U: p2 l* N
9 i# j" C, L7 ^
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.
: C5 E+ Q a+ d
" d" A9 d& l+ B" B
Symantec表示在2月份的补丁包中修复该漏洞。
& T2 e: @5 a9 R
8 d: H4 d6 v8 U" o9 ^
相关阅读:
$ n. J' R+ M) L* S% W1 B) _. }
$ b/ B& N9 T3 h/ P' L
赛门铁克的 PGP Whole Disk Encryption 为企业提供了全面的高性能完整磁盘加密功能,可对台式机、笔记本电脑和可移动介质上的所有数据(用户文件、交换文件、系统文件、隐藏文件等)进行完整磁盘加密。该完整磁盘加密软件可让数据免遭未经授权的访问,从而为知识产权、客户和合作伙伴数据提供强大的安全防护。受保护的系统可由 PGP Universal Server 集中管理,这就简化了部署、策略创建、分发和报告过程。
, _/ X( v6 R* ]: k" k2 g; K8 j
- A1 @9 b/ B* a0 F3 r
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2