2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 精彩资源

CTF 使用 Volatility 2 安装 | 内存取证分析.vmem文件 | Volatility 2 适配 python 3

时间:01-23来源:作者:点击数:

1. 背景

在做CTF的时候会碰到 .vmem 文件需要进行分析。vmem文件是虚拟机的分页文件,它备份宿主机文件系统上的guest主内存。此文件仅在虚拟机运行时存在,或者虚拟机崩溃时存在 [1]。这时候就需要 Volatility 文件进行分析。

2. Volatility 安装

Volatility 有 version 2 和 version 3

注意 Volatility 2 只支持 python 2 的环境,而 Volatility 3 支持 python 3.6 以上的环境。

这里给出2 和 3 的官方 git

Volatility 2 + python 2:https://github.com/volatilityfoundation/volatility

Volatility 3 + python 3 :https://github.com/volatilityfoundation/volatility3

然而网上能找到的教程大多数是 Volatility 2 的,但我的电脑又是python 3,怎么办。

办法肯定是有的。我网上冲浪了一会儿,找到了 Volatility 2 适配 python 3 的版本。

Volatility 2 + python 3 :https://github.com/koromodako/volatility

但是在安装依赖的时候会有些麻烦。pip install -r requirements.txt在安装 distorm3 的时候需要 Microsoft C++ Build Tools。只好下了个 VS 的 C++ 14。

然后再安装依赖就好了

3. Volatility 2 使用

3.1 Imageinfo

分析就是查看设备信息 [2]:

  • python vol.py -f file.vmem imageinfo

这一步可以看出推荐的profile:

  • Volatility Foundation Volatility Framework 2.6
  • INFO : volatility.debug : Determining profile based on KDBG search...
  • Suggested Profile(s) : WinXPSP2x86, WinXPSP3x86 (Instantiated with WinXPSP2x86)
  • AS Layer1 : IA32PagedMemoryPae (Kernel AS)
  • AS Layer2 : FileAddressSpace (/home/panardin/Challs/cridex.vmem)
  • PAE type : PAE
  • DTB : 0x2fe000L
  • KDBG : 0x80545ae0L
  • Number of Processors : 1
  • Image Type (Service Pack) : 3
  • KPCR for CPU 0 : 0xffdff000L
  • KUSER_SHARED_DATA : 0xffdf0000L
  • Image date and time : 2012-07-22 02:45:08 UTC+0000
  • Image local date and time : 2012-07-21 22:45:08 -0400

3.2 kdgbscan

题目有时候会问到 KDBG 的虚拟地址是什么

这时用:

  • python vol.py -f file.vmem kdbgscan

offset 的值就是KDBG的虚拟地址

3.3 pslist & pstree

这两个命令是用来查看进程的,需要加上之前分析的profile

  • python vol.py -f file.vmem --profile=WinXPSP2x86 pslist
  • Volatility Foundation Volatility Framework 2.6
  • Offset(V) Name PID PPID Thds Hnds Sess
  • ---------- -------------------- ------ ------ ------ -------- ------
  • 0x823c89c8 System 4 0 53 240 ------
  • 0x822f1020 smss.exe 368 4 3 19 ------
  • 0x822a0598 csrss.exe 584 368 9 326 0
  • 0x82298700 winlogon.exe 608 368 23 519 0
  • 0x81e2ab28 services.exe 652 608 16 243 0
  • 0x81e2a3b8 lsass.exe 664 608 24 330 0
  • 0x82311360 svchost.exe 824 652 20 194 0
  • 0x81e29ab8 svchost.exe 908 652 9 226 0
  • 0x823001d0 svchost.exe 1004 652 64 1118 0
  • 0x821dfda0 svchost.exe 1056 652 5 60 0
  • 0x82295650 svchost.exe 1220 652 15 197 0
  • 0x821dea70 explorer.exe 1484 1464 17 415 0
  • 0x81eb17b8 spoolsv.exe 1512 652 14 113 0
  • 0x81e7bda0 reader_sl.exe 1640 1484 5 39 0
  • 0x820e8da0 alg.exe 788 652 7 104 0
  • 0x821fcda0 wuauclt.exe 1136 1004 8 173 0
  • 0x8205bda0 wuauclt.exe 1588 1004 5 132 0

pstree 会显示进程的所属关系。

  • python vol.py -f file.vmem --profile=WinXPSP2x86 pstree
  • Volatility Foundation Volatility Framework 2.6
  • Name Pid PPid
  • -------------------------------------------------- ------ ------
  • 0x823c89c8:System 4 0
  • . 0x822f1020:smss.exe 368 4
  • .. 0x82298700:winlogon.exe 608 368
  • ... 0x81e2ab28:services.exe 652 608
  • .... 0x821dfda0:svchost.exe 1056 652
  • .... 0x81eb17b8:spoolsv.exe 1512 652
  • .... 0x81e29ab8:svchost.exe 908 652
  • .... 0x823001d0:svchost.exe 1004 652
  • ..... 0x8205bda0:wuauclt.exe 1588 1004
  • ..... 0x821fcda0:wuauclt.exe 1136 1004
  • .... 0x82311360:svchost.exe 824 652
  • .... 0x820e8da0:alg.exe 788 652
  • .... 0x82295650:svchost.exe 1220 652
  • ... 0x81e2a3b8:lsass.exe 664 608
  • .. 0x822a0598:csrss.exe 584 368
  • 0x821dea70:explorer.exe 1484 1464
  • . 0x81e7bda0:reader_sl.exe 1640 1484

3.4 psxview

非常有用,可以查看隐藏的进程,通常是有问题的。

