|
drwtsn32.exe(Dr. Watson)是Windows系统内置的程序错误调试器,在默认状态下,出现程序错误时Dr. Watson 将自动启动,除非系统安装VC等其他具有调试功能的软件。 由于user.dmp中存储内容为当前用户的部分内存镜像,因此可导致各种敏感信息泄漏,如帐号、口令、邮件、浏览过的网页和编辑的文件等,具体取决于崩溃的应用程序和在此之前用户进行的操作。由于多种原因可导致Windows系统崩溃,因此无法排除恶意用户利用该漏洞获取非授权信息的可能。在任务管理器里会多出drwtsn32.exe进程是因为有进程非法访问导致出错或者拒绝服务。 7 w3 m, ?) I) x D: S% d! o
drwtsn32.exe故障转储文件默认权限设置不当
' h( g C, m, g U- z% _3 }" {4 M涉及程序:
- _& j. l, Y( ?& L& n7 B2 F8 T- X当前所有Windows版本
: [* J0 d, u2 D" S7 ~, e. d/ i
+ q; m9 N! H& V8 b* G. ~5 l描述: , X/ J/ N+ R( W: b: f" r* `
drwtsn32.exe可能导致敏感信息泄漏 9 u$ B- ^0 x7 C3 i
& K; r& y6 E4 B" {7 i详细:
4 W2 r& k; [, E& Q9 H发现者:tombkeeper@126.com3 x- H: c+ e. V" w
发现时间:2001.10.309 W+ I: b3 G3 V
+ x9 w5 w& g- a2 p9 B8 ^$ y
drwtsn32.exe(Dr. Watson)是一个Windows系统内置的程序错误调试器。默认8 G, y. I, H: ]4 }" d( Q
状态下,出现程序错误时,Dr. Watson 将自动启动,除非系统上安装了VC等其他具有8 r8 A- q( z5 }4 Z
调试功能的软件更改了默认值。注册表项:, x% P1 ?! r% U7 c1 s% a2 r
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]- c& J. ^, x: l5 N$ I3 m: d
下的Debugger 项的值指定了调试器及使用的命令;Auto 项决定是否自动诊断错误,6 M! L) Z! L7 u/ X% x( o
并记录相应的诊断信息。
9 f. ]' ^; s: k) ]1 Y1 _[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
, [; W: \6 @6 }' \. T6 M) `/ v; B7 q) N) g& }9 B' q
在Windows 2000中drwtsn32.exe默认会将故障转储文件user.dmp存放在目录2 T V- X+ n g, c2 \' }/ z
“\Documents and Settings\All Users\Documents\DrWatson”下。权限为Everyone& u8 K1 {* Z1 R3 K! u3 ^
完全控制。在Windows NT中被存储在“\WINNT\”中,everyone组至少有读取权限。) I1 B5 B0 ^% v8 z7 O
( a" y( x0 N' k- F' ~由于user.dmp中存储的内容是当前用户的部分内存镜像,所以可能导致各种敏感信息2 h5 ~" S* U2 Q1 t5 Y; Y6 }
泄漏,例如帐号、口令、邮件、浏览过的网页、正在编辑的文件等等,具体取决于崩溃的0 c" c. U; { j4 Q
应用程序和在此之前用户进行了那些操作。; u/ }2 s a( b! K) a+ N- m2 L
! a* W# q4 C/ b+ d5 D
因为Windows程序是如此易于崩溃,所以不能排除恶意用户利用此弱点获取非授权信息
8 a+ Z$ a' j: `的可能。例如:利用IE5.0以上的畸形注释漏洞就可以使浏览包含恶意代码的iexplore.exe! q' u4 M9 }% g3 `1 G
和查看包含恶意代码的邮件程序崩溃。(关于IE的畸形注释漏洞请参见拙作《包含畸形注释
( G2 L& N% V; Z6 n- ]的HTML文件可使IE 5.0以上版本崩溃》)
( {! C' B B+ q' B4 G1 m( ~0 ?1 C4 `2 a9 B9 p3 U; ?3 D, d
测试:, e! p7 U# i$ {7 O2 I
--->在administrator帐号下操作:1 e& e4 M6 T6 n5 ^7 z2 G2 Q" C
如果目前的默认调试器不是 Dr. Watson,请在命令提示符后键入命令:drwtsn32 -i ( z' |9 Q# D3 w' Z5 o6 P( g
将 Dr. Watson 设为默认调试器。
' i% M) |- f0 Z先启动一个需要使用密码的程序,这里我们选择Foxmail。
/ ?! f$ Q7 X, ?) }- T) {4 I2 f' m% z! l用任务管理器察看Foxmail的PID,假设是“886”。在命令提示符后键入命令:
2 x r9 v: c2 O% W, y4 V( Sdrwtsn32 -p 886
H8 {* h1 k" l/ A+ \' ^% t6 {--->在guest帐号下操作:
' C" C: ~0 R: O- c在\Documents and Settings\All Users\Documents\DrWatson\目录下键入命令:
8 J4 A( { h/ w2 i* e; J* Vtype user.dmp|find "youEmailPasswd"
' k# b* j7 ^& K" o! x就会发现你的邮件密码在user.dmp中,而且完全可以被guest用户读取。
1 S# {9 z2 X% M$ Q% N7 v. ?$ ~2 n+ T3 Q' q, @* m
2 c' Q' P, u: i$ Y# a4 L! G. {
解决方案:
; s4 S4 j1 W5 {6 ?: W( S' \ Q微软尚未对此做出反应。
7 b: n$ ?4 {/ r [/ n7 e在可用的补丁出来之前,采取以下任一措施皆可解决此问题,! n5 ^* ~' S: T* b/ p
1、键入不带参数的drwtsn32,更改故障转储文件到一个特权路径,如:8 A$ J0 R% s+ ~# K$ ^3 R
\Documents and Settings\Administrator\DrWatson\
* Y6 w" `4 V# k( q/ R# d# z或取消“建立故障转储文件”选项。8 \6 l5 _9 @, G0 q
2、删除注册表项
2 k P' e/ e9 p6 l[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
1 ]6 F+ ~9 j/ v4 Q/ a7 s下的相关键值。
4 K( n) ^$ @/ f& I4 r3、使用其它调试工具。并在注册表中正确设置。
- a i! A6 u' [1 _
6 ^! d0 z; D8 p5 b; R( t# q7 C: _8 S- w& y% S" v' W
附加信息:
. N0 N9 n4 M5 c2 q0 Y- i2 h- ]发现者:tombkeeper@126.com
0 P0 s7 z8 W" J
$ h9 C) k- |, Z- h! t) c% D- R4 Tdrwtsn32 参数
' H6 }! f& V f6 @
9 _1 ]7 } F2 j% V4 S: Pdrwtsn32 [-i] [-g] [-p pid] [-e event] [-?]
w& u5 J8 v, |: D; _: Z4 R; r
' [8 x! ]1 o6 v: B! ^# K5 n-i 将 DrWtsn32 当作默认应用程序错误调试程序0 Q: K: z# A$ k3 v
-g 被忽略,但作为 WINDBG 和 NTSD 的兼容而被提供' W. A I6 |6 h
-p pid 要调试的进程 id
) e! R3 J' Y! v K7 Q* L-e event 表示进程附加完成的事件
/ Z9 u% b7 D- Y& T$ |# b-? 这个屏幕 0 A. p1 u4 H1 k3 F) B# ]7 V- c/ i
另外这个网址可能对你也有帮助! 3 v; u2 X5 c; q
http://nfcg.anyp.cn/2/articles/041221114400046.aspx?sv=1
* g2 k( h5 @: N' c! |' ?) R[此贴子已经被作者于2005-4-21 8:47:06编辑过] |