|
drwtsn32.exe(Dr. Watson)是Windows系统内置的程序错误调试器,在默认状态下,出现程序错误时Dr. Watson 将自动启动,除非系统安装VC等其他具有调试功能的软件。 由于user.dmp中存储内容为当前用户的部分内存镜像,因此可导致各种敏感信息泄漏,如帐号、口令、邮件、浏览过的网页和编辑的文件等,具体取决于崩溃的应用程序和在此之前用户进行的操作。由于多种原因可导致Windows系统崩溃,因此无法排除恶意用户利用该漏洞获取非授权信息的可能。在任务管理器里会多出drwtsn32.exe进程是因为有进程非法访问导致出错或者拒绝服务。
2 r0 p6 N2 ]: w6 e. cdrwtsn32.exe故障转储文件默认权限设置不当 ' u @" h8 G. T7 `& h. [
涉及程序:
& v5 B. [( D, V当前所有Windows版本 ^/ J, G& s! g
& x# {0 q( n+ f0 I1 ]2 }3 L
描述: % f/ O& t3 G8 x' {4 h
drwtsn32.exe可能导致敏感信息泄漏
+ Y6 G A) u' I- X. [9 }5 |- X
! `9 w& d A; @详细:
4 ?; ^1 O; t' `2 `) ^发现者:tombkeeper@126.com7 M7 Z! T& `& h- V: ?' `2 ?8 N
发现时间:2001.10.302 t+ i0 n4 r5 V8 k, P
- i ^) Y3 i5 s9 ndrwtsn32.exe(Dr. Watson)是一个Windows系统内置的程序错误调试器。默认
# [0 C" E7 E# ]* D( T/ g状态下,出现程序错误时,Dr. Watson 将自动启动,除非系统上安装了VC等其他具有" k' t1 Z3 N& f7 P* |0 T+ `1 e, _
调试功能的软件更改了默认值。注册表项:; n5 u, `6 m- R* u; ~
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]% w: B, b T/ O5 t# A0 i$ V
下的Debugger 项的值指定了调试器及使用的命令;Auto 项决定是否自动诊断错误,
; }* T! X, A* k# ]( {% s! r并记录相应的诊断信息。$ i( Z2 q$ }& i2 j2 s; a9 F" O
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
+ U/ _0 v" E( E, m. Q# r. ]
) Q# _7 [! c8 I6 u2 m$ V在Windows 2000中drwtsn32.exe默认会将故障转储文件user.dmp存放在目录, V8 T* D1 m0 w8 @; \$ |+ S
“\Documents and Settings\All Users\Documents\DrWatson”下。权限为Everyone
6 l$ {) ?3 ^4 D" z S2 o4 O完全控制。在Windows NT中被存储在“\WINNT\”中,everyone组至少有读取权限。
1 c, w( R( S* H; K$ K, i
8 H0 `$ W* r4 Z- M9 Q+ o- m" q由于user.dmp中存储的内容是当前用户的部分内存镜像,所以可能导致各种敏感信息
& l( q; I. J5 T' C# [2 o. p泄漏,例如帐号、口令、邮件、浏览过的网页、正在编辑的文件等等,具体取决于崩溃的
% X0 e4 ]) w5 u# s n应用程序和在此之前用户进行了那些操作。2 l0 c6 w0 x3 ^2 N/ d+ V H; G, \
: \8 d5 [/ T' u% d
因为Windows程序是如此易于崩溃,所以不能排除恶意用户利用此弱点获取非授权信息
. X$ Q' N8 o- C8 B的可能。例如:利用IE5.0以上的畸形注释漏洞就可以使浏览包含恶意代码的iexplore.exe7 D' n, Q! a! T
和查看包含恶意代码的邮件程序崩溃。(关于IE的畸形注释漏洞请参见拙作《包含畸形注释6 s5 W" L. x' d; u0 J, N
的HTML文件可使IE 5.0以上版本崩溃》)
* {9 Y; Z/ N; e, f2 g, Y, j$ j* W: O
测试:" B% ]% r0 w$ P2 U, b' b1 n
--->在administrator帐号下操作:* u2 }7 g# g' V" B* d6 e, ~( s- k
如果目前的默认调试器不是 Dr. Watson,请在命令提示符后键入命令:drwtsn32 -i ; ]7 ]7 ]$ u& F
将 Dr. Watson 设为默认调试器。6 W) [3 A7 v4 L" ^: x1 `) @5 B
先启动一个需要使用密码的程序,这里我们选择Foxmail。
- f+ |$ m2 ]# |; e& F3 d5 t用任务管理器察看Foxmail的PID,假设是“886”。在命令提示符后键入命令:0 a7 x5 ] N" b& s
drwtsn32 -p 886
. k2 N. `% b" ^--->在guest帐号下操作:; F4 L* b P1 |( @7 l
在\Documents and Settings\All Users\Documents\DrWatson\目录下键入命令:" b) Z, v i' |+ Q' z+ } p
type user.dmp|find "youEmailPasswd"- e/ f, H3 s/ r, C
就会发现你的邮件密码在user.dmp中,而且完全可以被guest用户读取。
/ l' A, `, U# c; h3 a) a; n9 M4 v6 I" {! `% Y! Y
! `/ }9 \- s: H+ B1 n解决方案: 7 Q! {7 w' h. T( I( x: E+ _
微软尚未对此做出反应。% P; f& S' ^% f9 h7 U7 c7 A
在可用的补丁出来之前,采取以下任一措施皆可解决此问题,
w9 A w- I0 E' j7 f( Z1、键入不带参数的drwtsn32,更改故障转储文件到一个特权路径,如:
L: C l* J8 U$ o\Documents and Settings\Administrator\DrWatson\# F- k; z/ A& Z- @
或取消“建立故障转储文件”选项。
* E5 M9 j8 H5 P0 L: A" H: Q2、删除注册表项- m9 I: `' |# n- p
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
5 L% a# M& E8 U ?下的相关键值。- y) y- W: e( [4 { K' p0 w! ~+ ^
3、使用其它调试工具。并在注册表中正确设置。
2 \6 ~; s; a6 a1 w/ u' s7 G( S0 e7 T' C. M3 E2 X0 K
" z! E# f" l. h- M2 g" u7 H附加信息:
1 z% e8 V Z# Y' |发现者:tombkeeper@126.com' g3 o$ W$ L9 H
7 W9 o5 L9 y% a$ L7 M
drwtsn32 参数; z0 n+ R3 g. a5 a5 F' g3 J
# Y9 W7 j8 Y( I2 @ \& v, O9 }# mdrwtsn32 [-i] [-g] [-p pid] [-e event] [-?]6 f. L0 C' U* ]: a1 c
/ z: }! N) T, J1 z; e
-i 将 DrWtsn32 当作默认应用程序错误调试程序& R" {/ o0 l, |! R
-g 被忽略,但作为 WINDBG 和 NTSD 的兼容而被提供
4 G) r5 i( f7 U, |/ {* l' [- {! T5 R, D-p pid 要调试的进程 id
4 _5 v9 f9 ?- O-e event 表示进程附加完成的事件0 L2 A# H% h1 t4 P
-? 这个屏幕
, Y8 U( w6 O, Y% C另外这个网址可能对你也有帮助! * M% f/ |# y3 v- Z- G' q* X9 u
http://nfcg.anyp.cn/2/articles/041221114400046.aspx?sv=1 5 q" {: _- ~4 O% _$ o9 \+ ?" D! ^
[此贴子已经被作者于2005-4-21 8:47:06编辑过] |