drwtsn32.exe(Dr. Watson)是Windows系统内置的程序错误调试器,在默认状态下,出现程序错误时Dr. Watson 将自动启动,除非系统安装VC等其他具有调试功能的软件。 由于user.dmp中存储内容为当前用户的部分内存镜像,因此可导致各种敏感信息泄漏,如帐号、口令、邮件、浏览过的网页和编辑的文件等,具体取决于崩溃的应用程序和在此之前用户进行的操作。由于多种原因可导致Windows系统崩溃,因此无法排除恶意用户利用该漏洞获取非授权信息的可能。在任务管理器里会多出drwtsn32.exe进程是因为有进程非法访问导致出错或者拒绝服务。 ( K' q& H2 P. q3 l4 D1 ]0 W
drwtsn32.exe故障转储文件默认权限设置不当
" l# Y% E# O& ~ ]: F涉及程序:
3 j/ L1 P: [# c! G/ A' z: \( E当前所有Windows版本 3 E4 P/ C" n9 b) z& K6 t4 ?" O
' c# ^/ y! K) ]描述:
( W7 w& k6 Z! G, }, p Xdrwtsn32.exe可能导致敏感信息泄漏 ' W6 Y* K# \5 K/ U( Y ^
2 o; ~# z( B+ U% H* o! x/ L详细: 7 f9 X! C7 u9 I: y# [' P/ d* n
发现者:tombkeeper@126.com ^2 l- o8 Z( ^1 F5 S
发现时间:2001.10.30
0 N$ }. n! p4 x3 p. U$ w+ E0 }" K4 _( b
drwtsn32.exe(Dr. Watson)是一个Windows系统内置的程序错误调试器。默认% R9 J1 h+ U1 W5 Q: Z
状态下,出现程序错误时,Dr. Watson 将自动启动,除非系统上安装了VC等其他具有5 T, I* {! h6 B5 V' t, n
调试功能的软件更改了默认值。注册表项:1 {- e8 l. w, F
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
( d5 Y9 j- e3 X下的Debugger 项的值指定了调试器及使用的命令;Auto 项决定是否自动诊断错误,
# n+ U3 w0 G3 s0 E8 ~) s# N7 ^并记录相应的诊断信息。
' p y v; u5 L4 H* x& B[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]' \0 K* l) l8 U8 ]
+ i: B2 ~6 M' ~2 `# y* P# p$ z9 F% Q
在Windows 2000中drwtsn32.exe默认会将故障转储文件user.dmp存放在目录
% D c1 f) Y+ P1 W" G+ m0 F“\Documents and Settings\All Users\Documents\DrWatson”下。权限为Everyone
3 A( N: Q( i4 J o! O, l完全控制。在Windows NT中被存储在“\WINNT\”中,everyone组至少有读取权限。2 L0 E$ ^% v" x" V$ R
; A2 \# `3 ], }; T& q j) ? B由于user.dmp中存储的内容是当前用户的部分内存镜像,所以可能导致各种敏感信息) \2 Y; \7 L! h1 O. Z9 }3 N- h
泄漏,例如帐号、口令、邮件、浏览过的网页、正在编辑的文件等等,具体取决于崩溃的
8 C; G3 u& o$ m! F2 c应用程序和在此之前用户进行了那些操作。
( w2 w( M7 j* _+ h9 R: P" M4 g( P' ?& F. l+ [
因为Windows程序是如此易于崩溃,所以不能排除恶意用户利用此弱点获取非授权信息8 U; q+ g. @9 e+ d4 x
的可能。例如:利用IE5.0以上的畸形注释漏洞就可以使浏览包含恶意代码的iexplore.exe
/ ~! @0 @8 T, t; {2 X和查看包含恶意代码的邮件程序崩溃。(关于IE的畸形注释漏洞请参见拙作《包含畸形注释
8 v9 P$ A! |( X' s. g( w! h的HTML文件可使IE 5.0以上版本崩溃》)
. i2 S( U6 j! ?$ u. p' P6 x
. g" v$ `/ I' c& Q测试:) ^* @0 ^7 p+ Q& w) J# w
--->在administrator帐号下操作:/ g$ ~' c% r# c# x8 |" B
如果目前的默认调试器不是 Dr. Watson,请在命令提示符后键入命令:drwtsn32 -i / S( O2 v: i$ a+ x M3 M1 J& c
将 Dr. Watson 设为默认调试器。2 X/ Q/ f( i: O1 @! p% X
先启动一个需要使用密码的程序,这里我们选择Foxmail。
! q6 Y/ V, q* t0 H0 Y2 ~用任务管理器察看Foxmail的PID,假设是“886”。在命令提示符后键入命令:
: L" ^- e: G9 p) \drwtsn32 -p 886
) t+ M( ^# c. Z--->在guest帐号下操作:
% H) Q) K) A3 J: v" E: y3 {在\Documents and Settings\All Users\Documents\DrWatson\目录下键入命令:* d" S3 F$ K- s/ b
type user.dmp|find "youEmailPasswd"7 x8 h/ `7 d0 M
就会发现你的邮件密码在user.dmp中,而且完全可以被guest用户读取。 B" u9 W z# ^
2 ^2 K* y3 c2 q8 |: _' P; k
2 n/ @" e. Z- @8 C- y- W: h# B# o解决方案: : N1 u ` }( g; w) b
微软尚未对此做出反应。- \, Q/ f3 a2 H1 L U
在可用的补丁出来之前,采取以下任一措施皆可解决此问题,; `) O2 w( @% F" e. ?! c; f5 t. o
1、键入不带参数的drwtsn32,更改故障转储文件到一个特权路径,如:/ s {6 r2 u" [
\Documents and Settings\Administrator\DrWatson\( j6 k* F, Y: ]: v
或取消“建立故障转储文件”选项。) S! {. V8 d- M7 N
2、删除注册表项
' L) _, E" A9 U[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]* o4 G! S' I& _: `
下的相关键值。
7 u2 p5 t/ {$ [) M" ?9 t3、使用其它调试工具。并在注册表中正确设置。0 o+ W6 ~+ m! {7 H7 M. I! q0 _; M
z( L! V& h# k. k! T
3 K* D: ~, ^- A) D6 L. c5 `附加信息:
( ?$ G7 {: g# Z8 B+ A发现者:tombkeeper@126.com1 T6 `% g7 T% ]% x, @
9 o M! l: d/ N% w: V. w6 o0 @) Fdrwtsn32 参数
. d* {, z, d0 g1 j n) s1 z% i! v X8 |
% j2 x) X+ m8 I6 Gdrwtsn32 [-i] [-g] [-p pid] [-e event] [-?]
% y/ x) v/ I* X4 o1 W7 f, @" R* S Z2 {: J/ d W# x( n
-i 将 DrWtsn32 当作默认应用程序错误调试程序7 |- H! O: Y4 F
-g 被忽略,但作为 WINDBG 和 NTSD 的兼容而被提供* M- I" v, r2 S5 `( Y2 q; U* }) ^
-p pid 要调试的进程 id& D: d- u1 d) L& @- I! h
-e event 表示进程附加完成的事件/ R) g4 O" o2 W/ L2 k. M
-? 这个屏幕
& b# t7 o% `4 O; Z6 o0 i8 R, y另外这个网址可能对你也有帮助!
0 ?0 E7 z/ `& \% \( N. rhttp://nfcg.anyp.cn/2/articles/041221114400046.aspx?sv=1 ' {# o* o8 d% F) y8 m: q
[此贴子已经被作者于2005-4-21 8:47:06编辑过] |