|
drwtsn32.exe(Dr. Watson)是Windows系统内置的程序错误调试器,在默认状态下,出现程序错误时Dr. Watson 将自动启动,除非系统安装VC等其他具有调试功能的软件。 由于user.dmp中存储内容为当前用户的部分内存镜像,因此可导致各种敏感信息泄漏,如帐号、口令、邮件、浏览过的网页和编辑的文件等,具体取决于崩溃的应用程序和在此之前用户进行的操作。由于多种原因可导致Windows系统崩溃,因此无法排除恶意用户利用该漏洞获取非授权信息的可能。在任务管理器里会多出drwtsn32.exe进程是因为有进程非法访问导致出错或者拒绝服务。
7 ~0 ?& u U; q( B) B8 bdrwtsn32.exe故障转储文件默认权限设置不当
r3 \7 n% E! C* [8 G涉及程序:
- _7 z+ U$ G* L% p! I' ^% v当前所有Windows版本
- @7 g. j) q0 f; H( m
0 y! }" Y2 ]& R7 G: |2 |& X4 s描述: : u' w/ C' Y& B4 K. U: t) J
drwtsn32.exe可能导致敏感信息泄漏 5 E: v* l* h; E3 v" |8 `: b% D4 |! C4 K
$ v$ [) h9 z7 u/ w! V- B, l9 ~; S详细:
- f* q( {9 T& {+ m3 |8 U发现者:tombkeeper@126.com) ]# A a" g6 T% r" Z G+ F# t
发现时间:2001.10.30! B7 p1 A E/ p2 a# m: O9 X- b6 f- Z7 \
( C$ F+ T. t. V i4 @
drwtsn32.exe(Dr. Watson)是一个Windows系统内置的程序错误调试器。默认5 R5 t1 ] g- p7 `
状态下,出现程序错误时,Dr. Watson 将自动启动,除非系统上安装了VC等其他具有. k+ P, N+ @. u' g; t' Y' Y4 d+ o
调试功能的软件更改了默认值。注册表项:
' G. U" X% {; f3 ~( {4 g[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]: x, c" V9 q* _9 l
下的Debugger 项的值指定了调试器及使用的命令;Auto 项决定是否自动诊断错误,6 H, r! j$ A/ O. ?/ t+ I
并记录相应的诊断信息。
# `5 u, a( @! L: k6 h: F[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
. U, o9 i8 ?# K& h2 ]2 K5 [ H4 U0 \* e7 s% z* Z: X& ?/ e
在Windows 2000中drwtsn32.exe默认会将故障转储文件user.dmp存放在目录/ j1 s$ u4 z; S, t
“\Documents and Settings\All Users\Documents\DrWatson”下。权限为Everyone1 {3 `- t0 d K
完全控制。在Windows NT中被存储在“\WINNT\”中,everyone组至少有读取权限。
+ Z' m0 j. n9 F" z! y
0 r6 ~; k, F1 _7 [/ {# v! e* w由于user.dmp中存储的内容是当前用户的部分内存镜像,所以可能导致各种敏感信息) |+ s" @* G" M2 g1 u$ S3 @# y9 U: e
泄漏,例如帐号、口令、邮件、浏览过的网页、正在编辑的文件等等,具体取决于崩溃的" ~" |1 `2 M$ ], U1 G% Q* k
应用程序和在此之前用户进行了那些操作。
0 Y2 n$ ~. D, G! h+ [, s
4 ]% q+ n9 G1 |% l因为Windows程序是如此易于崩溃,所以不能排除恶意用户利用此弱点获取非授权信息$ U9 R& U9 V6 ^4 G- C+ |9 o1 ?+ f. G
的可能。例如:利用IE5.0以上的畸形注释漏洞就可以使浏览包含恶意代码的iexplore.exe% b/ R2 B \7 O5 [. r# |, G
和查看包含恶意代码的邮件程序崩溃。(关于IE的畸形注释漏洞请参见拙作《包含畸形注释
- A; a! x" I( ^. u的HTML文件可使IE 5.0以上版本崩溃》)
5 T4 @& m2 B8 k/ x1 e' T' k; |0 X! F$ m7 m) x) t q1 i
测试:
5 I1 ?: d0 |3 }5 Q4 y--->在administrator帐号下操作:; P# J; g9 Y+ ? ]8 y5 f {
如果目前的默认调试器不是 Dr. Watson,请在命令提示符后键入命令:drwtsn32 -i . Q$ v V+ ]5 {0 y' R. v
将 Dr. Watson 设为默认调试器。7 d" m( ?" u) T# u
先启动一个需要使用密码的程序,这里我们选择Foxmail。
+ {* \4 Y3 C5 v$ ^% c8 [' L6 }用任务管理器察看Foxmail的PID,假设是“886”。在命令提示符后键入命令:
* F/ J9 M/ S' }" Zdrwtsn32 -p 886
& B' \2 N% N H* g* K* Y# _--->在guest帐号下操作:
* P8 {/ q% H4 G( a0 b8 `在\Documents and Settings\All Users\Documents\DrWatson\目录下键入命令:
# X0 `5 Y9 S! c( I# T Htype user.dmp|find "youEmailPasswd"
9 q0 x ]4 w& N7 q+ d1 J! W( {就会发现你的邮件密码在user.dmp中,而且完全可以被guest用户读取。, l6 p" w2 A* [1 o6 y
; J# s- ^4 e( c0 B
, k' F1 ` G1 ^* b8 v; z解决方案:
8 V _1 S6 o S' H% G. n微软尚未对此做出反应。
% Q6 C( _ k1 }9 D+ V4 g在可用的补丁出来之前,采取以下任一措施皆可解决此问题,' w: o9 F( V; f1 c
1、键入不带参数的drwtsn32,更改故障转储文件到一个特权路径,如:
$ v# [. r2 g) @% X% Z! G v& S\Documents and Settings\Administrator\DrWatson\
; S8 @3 k# w* U% X/ h或取消“建立故障转储文件”选项。* {2 n* w3 B+ K. C9 G- i O$ ~# Y
2、删除注册表项, Q, G3 D8 b# w% q$ x! o
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
/ z+ }: A4 ^- m下的相关键值。! f+ y0 e& `6 d- m' ~
3、使用其它调试工具。并在注册表中正确设置。! A1 n/ T0 ~0 P
# v3 W8 E0 d4 m" n$ \& D' m8 F5 P8 {$ ^) Q$ e! W
附加信息:
* H+ T8 z* w) B) G, B6 K1 S发现者:tombkeeper@126.com
: P: h/ ^0 Y0 z8 r$ f5 r" r2 e0 A7 c0 o c- J, H' [+ Q$ n- V
drwtsn32 参数/ Z8 x1 V! \! p
* E4 `4 P: m" e( u* V9 Vdrwtsn32 [-i] [-g] [-p pid] [-e event] [-?]
0 Z. z3 X( k& j6 I/ a4 Z
4 e3 a3 y; P" k+ U- e+ C0 ]-i 将 DrWtsn32 当作默认应用程序错误调试程序0 T( E1 K, {% n- s- c( @
-g 被忽略,但作为 WINDBG 和 NTSD 的兼容而被提供! @& C% t+ c% S3 Q- j( }0 Z6 `
-p pid 要调试的进程 id, ^9 z! L& v9 B+ x/ J: z- k
-e event 表示进程附加完成的事件
! C1 {# @& y/ ]! j, r-? 这个屏幕
# j. G U, x. ~另外这个网址可能对你也有帮助!
, C3 b) h: w! u, khttp://nfcg.anyp.cn/2/articles/041221114400046.aspx?sv=1 ) r8 e$ r- B+ R: j+ Q4 V( p
[此贴子已经被作者于2005-4-21 8:47:06编辑过] |