|
drwtsn32.exe(Dr. Watson)是Windows系统内置的程序错误调试器,在默认状态下,出现程序错误时Dr. Watson 将自动启动,除非系统安装VC等其他具有调试功能的软件。 由于user.dmp中存储内容为当前用户的部分内存镜像,因此可导致各种敏感信息泄漏,如帐号、口令、邮件、浏览过的网页和编辑的文件等,具体取决于崩溃的应用程序和在此之前用户进行的操作。由于多种原因可导致Windows系统崩溃,因此无法排除恶意用户利用该漏洞获取非授权信息的可能。在任务管理器里会多出drwtsn32.exe进程是因为有进程非法访问导致出错或者拒绝服务。
" p) _/ e2 t5 H2 i* z0 Edrwtsn32.exe故障转储文件默认权限设置不当 |4 y& @; P0 F2 M! t
涉及程序: . I$ \: K, [3 T) ^, @
当前所有Windows版本 ' M a: H+ V2 w$ ~0 Q7 G
* N' a! w' l7 Z2 _3 f
描述: ( `; P( U0 o3 ^# z
drwtsn32.exe可能导致敏感信息泄漏
6 Z, A+ k* Z+ T' L3 w1 c' U1 B% P! \" `+ ^/ e9 T" S& p- ~
详细:
, F" `. g1 o( J+ V: O# Y发现者:tombkeeper@126.com) }' j* J) [( {
发现时间:2001.10.30* x. }1 Y6 q* ^+ X1 i) Q
+ _+ }7 ~; @1 ?3 r b1 T* R. d1 p
drwtsn32.exe(Dr. Watson)是一个Windows系统内置的程序错误调试器。默认, a1 l9 I2 T% X. \
状态下,出现程序错误时,Dr. Watson 将自动启动,除非系统上安装了VC等其他具有
6 X) e- T. w; { l5 ~调试功能的软件更改了默认值。注册表项: _3 a% Q) u. Y
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]' e6 [# H0 k) F. ]. O* f
下的Debugger 项的值指定了调试器及使用的命令;Auto 项决定是否自动诊断错误,
- }& N" t0 B) ^/ n5 A$ D并记录相应的诊断信息。
; F9 D1 F) r% j, `. C1 y[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
2 N6 x# {# Q* ~0 `" K
- ~. A) S; {) n* n; y% l# S" T6 m在Windows 2000中drwtsn32.exe默认会将故障转储文件user.dmp存放在目录- O5 l" ?+ S1 ?7 ]% I
“\Documents and Settings\All Users\Documents\DrWatson”下。权限为Everyone
2 Z/ y4 z* |+ y5 ^! z完全控制。在Windows NT中被存储在“\WINNT\”中,everyone组至少有读取权限。
+ R7 i$ N' }, H5 t8 g) Q$ k! d+ O
& @; Y: S; u9 G. l0 V9 l由于user.dmp中存储的内容是当前用户的部分内存镜像,所以可能导致各种敏感信息% g# E) ~! S: Y# \! Y0 K
泄漏,例如帐号、口令、邮件、浏览过的网页、正在编辑的文件等等,具体取决于崩溃的3 d$ V: O) j" k, r$ r" {3 }# x* B
应用程序和在此之前用户进行了那些操作。/ Q6 o; {" g p0 g) J
, V" I9 i. I* l" c/ h' T# q3 V
因为Windows程序是如此易于崩溃,所以不能排除恶意用户利用此弱点获取非授权信息: E9 W) ?: I+ E& z& I
的可能。例如:利用IE5.0以上的畸形注释漏洞就可以使浏览包含恶意代码的iexplore.exe
4 P- q o; m4 f( m; K/ Z( B和查看包含恶意代码的邮件程序崩溃。(关于IE的畸形注释漏洞请参见拙作《包含畸形注释
R" i( e. N$ z8 D! w5 q的HTML文件可使IE 5.0以上版本崩溃》)
& P2 S" b$ {! _0 g3 j
Q) M0 k- D: N( k* g' z测试:# H; U, z+ w) F+ Q) Q
--->在administrator帐号下操作:% F& \ h% Q1 C# X* T" t& F5 s
如果目前的默认调试器不是 Dr. Watson,请在命令提示符后键入命令:drwtsn32 -i 1 ]0 y! F6 U, G4 L- M7 {( _
将 Dr. Watson 设为默认调试器。
- O9 u1 S/ |! z, G9 b; G先启动一个需要使用密码的程序,这里我们选择Foxmail。
9 u% x% b P C. o5 B用任务管理器察看Foxmail的PID,假设是“886”。在命令提示符后键入命令:- U6 d/ n% m- H( f, Q
drwtsn32 -p 886% G: M& Q8 ]1 ~% K4 |/ D
--->在guest帐号下操作:
! e8 |9 Q' N3 d* W7 O6 o% t在\Documents and Settings\All Users\Documents\DrWatson\目录下键入命令:
# q7 \# v7 J* N( Ptype user.dmp|find "youEmailPasswd"
+ t& Y/ P4 K, m7 Q0 I就会发现你的邮件密码在user.dmp中,而且完全可以被guest用户读取。
2 y# M1 m- d0 |9 Z# c0 s7 O& P y9 ~% H
# Z8 g/ Y. N6 C+ ?4 _解决方案:
* N/ e9 ^3 D: X n u/ u7 x微软尚未对此做出反应。+ g* z: k* s% H, V+ F: o
在可用的补丁出来之前,采取以下任一措施皆可解决此问题,. W8 a. K& |* J. m
1、键入不带参数的drwtsn32,更改故障转储文件到一个特权路径,如:0 j8 f0 ^, a& K. u! f& w
\Documents and Settings\Administrator\DrWatson\: q& j2 ?' ]% a* T1 ^1 ]+ x. k- L
或取消“建立故障转储文件”选项。5 m4 N5 h5 ` W
2、删除注册表项
$ e4 i/ {, o( g8 n. Y[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]" G1 O B! W" w7 [6 r( _# U
下的相关键值。
( N, b) v$ X, _! O3、使用其它调试工具。并在注册表中正确设置。
3 b$ U/ z$ [5 `. p" O; N: ?/ _$ A6 [" |! W2 K P: d9 k" Q0 r
5 y" o2 }. P' g0 X, [1 l
附加信息:
# M5 b9 z# w" z7 i发现者:tombkeeper@126.com* v9 H2 _+ s( r3 X8 ]" w
4 _' o: E8 [" ydrwtsn32 参数/ @0 T7 H' |5 e* L6 e; ?
& ~; e" t' [* L1 _- _5 W
drwtsn32 [-i] [-g] [-p pid] [-e event] [-?]
% i5 [- Y r6 f5 ? S( L4 Y8 M4 ?2 @! l. t8 a# W
-i 将 DrWtsn32 当作默认应用程序错误调试程序0 Y& W) k7 B5 {
-g 被忽略,但作为 WINDBG 和 NTSD 的兼容而被提供
' F, v0 b8 ^' R9 L/ n. A' w-p pid 要调试的进程 id
7 `4 @/ w; D3 e, G' a% @6 o# k6 M-e event 表示进程附加完成的事件
6 f \ m" K! \! |% h! _) M-? 这个屏幕
& K/ ?" [7 _; C" i/ x另外这个网址可能对你也有帮助!
; |' o6 k3 v$ _http://nfcg.anyp.cn/2/articles/041221114400046.aspx?sv=1 " C+ I$ D9 R8 R% q# g
[此贴子已经被作者于2005-4-21 8:47:06编辑过] |