|
drwtsn32.exe(Dr. Watson)是Windows系统内置的程序错误调试器,在默认状态下,出现程序错误时Dr. Watson 将自动启动,除非系统安装VC等其他具有调试功能的软件。 由于user.dmp中存储内容为当前用户的部分内存镜像,因此可导致各种敏感信息泄漏,如帐号、口令、邮件、浏览过的网页和编辑的文件等,具体取决于崩溃的应用程序和在此之前用户进行的操作。由于多种原因可导致Windows系统崩溃,因此无法排除恶意用户利用该漏洞获取非授权信息的可能。在任务管理器里会多出drwtsn32.exe进程是因为有进程非法访问导致出错或者拒绝服务。 . r) R% V) e+ ]0 r) V, @4 U
drwtsn32.exe故障转储文件默认权限设置不当
# f/ q$ g* u8 ]! P涉及程序: $ }" F5 p" x2 o: }2 d$ ?) J S
当前所有Windows版本
, J# z5 L8 u9 I6 x' q% d* W2 }/ X9 Y8 f
描述:
6 C" ?5 C, P ^% [% a- Ydrwtsn32.exe可能导致敏感信息泄漏 - r/ X$ I. A* X: o; U
, f: L* a" q# k. W- j8 N' O, m/ m详细: ' a- P& f% k3 r7 h
发现者:tombkeeper@126.com
* b( q& O& [, g- T- x发现时间:2001.10.30
$ R' v- ]- t! j. C/ v* U; i+ G, B
, W$ D+ m7 V/ C+ Z, [drwtsn32.exe(Dr. Watson)是一个Windows系统内置的程序错误调试器。默认; I2 X0 i: L, A& h
状态下,出现程序错误时,Dr. Watson 将自动启动,除非系统上安装了VC等其他具有' B$ M; F" x. r, F5 K0 s+ M
调试功能的软件更改了默认值。注册表项:
! ~8 d# J! V) [+ z( {[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
y# a7 {+ d' n( {& \/ K下的Debugger 项的值指定了调试器及使用的命令;Auto 项决定是否自动诊断错误,( L5 ]# z/ d% U/ M
并记录相应的诊断信息。
+ S0 w1 Q1 o: s[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
; o. Z' @: H: o- i5 y5 ^3 R' O$ U2 M+ P4 c+ W+ F( \! S2 O
在Windows 2000中drwtsn32.exe默认会将故障转储文件user.dmp存放在目录
- ?. u' s: ]1 Y. b“\Documents and Settings\All Users\Documents\DrWatson”下。权限为Everyone
- b/ L' j& Z4 F1 Z ?完全控制。在Windows NT中被存储在“\WINNT\”中,everyone组至少有读取权限。- Y5 J, Q: a: s& w
1 k: [- f: y6 b6 E/ T
由于user.dmp中存储的内容是当前用户的部分内存镜像,所以可能导致各种敏感信息5 s. K6 G) Q& {
泄漏,例如帐号、口令、邮件、浏览过的网页、正在编辑的文件等等,具体取决于崩溃的" @, X, [+ P# [( F
应用程序和在此之前用户进行了那些操作。
! m6 a5 J3 [ o+ T6 ]
1 z! G8 `5 _; ^8 X因为Windows程序是如此易于崩溃,所以不能排除恶意用户利用此弱点获取非授权信息
5 t% z2 [ U; e/ b的可能。例如:利用IE5.0以上的畸形注释漏洞就可以使浏览包含恶意代码的iexplore.exe
$ m( Z) f; s: w. P7 c2 k和查看包含恶意代码的邮件程序崩溃。(关于IE的畸形注释漏洞请参见拙作《包含畸形注释
/ r9 A. P) r$ ?$ J& b的HTML文件可使IE 5.0以上版本崩溃》)
# z% j& T9 Y1 M, E! R6 m8 }& C5 n3 `+ B" {" w- O
测试:
; W* V" l- m) A2 d( N9 ~--->在administrator帐号下操作:
* W4 h+ s, C: }6 a; X& N8 }如果目前的默认调试器不是 Dr. Watson,请在命令提示符后键入命令:drwtsn32 -i
' ]9 }* y7 T# M3 b& `& v2 y" O将 Dr. Watson 设为默认调试器。 H& o/ L6 @8 _ s
先启动一个需要使用密码的程序,这里我们选择Foxmail。! `- l0 R/ Z J) y# W3 s# f2 C5 d
用任务管理器察看Foxmail的PID,假设是“886”。在命令提示符后键入命令:0 K& m% `6 a* ~/ Z' M$ O+ t
drwtsn32 -p 886
# v* G( F; y$ C- {( ?--->在guest帐号下操作:
/ ]$ S2 k/ ?- d! K* {在\Documents and Settings\All Users\Documents\DrWatson\目录下键入命令:# B4 t( t" }9 f+ P( i0 J; J
type user.dmp|find "youEmailPasswd"1 U0 H% u; Z* A/ ~) R5 o: w
就会发现你的邮件密码在user.dmp中,而且完全可以被guest用户读取。: y' N- M5 i" X5 ]
& ?' m2 f, N5 d6 D% X* v
. X( o( H- O! d0 l0 f7 N* g解决方案: 9 O3 ^9 ]5 U9 [* J- M
微软尚未对此做出反应。
+ g7 @& j8 q0 M6 H( w+ c在可用的补丁出来之前,采取以下任一措施皆可解决此问题,5 C9 |; a2 M5 j4 M7 q
1、键入不带参数的drwtsn32,更改故障转储文件到一个特权路径,如:
. N9 k, X+ x8 w7 q$ h\Documents and Settings\Administrator\DrWatson\
}6 G/ K1 A% Q: R) A4 E% H. v3 n或取消“建立故障转储文件”选项。
8 ]# F$ A4 U2 f/ e/ p2、删除注册表项9 F7 U* }6 ^! _. }% Q4 U
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]; [+ q8 G! n$ }6 z8 e
下的相关键值。' ^) C) {" @8 p8 Z' O
3、使用其它调试工具。并在注册表中正确设置。5 I% C( \" y6 m1 j% {' L# q
) I" g( b% ^% V& D
( {" }! V1 S) |+ `% P, e1 Z& l附加信息: % p, |- q! p9 a5 x
发现者:tombkeeper@126.com. ~) r4 \' B- l% {1 B
# f" t( t( w6 L7 t( ]
drwtsn32 参数2 J! W! u: G+ m: o' W
U: r* }0 N/ J2 X( ]" l3 hdrwtsn32 [-i] [-g] [-p pid] [-e event] [-?]
1 E7 K7 o7 @4 |* ^# ^7 P# P0 X' R, F7 M7 Y9 H6 F; b! A4 A* p
-i 将 DrWtsn32 当作默认应用程序错误调试程序: T' \/ x0 C; t
-g 被忽略,但作为 WINDBG 和 NTSD 的兼容而被提供* D- i. r0 A3 y5 E3 A, E; {
-p pid 要调试的进程 id
1 K7 o. V/ z4 o4 n7 t' i-e event 表示进程附加完成的事件
' Y5 W6 r1 R* K$ a) ]-? 这个屏幕
2 p: E- i( S+ ]另外这个网址可能对你也有帮助!
( p' K+ r8 p$ i- [/ p) O8 O+ @http://nfcg.anyp.cn/2/articles/041221114400046.aspx?sv=1 . g' {$ m" Y/ g
[此贴子已经被作者于2005-4-21 8:47:06编辑过] |