drwtsn32.exe(Dr. Watson)是Windows系统内置的程序错误调试器,在默认状态下,出现程序错误时Dr. Watson 将自动启动,除非系统安装VC等其他具有调试功能的软件。 由于user.dmp中存储内容为当前用户的部分内存镜像,因此可导致各种敏感信息泄漏,如帐号、口令、邮件、浏览过的网页和编辑的文件等,具体取决于崩溃的应用程序和在此之前用户进行的操作。由于多种原因可导致Windows系统崩溃,因此无法排除恶意用户利用该漏洞获取非授权信息的可能。在任务管理器里会多出drwtsn32.exe进程是因为有进程非法访问导致出错或者拒绝服务。
% e- t, i, K9 L- K& _drwtsn32.exe故障转储文件默认权限设置不当 $ r& Y, T+ J8 [ o% X
涉及程序: h* U" `* i, H+ A7 k: _! m
当前所有Windows版本
: r6 o- J/ I: a5 b! X
) z2 c i' Y# u* Z: W描述:
4 a( Z& s, [; e& vdrwtsn32.exe可能导致敏感信息泄漏 0 ?7 j# e9 C2 v& X
4 U0 I) ]& r# P, L5 p详细:
4 C- \% D/ c- d4 y4 ~' d2 p发现者:tombkeeper@126.com
0 H% V% d0 f- K$ Q6 }+ m4 j6 \2 B( i发现时间:2001.10.30
) B4 S$ K7 ~+ B: i' Q5 a; e+ X( C# m) C- a B* R. Y
drwtsn32.exe(Dr. Watson)是一个Windows系统内置的程序错误调试器。默认1 z* e/ o/ ]% Z, l1 Q7 d; _8 q7 f
状态下,出现程序错误时,Dr. Watson 将自动启动,除非系统上安装了VC等其他具有
" h/ `% d! Z' L4 U8 Z% _调试功能的软件更改了默认值。注册表项:
1 X% s9 k9 ?4 N8 `% q0 H[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
. Z+ S3 i& l& X, _, _' @下的Debugger 项的值指定了调试器及使用的命令;Auto 项决定是否自动诊断错误,
! m9 y' v3 E; n2 t/ E并记录相应的诊断信息。5 ], n6 x3 }5 ~, x: r
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
6 V" ^ [ [% n9 ^0 v. u* A
' Y: y5 u$ M9 R' S6 m在Windows 2000中drwtsn32.exe默认会将故障转储文件user.dmp存放在目录
2 |+ y1 O9 H% R6 D. `, O“\Documents and Settings\All Users\Documents\DrWatson”下。权限为Everyone& ~' I3 |; x% i
完全控制。在Windows NT中被存储在“\WINNT\”中,everyone组至少有读取权限。( E" J! L' x* U7 f
- E5 B4 B' a& {: B6 Z由于user.dmp中存储的内容是当前用户的部分内存镜像,所以可能导致各种敏感信息. {- S$ H: M Y) Y% o& w6 F" ^5 {9 N6 p
泄漏,例如帐号、口令、邮件、浏览过的网页、正在编辑的文件等等,具体取决于崩溃的
2 y9 }- v: m6 `$ i8 a应用程序和在此之前用户进行了那些操作。
4 r) c* v* I; d: O' ?
' D% C! s/ b0 m8 a因为Windows程序是如此易于崩溃,所以不能排除恶意用户利用此弱点获取非授权信息
: j, M# e+ N, _& l的可能。例如:利用IE5.0以上的畸形注释漏洞就可以使浏览包含恶意代码的iexplore.exe V Z0 F$ s i6 C* J' S
和查看包含恶意代码的邮件程序崩溃。(关于IE的畸形注释漏洞请参见拙作《包含畸形注释
% j |) N9 R- e的HTML文件可使IE 5.0以上版本崩溃》)/ B3 e4 |6 g+ d4 `
P! I/ i9 q/ H _- f测试:
% w) w) s( ^5 B+ N- o0 N--->在administrator帐号下操作:# o3 S' K( f. l- F8 g" V1 a& B6 l
如果目前的默认调试器不是 Dr. Watson,请在命令提示符后键入命令:drwtsn32 -i 3 i& c. ~6 n( H4 D) U# ?, U
将 Dr. Watson 设为默认调试器。" T8 j/ A* v) U- L3 K/ H9 _- J
先启动一个需要使用密码的程序,这里我们选择Foxmail。
9 o- n9 J5 T+ O; j用任务管理器察看Foxmail的PID,假设是“886”。在命令提示符后键入命令:+ F% Y1 \( P) A8 u# F
drwtsn32 -p 886
5 r2 ?# J. x+ H- S--->在guest帐号下操作:
. c" q4 |' w4 n( a1 J在\Documents and Settings\All Users\Documents\DrWatson\目录下键入命令:& g4 q% A% E1 K. t0 f, P2 U
type user.dmp|find "youEmailPasswd"6 F& V" z- B% c9 W9 ~
就会发现你的邮件密码在user.dmp中,而且完全可以被guest用户读取。4 X1 b: w: a8 x( H' L) L
& Z( w8 {6 v6 q
/ j+ X" h2 j* l% s9 u1 L& D
解决方案: 5 L9 M+ ~4 \' Y4 `2 o; N
微软尚未对此做出反应。
2 Q; l& }, ?# s' x6 [1 Y {7 B, C+ [在可用的补丁出来之前,采取以下任一措施皆可解决此问题,* e) }3 o/ ?) c' A- n \; \
1、键入不带参数的drwtsn32,更改故障转储文件到一个特权路径,如:& p0 `7 m4 W/ P, U* g! g
\Documents and Settings\Administrator\DrWatson\
- ^" a3 O8 g( |7 @6 ~或取消“建立故障转储文件”选项。
( _0 c2 V8 S. \ r/ m% T% w4 M2、删除注册表项$ s; g; q& |8 k3 I$ T: `
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
# u; n5 Z% p) S( Q" v3 G下的相关键值。
8 B# e$ I4 N, s3、使用其它调试工具。并在注册表中正确设置。, I2 e# f4 S0 E- p" h) y
K: X2 `2 e' J6 z2 T5 u% Q
% Q Z" g1 Y$ K( T. u附加信息: . a% [: Y9 E @$ z8 ?6 o$ \
发现者:tombkeeper@126.com& W* h' c9 D3 K5 p7 e
, ~$ ]/ l, P8 e8 f5 G
drwtsn32 参数
^# y B1 C& q5 u. r8 X$ ?
: N% e, J2 {$ t) Sdrwtsn32 [-i] [-g] [-p pid] [-e event] [-?]+ e9 u$ N' w# H8 i: ?% u1 h
, L6 ^2 b" R9 a! I2 [- ]# d
-i 将 DrWtsn32 当作默认应用程序错误调试程序. s& \. a8 ^5 _, i7 D4 q' }- q9 C
-g 被忽略,但作为 WINDBG 和 NTSD 的兼容而被提供
2 Q# B( ~( L' x* h* e3 \-p pid 要调试的进程 id
4 T6 W' m0 X9 N k9 _9 v-e event 表示进程附加完成的事件" l! K/ P `7 Z
-? 这个屏幕 ) @" C, J" j4 B
另外这个网址可能对你也有帮助!
; q. v$ w1 v* Jhttp://nfcg.anyp.cn/2/articles/041221114400046.aspx?sv=1 , T. O( w% q6 d6 ?: O( U8 A
[此贴子已经被作者于2005-4-21 8:47:06编辑过] |