03 - 自动化抽取dump信息
又是一周,老实说又忘记了这码事,趁着周末填一下。在了解了如何抽取DUMP文件中关于URI的方法之后,继续自动化操作就好。我们把dump归档到某个目录下(work_path
),然后利用批处理,或者随便什么语言什么脚本,只要你开心就好,去调用cdb,并将解析出的结果保存到txt中。
废话不多说,我就是这么喜欢直奔主题,以下是批处理文件。如果你要使用这个批处理,机智的你一定知道怎么修改来匹配你机器的环境。如果不知道的话那还是别找漏洞了:)。
@echo off
set work_path=E:\wowowowow\dump
E:
cd %work_path%
for /R %%s in (*.dmp) do (
echo "*************************"
echo NOW PROCESSING: %%s
echo "*************************"
echo .ecxr;k;.foreach^(place ^{s -^[1^]u 0 L^?80000000 ^"http^"^}^)^{du ^/c100 ^$^{place^}^}| "C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\cdb.exe" -i srv*E:\symbols\*http://msdl.microsoft.com/download/symbols -z %%s >> %%s.out.txt
)
echo "DONE."
经过一番等待之后,得到如下的输出:
毕竟不是文物分析,dmp文件老实说可以删掉了。使用可以预览文档内容的工具,例如FileLocator Pro
(Linux 下的替代:searchmonkey
),对“*.txt”来搜索“://” or "http://"或者其他你感兴趣的东西,分析得到dump文件中保存的那一段历史。
搜索“WAV”,得到这么一串URL:
00234824 "http://DOGE/main.php?DOGEDOGE&A=ListView"
051239e8 "http://DOGE/play.php?file=DOGEDOGEDOGEDOGEDOGEDOGE-015800405922.WAV"
根据URL中残留的信息,可以断定是在网页中预览了某个WAV文件,然后产生了崩溃,崩溃的位置也不错;
0:006> Unable to load image C:\WINDOWS\system32\wmp.dll, Win32 error 0n2
*** WARNING: Unable to verify timestamp for wmp.dll
*** ERROR: Module load completed but symbols could not be loaded for wmp.dll
eax=00000001 ebx=00000000 ecx=00000000 edx=003e953c esi=00000000 edi=00000001
eip=082a7e7f esp=03b9f950 ebp=03b9f960 iopl=0 nv up ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010246
wmp+0x37e7f:
082a7e7f ?? ???
*** Stack trace for last set context - .thread/.cxr resets it
ChildEBP RetAddr
WARNING: Stack unwind information not available. Following frames may be wrong.
03b9f94c 06b1ded0 wmp+0x37e7f
接下来只要保存文件,尝试复现即可。
(作者 blast,CH 03 完)