|
drwtsn32.exe(Dr. Watson)是Windows系统内置的程序错误调试器,在默认状态下,出现程序错误时Dr. Watson 将自动启动,除非系统安装VC等其他具有调试功能的软件。 由于user.dmp中存储内容为当前用户的部分内存镜像,因此可导致各种敏感信息泄漏,如帐号、口令、邮件、浏览过的网页和编辑的文件等,具体取决于崩溃的应用程序和在此之前用户进行的操作。由于多种原因可导致Windows系统崩溃,因此无法排除恶意用户利用该漏洞获取非授权信息的可能。在任务管理器里会多出drwtsn32.exe进程是因为有进程非法访问导致出错或者拒绝服务。
( C9 x; ?4 i: E0 o, Rdrwtsn32.exe故障转储文件默认权限设置不当 / T& a0 v; }6 t5 V
涉及程序:
- ]( H0 E4 m/ |# Y5 j/ z7 o; O& o7 t当前所有Windows版本 / m. L) n, @. V
6 d2 I/ h5 l. |( s$ z; }1 n) W, Z
描述:
7 |4 P1 D2 y1 n1 f; t2 t2 S( rdrwtsn32.exe可能导致敏感信息泄漏 8 c4 d# b9 {( y$ J3 k/ Y% G
; ?; p e9 X$ Q3 }& e& z详细: 2 `) c$ c. c3 Y6 [1 z
发现者:tombkeeper@126.com
- H6 T! q, Y4 l9 l. i发现时间:2001.10.30
! D# b5 o4 b" N( |1 D/ u
- \) M7 S5 x. ~/ O& v2 z3 E( Udrwtsn32.exe(Dr. Watson)是一个Windows系统内置的程序错误调试器。默认
& Y5 ?) y1 M6 b7 X) W# ]状态下,出现程序错误时,Dr. Watson 将自动启动,除非系统上安装了VC等其他具有
, V [3 A8 x! l- `调试功能的软件更改了默认值。注册表项:4 Z/ j) N0 t4 F& e
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]) P. S: O, a& t! n/ b3 S
下的Debugger 项的值指定了调试器及使用的命令;Auto 项决定是否自动诊断错误,' d5 Y) m) A) j$ b U" j
并记录相应的诊断信息。0 L5 \( u3 U0 G% k
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]4 E0 a- L( H+ k: A3 }
7 k" E% }3 d4 x5 v* E
在Windows 2000中drwtsn32.exe默认会将故障转储文件user.dmp存放在目录3 j" u! x1 H4 o* [& X: o+ _
“\Documents and Settings\All Users\Documents\DrWatson”下。权限为Everyone
- m/ Z4 Y( m0 j6 Z完全控制。在Windows NT中被存储在“\WINNT\”中,everyone组至少有读取权限。7 k8 o% O7 @+ j4 o1 v1 x0 j
6 Z r$ R% X# Z, i由于user.dmp中存储的内容是当前用户的部分内存镜像,所以可能导致各种敏感信息
) C3 s5 A. Q' `, P4 \% ^泄漏,例如帐号、口令、邮件、浏览过的网页、正在编辑的文件等等,具体取决于崩溃的/ ?2 t0 ~5 c6 i/ N( ?4 \* _! }
应用程序和在此之前用户进行了那些操作。
% \% y7 ~0 l3 l& F9 S7 [ G
4 T; M) S1 |. i! I因为Windows程序是如此易于崩溃,所以不能排除恶意用户利用此弱点获取非授权信息4 B# @% x: B+ S6 N5 a4 U5 H h
的可能。例如:利用IE5.0以上的畸形注释漏洞就可以使浏览包含恶意代码的iexplore.exe" h( J5 F" ^/ }$ N; N
和查看包含恶意代码的邮件程序崩溃。(关于IE的畸形注释漏洞请参见拙作《包含畸形注释' J4 s. Z( e9 O: h8 H
的HTML文件可使IE 5.0以上版本崩溃》)7 |9 y7 X1 |" S8 c8 `
( Y X w% K: [/ D3 R. R7 s& h测试:
2 j9 x$ e: v( F, W3 [; v0 X% w--->在administrator帐号下操作:3 P9 Z& I d* q( N( w v
如果目前的默认调试器不是 Dr. Watson,请在命令提示符后键入命令:drwtsn32 -i
z! q& @% B. t5 [将 Dr. Watson 设为默认调试器。; p: {& h0 f& u7 K
先启动一个需要使用密码的程序,这里我们选择Foxmail。
% E- P/ U; ?3 D, D3 I用任务管理器察看Foxmail的PID,假设是“886”。在命令提示符后键入命令:
5 [" z' ~. X1 H' f/ p0 mdrwtsn32 -p 886+ |: D' i: J, Y& y; ^- s8 u4 k
--->在guest帐号下操作:
. f/ V9 b" ^+ n& h在\Documents and Settings\All Users\Documents\DrWatson\目录下键入命令:
/ Q: z( _2 \$ a7 u6 b4 ?6 mtype user.dmp|find "youEmailPasswd"% i& l0 F2 Y& {2 e* K) c9 L* B0 o
就会发现你的邮件密码在user.dmp中,而且完全可以被guest用户读取。3 p, |' ^ b& p# \; Q' b( P
3 X: d/ j2 V1 G+ R7 R X& o8 t# ~+ W, v
解决方案:
6 t8 l9 j; l6 \/ X- O5 Z$ e微软尚未对此做出反应。# a& r. o1 F/ C! e
在可用的补丁出来之前,采取以下任一措施皆可解决此问题,$ |8 W: J9 F, l# r
1、键入不带参数的drwtsn32,更改故障转储文件到一个特权路径,如:- b! f- \2 d, J l6 d5 X2 m
\Documents and Settings\Administrator\DrWatson\
0 v8 I* Y9 |9 c& W. g. c1 \0 p或取消“建立故障转储文件”选项。
' `8 G# d$ p5 g2 `2、删除注册表项' w% ^4 o6 @& g
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
7 V& A( b% b, E+ y; g% _( p" p下的相关键值。5 Z/ x; V% [! y" |8 c
3、使用其它调试工具。并在注册表中正确设置。
; [" O( _% c/ M. t: f" k
& H" i2 A) ^( J2 o! ~+ p4 O; H# b5 R% @& Z3 h, o: e
附加信息:
1 b; X/ w" w. \" B! |发现者:tombkeeper@126.com, W/ d1 |. {$ ^
& G0 L6 J' R' `. X5 k. q, \- ~drwtsn32 参数
) t! S1 ^( ~1 D0 ^. }8 Y' u4 N: P# p
drwtsn32 [-i] [-g] [-p pid] [-e event] [-?]+ z9 Q9 H- Y" A5 a' x" @
3 i8 f5 h8 ^/ l/ H3 y8 B$ d7 |
-i 将 DrWtsn32 当作默认应用程序错误调试程序) B' g3 ^$ n4 |& A( x( n
-g 被忽略,但作为 WINDBG 和 NTSD 的兼容而被提供! j" l) m& V. {: s$ |7 E1 S
-p pid 要调试的进程 id
" Q9 x* Z! u2 \$ q" d-e event 表示进程附加完成的事件( B' D6 o$ }* ?: g
-? 这个屏幕 - w# c+ W! A4 q) {0 e
另外这个网址可能对你也有帮助! 5 w& x, O x) E4 b* N/ @3 G2 Z6 X' Q
http://nfcg.anyp.cn/2/articles/041221114400046.aspx?sv=1
- H& [) z/ a5 y( I[此贴子已经被作者于2005-4-21 8:47:06编辑过] |