|
drwtsn32.exe(Dr. Watson)是Windows系统内置的程序错误调试器,在默认状态下,出现程序错误时Dr. Watson 将自动启动,除非系统安装VC等其他具有调试功能的软件。 由于user.dmp中存储内容为当前用户的部分内存镜像,因此可导致各种敏感信息泄漏,如帐号、口令、邮件、浏览过的网页和编辑的文件等,具体取决于崩溃的应用程序和在此之前用户进行的操作。由于多种原因可导致Windows系统崩溃,因此无法排除恶意用户利用该漏洞获取非授权信息的可能。在任务管理器里会多出drwtsn32.exe进程是因为有进程非法访问导致出错或者拒绝服务。 0 } e0 R) {1 V8 k- z" M4 l
drwtsn32.exe故障转储文件默认权限设置不当 G7 O3 H3 h2 o
涉及程序:
" T4 [0 s E4 Z! g8 C! m* `; D当前所有Windows版本 , J0 [' M) e! x4 W. }9 M Z4 D
" {- a; K( S; \4 e. p% q5 o
描述: , r, p, B8 R% ~0 Z$ |2 h$ ]% m
drwtsn32.exe可能导致敏感信息泄漏 . L0 e, {8 a! K" Q6 c Z: B
0 ]1 s8 R2 h) V! @: N详细:
" }9 D3 v8 x# Q发现者:tombkeeper@126.com
( _# q; i% [$ P+ V& C1 K; V! F发现时间:2001.10.30
7 I! b* q9 y' G1 B$ {5 [) a" I7 S! Z+ } q4 b+ ]9 N3 i u$ G& O$ w7 T
drwtsn32.exe(Dr. Watson)是一个Windows系统内置的程序错误调试器。默认- _4 u2 K; q; C; i+ w
状态下,出现程序错误时,Dr. Watson 将自动启动,除非系统上安装了VC等其他具有4 }8 J! r9 \) f9 F" b
调试功能的软件更改了默认值。注册表项:: S8 y5 i/ z9 M6 T; H6 h% b
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
' i" @9 F3 w9 a3 a& G7 R/ L下的Debugger 项的值指定了调试器及使用的命令;Auto 项决定是否自动诊断错误,
; d4 P+ f2 z# `, n, P并记录相应的诊断信息。
: _. r# }$ Q, D! A* {8 @[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
# ?) q+ F( Q' ]2 }9 {2 ?/ G9 {7 j0 X. E0 M6 N' Y- _
在Windows 2000中drwtsn32.exe默认会将故障转储文件user.dmp存放在目录
) f- m, f/ ^1 T. V; g“\Documents and Settings\All Users\Documents\DrWatson”下。权限为Everyone
7 W$ ]# E$ z6 S1 l/ [, I9 Z$ [/ I完全控制。在Windows NT中被存储在“\WINNT\”中,everyone组至少有读取权限。! S$ P3 O# R6 ~8 _- o4 a A0 _
9 {# v! k# r5 |, ^1 B由于user.dmp中存储的内容是当前用户的部分内存镜像,所以可能导致各种敏感信息
5 t4 M6 k& c3 W9 B9 J泄漏,例如帐号、口令、邮件、浏览过的网页、正在编辑的文件等等,具体取决于崩溃的
) ^; z& @+ p9 i+ A/ I应用程序和在此之前用户进行了那些操作。* w- \+ ^8 d% h, c( ^
1 r }3 S4 I, x
因为Windows程序是如此易于崩溃,所以不能排除恶意用户利用此弱点获取非授权信息
# S: l9 L* {: y6 T" V0 m7 M4 ^的可能。例如:利用IE5.0以上的畸形注释漏洞就可以使浏览包含恶意代码的iexplore.exe# V1 J0 T! Z! ]/ w( d2 Q# d1 M
和查看包含恶意代码的邮件程序崩溃。(关于IE的畸形注释漏洞请参见拙作《包含畸形注释
" i- A- L9 F8 R# ^" L的HTML文件可使IE 5.0以上版本崩溃》)
" }4 s6 d, l9 P. N0 d# K$ V" M2 d# I3 m) l1 U/ p
测试:% ?( \! W7 Z9 ~2 r; h% V* d
--->在administrator帐号下操作:9 j. P% N, k/ b( K; i q* u: `
如果目前的默认调试器不是 Dr. Watson,请在命令提示符后键入命令:drwtsn32 -i 0 d0 B @* p6 L- ], B) h( n
将 Dr. Watson 设为默认调试器。# B0 n! t+ V8 {1 N9 x, V
先启动一个需要使用密码的程序,这里我们选择Foxmail。: `& i! K' g8 c" A. Z8 a; f
用任务管理器察看Foxmail的PID,假设是“886”。在命令提示符后键入命令:
& {; Y" Q( s$ S. r8 p9 Jdrwtsn32 -p 886* s3 X9 m. J7 @0 G2 s
--->在guest帐号下操作:
# Y% o8 B. k/ B- D1 q' q R在\Documents and Settings\All Users\Documents\DrWatson\目录下键入命令:
Z: j$ r' ^. ^; O. [type user.dmp|find "youEmailPasswd" l& I( V( b+ e3 q- W$ i2 L# ?
就会发现你的邮件密码在user.dmp中,而且完全可以被guest用户读取。; }8 p+ v2 ?% W5 P6 w
i8 X/ o) }( Z9 m _ u8 Y1 r6 Z
# d7 T I2 h& ]+ B解决方案:
9 p5 Z" s% d6 Y! ~微软尚未对此做出反应。
, ?/ Y) N6 P' @$ h7 s3 M0 V在可用的补丁出来之前,采取以下任一措施皆可解决此问题,' i0 y4 n, G# d7 h
1、键入不带参数的drwtsn32,更改故障转储文件到一个特权路径,如:
& N7 a7 G. o! c5 J$ C a4 o* Z\Documents and Settings\Administrator\DrWatson\7 D4 t) l5 D3 B' i. X
或取消“建立故障转储文件”选项。
+ o* {4 X8 q% `* W* K) A2、删除注册表项
* R2 T/ q/ k2 J! M3 H[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
' {% N! [' _5 A6 h7 T7 B w. k下的相关键值。
* K( ^) H: A% h3、使用其它调试工具。并在注册表中正确设置。
6 [" v' T) n4 l' G" L) P1 `& X: Z4 S& y. V7 M
/ f+ U3 u$ h5 F" L* g
附加信息:
6 [6 k- |0 H9 p$ A发现者:tombkeeper@126.com u) J- }0 A. O$ \. y: p" j
, x+ J/ y- ?; L# ]" edrwtsn32 参数
9 D; D% _5 ?/ S
* ?4 y! ^( [' H6 Cdrwtsn32 [-i] [-g] [-p pid] [-e event] [-?]% \; n8 {: o$ ~6 U* b6 R I
- p7 a$ n4 J4 E( J-i 将 DrWtsn32 当作默认应用程序错误调试程序8 m8 k8 ~2 `, u, o) Y
-g 被忽略,但作为 WINDBG 和 NTSD 的兼容而被提供, o5 w: Y, n# d1 {
-p pid 要调试的进程 id6 I; ^( Y9 Q" g+ b+ D, a k
-e event 表示进程附加完成的事件 c; e1 o) F: w2 s. h2 {' J
-? 这个屏幕
2 n) ?7 j; E* t6 k另外这个网址可能对你也有帮助!
$ ?% T! h- o* o/ O% i" v' ?. n: shttp://nfcg.anyp.cn/2/articles/041221114400046.aspx?sv=1 4 l" o1 V1 Z: k! m! |3 a
[此贴子已经被作者于2005-4-21 8:47:06编辑过] |