识别方法,某一个进程的 pslist 和 psscan 列都是 False 。

  • python vol.py -f file.vmem --profile=WinXPSP2x86 psxview
  • Volatility Foundation Volatility Framework 2.6
  • Offset(P) Name PID pslist psscan thrdproc pspcid csrss session deskthrd ExitTime
  • ---------- -------------------- ------ ------ ------ -------- ------
  • 0x02498700 winlogon.exe 608 True True True True..
  • 0x02511360 svchost.exe 824 True True True True..
  • 0x022e8da0 alg.exe 788 True True True True..
  • 0x020b17b8 spoolsv.exe 1512 True True True True..
  • 0x0202ab28 services.exe 652 True True True True..
  • 0x02495650 svchost.exe 1220 True True True True..
  • 0x0207bda0 reader_sl.exe 1640 True True True True..
  • 0x025001d0 svchost.exe 1004 True True True True..
  • 0x02029ab8 svchost.exe 908 True True True True..
  • 0x023fcda0 wuauclt.exe 1136 True True True True..
  • 0x0225bda0 wuauclt.exe 1588 True True True True..
  • 0x0202a3b8 lsass.exe 664 True True True True..
  • 0x023dea70 explorer.exe 1484 True True True True..
  • 0x023dfda0 svchost.exe 1056 True True True True..
  • 0x024f1020 smss.exe 368 True True True True..
  • 0x025c89c8 System 4 True True True True..
  • 0x024a0598 csrss.exe 584 True True True True..

3.5 cmdline

查看命令行输了啥。

  • python vol.py -f file.vmem --profile=WinXPSP2x86 cmdline
  • Volatility Foundation Volatility Framework 2.6
  • ********************************************************************
  • System pid: 4
  • ********************************************************************
  • smss.exe pid: 368
  • Command line : \SystemRoot\System32\smss.exe
  • ********************************************************************
  • csrss.exe pid: 584
  • Command line : C:\WINDOWS\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=16
  • ********************************************************************
  • winlogon.exe pid: 608
  • Command line : winlogon.exe
  • ********************************************************************
  • services.exe pid: 652
  • Command line : C:\WINDOWS\system32\services.exe
  • ********************************************************************
  • lsass.exe pid: 664
  • Command line : C:\WINDOWS\system32\lsass.exe
  • ********************************************************************
  • svchost.exe pid: 824
  • Command line : C:\WINDOWS\system32\svchost -k DcomLaunch
  • ********************************************************************
  • svchost.exe pid: 908
  • Command line : C:\WINDOWS\system32\svchost -k rpcss
  • ********************************************************************
  • svchost.exe pid: 1004
  • Command line : C:\WINDOWS\System32\svchost.exe -k netsvcs
  • ********************************************************************
  • svchost.exe pid: 1056
  • Command line : C:\WINDOWS\system32\svchost.exe -k NetworkService
  • ********************************************************************
  • svchost.exe pid: 1220
  • Command line : C:\WINDOWS\system32\svchost.exe -k LocalService
  • ********************************************************************
  • explorer.exe pid: 1484
  • Command line : C:\WINDOWS\Explorer.EXE
  • ********************************************************************
  • spoolsv.exe pid: 1512
  • Command line : C:\WINDOWS\system32\spoolsv.exe
  • ********************************************************************
  • reader_sl.exe pid: 1640
  • Command line : "C:\Program Files\Adobe\Reader 9.0\Reader\Reader_sl.exe"
  • ********************************************************************
  • alg.exe pid: 788
  • Command line : C:\WINDOWS\System32\alg.exe
  • ********************************************************************
  • wuauclt.exe pid: 1136
  • Command line : "C:\WINDOWS\system32\wuauclt.exe" /RunStoreAsComServer Local\[3ec]SUSDSb81eb56fa3105543beb3109274ef8ec1
  • ********************************************************************
  • wuauclt.exe pid: 1588
  • Command line : "C:\WINDOWS\system32\wuauclt.exe"

还有两个相似的插件 cmdscan 和 consoles 就不展开了。

3.6 prodump & memdump

如果你发现某个进程很可疑,需要进一步分析。只需要找到它的PID值,比如在这个例子中就是 Reader_sl.exe 这个进程,PID是1640。

  • python vol.py -f file.vmem --profile=WinXPSP2x86 procdump -p 1640 --dump-dir .
  • Volatility Foundation Volatility Framework 2.6
  • Process(V) ImageBase Name Result
  • ---------- ---------- -------------------- ------
  • 0x81e7bda0 0x00400000 reader_sl.exe OK: executable.1640.exe
  • python vol.py -f file.vmem --profile=WinXPSP2x86 memdump -p 1640 --dump-dir .
  • Volatility Foundation Volatility Framework 2.6
  • ************************************************************************
  • Writing reader_sl.exe [ 1640] to 1640.dmp

4. Cheatsheet 整理

  1. https://downloads.volatilityfoundation.org/releases/2.4/CheatSheet_v2.4.pdf
  2. https://blog.onfvp.com/post/volatility-cheatsheet/
  3. https://andreafortuna.org/2017/07/17/volatility-my-own-cheatsheet-part-4-kernel-memory-and-objects/
  4. https://cookiess.medium.com/volatility-cheatsheet-6e08deb85afb

Reference

[1] https://communities.vmware.com/t5/VMware-Workstation-Pro/vmem-files-thrashing-my-HDD/td-p/1361985

[2] https://medium.com/@zemelusa/first-steps-to-volatile-memory-analysis-dcbd4d2d56a1

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门