|
drwtsn32.exe(Dr. Watson)是Windows系统内置的程序错误调试器,在默认状态下,出现程序错误时Dr. Watson 将自动启动,除非系统安装VC等其他具有调试功能的软件。 由于user.dmp中存储内容为当前用户的部分内存镜像,因此可导致各种敏感信息泄漏,如帐号、口令、邮件、浏览过的网页和编辑的文件等,具体取决于崩溃的应用程序和在此之前用户进行的操作。由于多种原因可导致Windows系统崩溃,因此无法排除恶意用户利用该漏洞获取非授权信息的可能。在任务管理器里会多出drwtsn32.exe进程是因为有进程非法访问导致出错或者拒绝服务。 & [0 b8 F9 Y7 g% B
drwtsn32.exe故障转储文件默认权限设置不当 % y3 `! V( t5 i( i5 d" l
涉及程序:
) r! \( W$ _5 V- C! \& ^' U2 y当前所有Windows版本 2 }! V1 ?7 b( b9 v! U
/ ~# y/ ~( B% G; D+ V" b
描述: 8 r y2 ]" n9 B6 g
drwtsn32.exe可能导致敏感信息泄漏
* b& p* V: w- N" M! D4 Z
/ b% v: j5 H4 l, x% |7 H4 B: y; j详细:
! C$ q5 f8 @6 e. e+ ^) v( E发现者:tombkeeper@126.com4 U0 _- y/ A* U2 d& O
发现时间:2001.10.301 Y) h# f4 Q! O" c! D
7 S) b$ z. `9 b3 B, m/ k
drwtsn32.exe(Dr. Watson)是一个Windows系统内置的程序错误调试器。默认6 u# H) L* N1 r H! u
状态下,出现程序错误时,Dr. Watson 将自动启动,除非系统上安装了VC等其他具有
2 P) M, M. }6 f' N# O调试功能的软件更改了默认值。注册表项:7 i( Q- f% l0 }& G
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
- x2 |* J8 V' N2 E1 Z9 N& {下的Debugger 项的值指定了调试器及使用的命令;Auto 项决定是否自动诊断错误, `. N, @# k% J$ D$ `, }' `& K/ _
并记录相应的诊断信息。3 I2 [9 v. n; |& S* Y" z
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
) Q4 Y1 M! E% ]. E' H
3 Y1 \' p: A. v, v. M在Windows 2000中drwtsn32.exe默认会将故障转储文件user.dmp存放在目录7 i) y9 l* u. {6 v9 U4 ^
“\Documents and Settings\All Users\Documents\DrWatson”下。权限为Everyone" N$ O7 q: W$ p
完全控制。在Windows NT中被存储在“\WINNT\”中,everyone组至少有读取权限。
2 j1 l, W7 z. q- K- l( K1 R
) ~& a( x* ~0 v* Z6 E由于user.dmp中存储的内容是当前用户的部分内存镜像,所以可能导致各种敏感信息! m% Q; t- o; E9 \' U0 U+ B4 S3 J
泄漏,例如帐号、口令、邮件、浏览过的网页、正在编辑的文件等等,具体取决于崩溃的 `9 C8 J% ?; C9 b
应用程序和在此之前用户进行了那些操作。
% v0 B8 ]8 Q9 L( i/ @% S% I, N2 N* W! d) {/ z* F: k
因为Windows程序是如此易于崩溃,所以不能排除恶意用户利用此弱点获取非授权信息
/ U6 J$ M; u, y; F的可能。例如:利用IE5.0以上的畸形注释漏洞就可以使浏览包含恶意代码的iexplore.exe
# E6 v* U: ]; U和查看包含恶意代码的邮件程序崩溃。(关于IE的畸形注释漏洞请参见拙作《包含畸形注释2 U6 P6 @0 g U
的HTML文件可使IE 5.0以上版本崩溃》), W% C0 V# X( ]
5 u6 _. S, v0 M/ P
测试:
$ i) l$ Z7 s3 I; q7 X+ K u--->在administrator帐号下操作:& s0 ^1 ~2 }2 G% c2 h
如果目前的默认调试器不是 Dr. Watson,请在命令提示符后键入命令:drwtsn32 -i
* L# Z) p# Z* k1 G: M; H将 Dr. Watson 设为默认调试器。4 d* e% T8 K7 Z3 t- I5 c+ C* W1 R% n
先启动一个需要使用密码的程序,这里我们选择Foxmail。
m# z% b, N0 m用任务管理器察看Foxmail的PID,假设是“886”。在命令提示符后键入命令:. o: r4 h7 `% |! G9 b
drwtsn32 -p 886# d, ?" Y6 e8 r$ b
--->在guest帐号下操作:( X/ B( d6 ]3 u% c) T# {
在\Documents and Settings\All Users\Documents\DrWatson\目录下键入命令:
4 C; T3 d7 M0 y/ e, n! Ftype user.dmp|find "youEmailPasswd"
4 e# O; z/ [4 I# l就会发现你的邮件密码在user.dmp中,而且完全可以被guest用户读取。9 h2 Z! R5 C8 ]# B! R
/ Q+ s& d' z/ O3 ^ O* J+ B* l( v8 g. u" S# X$ T! ?
解决方案: 9 h1 A& E9 l8 X; ?" G. @
微软尚未对此做出反应。
5 B" h' u4 Z0 i- Q+ C在可用的补丁出来之前,采取以下任一措施皆可解决此问题,
0 y3 j9 h* i$ J8 W1、键入不带参数的drwtsn32,更改故障转储文件到一个特权路径,如:5 m/ A+ d. X# [/ q: b6 c
\Documents and Settings\Administrator\DrWatson\4 K. Z/ n$ c: h4 F+ I% E8 w
或取消“建立故障转储文件”选项。
# m0 a8 E% E3 R6 J2、删除注册表项2 |+ `" Y# b# c. w2 C) ?& P% j
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
1 M/ a0 R. l" d, ]下的相关键值。
! Z. z5 m" t' u- `3 w$ H% X1 H" S3、使用其它调试工具。并在注册表中正确设置。2 c% u9 [$ k' g1 A
3 c) ~4 `3 {' A: T' {
. h; a/ h9 @- {
附加信息: " _* q! w+ n) c' p6 @
发现者:tombkeeper@126.com
4 y2 s) L- D) E$ c8 ~7 o+ T1 f9 [, ]% v/ w5 ]" e
drwtsn32 参数
$ Y# d8 R9 M/ \( w1 w; A9 z
% _8 Z' A7 X' Z* S9 }drwtsn32 [-i] [-g] [-p pid] [-e event] [-?]
: F0 R! L3 s6 `4 K, H- W0 `5 d7 k; b+ d1 H7 h
-i 将 DrWtsn32 当作默认应用程序错误调试程序+ p" s2 c6 I! M; q$ N5 G& l1 e
-g 被忽略,但作为 WINDBG 和 NTSD 的兼容而被提供" ?* f; ~0 v1 M! B% [' s
-p pid 要调试的进程 id
8 e. y9 ^9 E3 x' _-e event 表示进程附加完成的事件
. \1 j0 u% [2 l# x- G3 s& V-? 这个屏幕 " h4 h# c5 D/ c- u+ G5 c5 z
另外这个网址可能对你也有帮助! & k. c" d- g4 e; V+ m1 A# b
http://nfcg.anyp.cn/2/articles/041221114400046.aspx?sv=1 : S S) ~5 m& C5 [# y8 G/ E
[此贴子已经被作者于2005-4-21 8:47:06编辑过] |