drwtsn32.exe(Dr. Watson)是Windows系统内置的程序错误调试器,在默认状态下,出现程序错误时Dr. Watson 将自动启动,除非系统安装VC等其他具有调试功能的软件。 由于user.dmp中存储内容为当前用户的部分内存镜像,因此可导致各种敏感信息泄漏,如帐号、口令、邮件、浏览过的网页和编辑的文件等,具体取决于崩溃的应用程序和在此之前用户进行的操作。由于多种原因可导致Windows系统崩溃,因此无法排除恶意用户利用该漏洞获取非授权信息的可能。在任务管理器里会多出drwtsn32.exe进程是因为有进程非法访问导致出错或者拒绝服务。 ( o) [" f8 z8 F3 E T
drwtsn32.exe故障转储文件默认权限设置不当
1 E: c, c7 `8 z% h# q$ V涉及程序: - v. \3 o/ c5 \4 Z% f% B( e
当前所有Windows版本 , y- m. K/ p1 ?! S
# z) S1 z U, e% x' O描述:
- V7 k' H9 [9 c4 \* f3 Bdrwtsn32.exe可能导致敏感信息泄漏
- Z2 G/ ]- }) O' E6 o5 h2 x
* x G( C+ V; d$ `6 ^4 Y9 x0 b7 L详细:
& [% x' ^/ G& e, C. c; L7 }发现者:tombkeeper@126.com
_1 W3 u- o5 [: T! l3 P! t+ R发现时间:2001.10.30. D; P8 |0 k3 _( F+ E4 Y9 m
4 W2 F/ D8 x, Y: X, P, D5 C
drwtsn32.exe(Dr. Watson)是一个Windows系统内置的程序错误调试器。默认5 S5 f% k# x( `+ q
状态下,出现程序错误时,Dr. Watson 将自动启动,除非系统上安装了VC等其他具有
& `9 Q2 l; _! x; ]调试功能的软件更改了默认值。注册表项:
2 r6 }% v) K' Z! E[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
* n4 u, C4 |1 q3 k( Y7 ~下的Debugger 项的值指定了调试器及使用的命令;Auto 项决定是否自动诊断错误,
6 U3 Q! ^. j8 U/ _1 i5 G0 E7 l* y并记录相应的诊断信息。. B$ E, V9 Y% R2 O
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
& A( O1 A1 }! j& Z1 `
0 o5 p1 F2 u' n+ D( Q在Windows 2000中drwtsn32.exe默认会将故障转储文件user.dmp存放在目录
3 K3 H# a$ h |$ [+ n5 }“\Documents and Settings\All Users\Documents\DrWatson”下。权限为Everyone
! _ v- z4 U: r6 n, ^完全控制。在Windows NT中被存储在“\WINNT\”中,everyone组至少有读取权限。
+ ^* o% V3 F* @ m
5 ^' m2 T7 Z3 j* _2 N8 k9 P5 H由于user.dmp中存储的内容是当前用户的部分内存镜像,所以可能导致各种敏感信息5 R5 j1 B* v/ t; ?) ~& f7 B
泄漏,例如帐号、口令、邮件、浏览过的网页、正在编辑的文件等等,具体取决于崩溃的1 _3 X- U' |9 Z5 ]7 s
应用程序和在此之前用户进行了那些操作。/ K6 h( T) q2 N& T0 x
. ^, R! a$ e. y
因为Windows程序是如此易于崩溃,所以不能排除恶意用户利用此弱点获取非授权信息, N: f, G' b8 H! z, h* v; `
的可能。例如:利用IE5.0以上的畸形注释漏洞就可以使浏览包含恶意代码的iexplore.exe! B( G6 T0 p7 Y. f/ B
和查看包含恶意代码的邮件程序崩溃。(关于IE的畸形注释漏洞请参见拙作《包含畸形注释
( L N: i( I+ F% O: I1 i的HTML文件可使IE 5.0以上版本崩溃》)0 \' j7 ?8 c# `) [' m7 Q4 F
% I# W# m# _* e( |( ~, x) P
测试:
8 \* ~, h3 {, x--->在administrator帐号下操作:4 \. |0 r- ?: k& q
如果目前的默认调试器不是 Dr. Watson,请在命令提示符后键入命令:drwtsn32 -i
" Y$ ~! Q6 [5 S8 u将 Dr. Watson 设为默认调试器。
( V1 K$ f6 ^% s3 g8 E8 s先启动一个需要使用密码的程序,这里我们选择Foxmail。) R2 v' Y2 Q O* L: X
用任务管理器察看Foxmail的PID,假设是“886”。在命令提示符后键入命令: p# X& e5 l6 Y* p' G; e
drwtsn32 -p 886
8 b2 L S# o4 Y) Q, `) g7 J--->在guest帐号下操作:
1 |$ F3 d% k9 @6 R. T在\Documents and Settings\All Users\Documents\DrWatson\目录下键入命令:' ^/ B& l) h% Y- R
type user.dmp|find "youEmailPasswd"1 X7 ]; Q2 I P4 w; @$ `' ~6 U
就会发现你的邮件密码在user.dmp中,而且完全可以被guest用户读取。
* E' E! ~9 N4 V9 B6 X. d
. r0 `9 s& O' r: @; j% d# ], V. M O8 v5 b* `7 M9 ?$ M
解决方案:
% q; P" }, B. W微软尚未对此做出反应。( j1 M& Y0 l5 Q- s/ m: |+ k
在可用的补丁出来之前,采取以下任一措施皆可解决此问题,
3 x! c. i$ G; h1、键入不带参数的drwtsn32,更改故障转储文件到一个特权路径,如:, I' b4 N" ?' H
\Documents and Settings\Administrator\DrWatson\
; H8 }' ]! F S' M4 a6 c0 f或取消“建立故障转储文件”选项。
; }- l" v# s, h+ c2、删除注册表项3 \5 A% o# E: u
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
, C7 C, q6 u9 R' @# u% P. l/ F下的相关键值。
( ~3 ?4 L% ~& B6 \3 i3、使用其它调试工具。并在注册表中正确设置。$ u1 c& K* |% ]1 D1 t) Y
2 k7 y4 c# s0 ]. A! N* U/ u( Q* v, K
附加信息: ; n6 f; M8 E5 Y$ l/ `
发现者:tombkeeper@126.com3 ?/ l0 Y- H4 [$ ^+ i
p6 L' ]1 y7 k& h
drwtsn32 参数
8 T' L6 i6 S' t, ~) M* e
& v, i) {4 Y' N+ h6 k- d1 _. Ddrwtsn32 [-i] [-g] [-p pid] [-e event] [-?]
% a* @6 a% l' m" B/ d
5 J6 I$ u$ ?9 D1 t+ { W: U. y-i 将 DrWtsn32 当作默认应用程序错误调试程序$ n% c& b+ ~" H+ e4 R: J/ c0 {
-g 被忽略,但作为 WINDBG 和 NTSD 的兼容而被提供
7 Z! e q. i/ _-p pid 要调试的进程 id* H' }2 N @# u) j6 K
-e event 表示进程附加完成的事件9 q/ B7 P, N u8 H6 m* x
-? 这个屏幕
4 s0 Y' v* j0 H8 @3 D/ v" K) J7 w另外这个网址可能对你也有帮助!
8 I6 N& J. @4 w- `http://nfcg.anyp.cn/2/articles/041221114400046.aspx?sv=1 * D& x# p* ~3 W
[此贴子已经被作者于2005-4-21 8:47:06编辑过] |