|
drwtsn32.exe(Dr. Watson)是Windows系统内置的程序错误调试器,在默认状态下,出现程序错误时Dr. Watson 将自动启动,除非系统安装VC等其他具有调试功能的软件。 由于user.dmp中存储内容为当前用户的部分内存镜像,因此可导致各种敏感信息泄漏,如帐号、口令、邮件、浏览过的网页和编辑的文件等,具体取决于崩溃的应用程序和在此之前用户进行的操作。由于多种原因可导致Windows系统崩溃,因此无法排除恶意用户利用该漏洞获取非授权信息的可能。在任务管理器里会多出drwtsn32.exe进程是因为有进程非法访问导致出错或者拒绝服务。
' Y+ o: v9 `3 Y% S3 }/ cdrwtsn32.exe故障转储文件默认权限设置不当
5 T1 _* n. \8 ~涉及程序:
! p3 @2 W) ^3 ^2 J2 y4 J: k当前所有Windows版本 0 x' Y( y6 z% `$ p; i* I# |
; \, K g/ O6 Q+ C9 P6 h描述: 5 p; c3 n3 I4 A$ c3 ^
drwtsn32.exe可能导致敏感信息泄漏 ) q' S1 j: N3 D* g. m
L1 r8 G1 H3 H6 g2 F+ O! A
详细:
) J5 H1 G3 {( g/ g9 P2 Z: S. b发现者:tombkeeper@126.com* e& r' M+ w! A' x- c
发现时间:2001.10.30
( O( |1 _# f/ [8 U( w
3 \! q( V0 ^" o& |. i4 S" kdrwtsn32.exe(Dr. Watson)是一个Windows系统内置的程序错误调试器。默认+ h o1 v7 {6 h0 [6 S( ?/ j
状态下,出现程序错误时,Dr. Watson 将自动启动,除非系统上安装了VC等其他具有
7 t3 a9 ^2 p1 D调试功能的软件更改了默认值。注册表项:
4 j( t1 h- k# J o0 p, s3 e[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]/ u1 D" d$ w8 S9 o/ f8 w0 Q9 N
下的Debugger 项的值指定了调试器及使用的命令;Auto 项决定是否自动诊断错误,, S# G5 P8 @9 q; G4 ?1 s
并记录相应的诊断信息。# W) Y% h; W5 J! s
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
+ J" \ C& m- ?" ^2 z* i5 b7 d4 b, ^/ K; s: m, x
在Windows 2000中drwtsn32.exe默认会将故障转储文件user.dmp存放在目录7 e# }+ x# a1 @3 x5 y* _3 G
“\Documents and Settings\All Users\Documents\DrWatson”下。权限为Everyone8 O! S: h6 x- x$ D
完全控制。在Windows NT中被存储在“\WINNT\”中,everyone组至少有读取权限。
6 ~4 I& A( U. q9 i$ \2 x- K# v* e8 `2 N, H8 h, {* B0 {
由于user.dmp中存储的内容是当前用户的部分内存镜像,所以可能导致各种敏感信息 o, T% ?* [2 j
泄漏,例如帐号、口令、邮件、浏览过的网页、正在编辑的文件等等,具体取决于崩溃的( R: j# ], _$ O9 j0 v. ]. u
应用程序和在此之前用户进行了那些操作。. U: F) J1 E/ W5 w
( U: b* x- R$ u+ F& H# e
因为Windows程序是如此易于崩溃,所以不能排除恶意用户利用此弱点获取非授权信息
. c" ~0 W) A! I1 O! R: U! ]的可能。例如:利用IE5.0以上的畸形注释漏洞就可以使浏览包含恶意代码的iexplore.exe; W! B6 I, I5 U. W
和查看包含恶意代码的邮件程序崩溃。(关于IE的畸形注释漏洞请参见拙作《包含畸形注释
4 E7 G2 V7 j) }9 R' U) Z: O0 b! w0 O的HTML文件可使IE 5.0以上版本崩溃》)4 e. I7 K. L9 o4 T5 |
" |3 L2 B5 h% V$ j8 Z
测试:
3 N" s7 C4 ~9 P) S7 O2 t: S) @0 C--->在administrator帐号下操作:1 K( A, }: n0 ~5 B/ C
如果目前的默认调试器不是 Dr. Watson,请在命令提示符后键入命令:drwtsn32 -i ; x% L- {5 W5 O( \; u% A, D
将 Dr. Watson 设为默认调试器。
3 p* P- N, M! Z先启动一个需要使用密码的程序,这里我们选择Foxmail。8 N; N4 x5 `0 M- q0 C
用任务管理器察看Foxmail的PID,假设是“886”。在命令提示符后键入命令:
. [ m3 m1 I# I2 pdrwtsn32 -p 886' Z+ }2 I2 h w; ~
--->在guest帐号下操作:1 p L. H* L9 j% \1 x
在\Documents and Settings\All Users\Documents\DrWatson\目录下键入命令:. S. L0 P* t# v; z) P/ Z! z
type user.dmp|find "youEmailPasswd"
& [3 L3 R3 d$ N% B+ g就会发现你的邮件密码在user.dmp中,而且完全可以被guest用户读取。( `" H/ R6 O ?, S4 u2 P
- h0 v! h- L4 h: X6 Y
2 @/ e# j3 }7 Q3 H* j+ {& p5 h解决方案:
H! y1 ]8 M) A8 T# Q! f' V! t微软尚未对此做出反应。# S( h- Y5 F' ?) X
在可用的补丁出来之前,采取以下任一措施皆可解决此问题,9 S% J: G& }* E9 `5 h2 O
1、键入不带参数的drwtsn32,更改故障转储文件到一个特权路径,如:1 i5 O% L4 ~2 E2 D
\Documents and Settings\Administrator\DrWatson\
1 _4 \- X5 t6 \ B5 E/ \- U或取消“建立故障转储文件”选项。
3 i+ _- h8 J1 R2、删除注册表项: U2 J( U0 d+ J0 G! }6 T5 T" P
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
. Y C( O" l8 u0 a$ m下的相关键值。$ i8 c6 T# c; A$ b, ~
3、使用其它调试工具。并在注册表中正确设置。
% [5 u! b& l* Z+ B
] Q$ n$ L5 @/ h0 j4 z. n" d" v+ C; {) K0 b3 h
附加信息: ! \1 ]( c6 A' M, B+ ^; Q' \
发现者:tombkeeper@126.com5 B- E3 a6 \+ z/ {6 x
$ O& a1 N3 n7 E8 C
drwtsn32 参数
8 Z! h; k! u0 {1 c7 r* S3 x& f5 |5 S, p" c
drwtsn32 [-i] [-g] [-p pid] [-e event] [-?]
: J0 L1 `; A" ~1 f& H
% L9 O/ v' F, b0 q" ^-i 将 DrWtsn32 当作默认应用程序错误调试程序
% z) G2 J- O- j U$ o- ?-g 被忽略,但作为 WINDBG 和 NTSD 的兼容而被提供' s! c# l9 M2 @2 F
-p pid 要调试的进程 id
; z# ~! t T. s-e event 表示进程附加完成的事件
9 F; X* _. L! q( i% I-? 这个屏幕 9 Q+ \$ D4 d, |7 K: L: s/ D
另外这个网址可能对你也有帮助! 2 Y1 g+ [+ U- ]9 Z
http://nfcg.anyp.cn/2/articles/041221114400046.aspx?sv=1
: M, [6 [4 Y. H" k( f$ K+ g[此贴子已经被作者于2005-4-21 8:47:06编辑过] |