内存取证

前言

刚接触这个板块不久,也做了几道题,这里把题合并,记录一下
volatility2 是python2的,volatility3是python3的,刚开始做的第一题是volatility3做的,但是做到后面题发现有些题vol3是不管用的,dump不下来文件,用vol就可以,反正kali里有py2和py3的环境,我干脆两个混着用了
但是个人感觉vol2的功能比较全而且稳定方便
最后,以下所有的内容都是我亲身经历,所有不一定所有的变量都一样,安装或者操作与我有误差还得去看看其他师傅的文章呢

安装

kali更新之后环境有变化,下面的安装不一定能成功,还请自行百度(

vol3

volatility3 下载安装:
kali:
git clone [https://github.com/volatilityfoundation/volatility3.git](https://github.com/volatilityfoundation/volatility3.git)
此时桌面生成一个文件夹,cd到文件夹
pip3 install -r requirements-minimal.txt
pip3 install -r requirements.txt
下载下面这个字符集
https://downloads.volatilityfoundation.org/volatility3/symbols/windows.zip
然后解压后放到symbols目录下

然后执行
python3 setup.py build
python3 setup.py install
然后安装环境requirements.txt报错时
sudo apt install libsnappy-dev

安装成功

vol2

vol的安装就比较ez了
kali下安装Volatility_kali安装volatility_烟雨天青色的博客-CSDN博客
跟着这个就行了

记得在root下安装

前置姿势

  • 官方教程:https://volatility3.readthedocs.io/en/latest/getting-started-windows-tutorial.html

  • PowerShell历史命令文件路径为:%USERPROFILE%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt ,所以我们直接去filescanConsoleHost_history.txt

  • 配合grep命令检索关键字

  • 配合strings转换

  • 一些文件修复姿势,遇到时百度

    tips:

  • vol3要在root用户下运行,不然可能会报错,我就是报错了,重装了还是一样,后来在root运行就可以了

  • vol2最好在根目录运行,我在桌面运行所有命令回显的都是info信息

    常用命令

    vol3

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53


    常用插件:
    layerwriter:列出内存镜像platform信息
    linux.bash:从内存中恢复bash命令历史记录
    linux.check_afinfo:验证网络协议的操作功能指针
    linux.check_syscall:检查系统调用表中的挂钩
    linux.elfs:列出所有进程的所有内存映射ELF文件
    linux.lsmod:列出加载的内核模块
    linux.lsof:列出所有进程的所有内存映射
    linux.malfind:列出可能包含注入代码的进程内存范围
    linux.proc:列出所有进程的所有内存映射
    linux.pslist:列出linux内存映像中存在的进程
    linux.pstree:列出进程树
    mac.bash:从内存中恢复bash命令历史记录
    mac.check_syscall:检查系统调用表中的挂钩
    mac.check_sysctl:检查sysctl处理程序的挂钩
    mac.check_trap_table:检查trap表中的挂钩
    mac.ifconfig:列出网卡信息
    mac.lsmod:列出加载的内核模块
    mac.lsof:列出所有进程的所有内存映射
    mac.malfind:列出可能包含注入代码的进程内存范围
    mac.netstat:列出所有进程的所有网络连接
    mac.psaux:恢复程序命令行参数
    mac.pslist:列出linux内存映像中存在的进程
    mac.pstree:列出进程树
    mac.tasks:列出Mac内存映像中存在的进程
    windows.info:显示正在分析的内存样本的OS和内核详细信息
    windows.callbacks:列出内核回调和通知例程
    windows.cmdline:列出进程命令行参数
    windows.dlldump:将进程内存范围DLL转储
    windows.dlllist:列出Windows内存映像中已加载的dll模块
    windows.driverirp:在Windows内存映像中列出驱动程序的IRP
    windows.driverscan:扫描Windows内存映像中存在的驱动程序
    windows.filescan:扫描Windows内存映像中存在的文件对象
    windows.handles:列出进程打开的句柄
    windows.malfind:列出可能包含注入代码的进程内存范围
    windows.moddump:转储内核模块
    windows.modscan:扫描Windows内存映像中存在的模块
    windows.mutantscan:扫描Windows内存映像中存在的互斥锁
    windows.pslist:列出Windows内存映像中存在的进程
    windows.psscan:扫描Windows内存映像中存在的进程
    windows.pstree:列出进程树
    windows.procdump:转储处理可执行映像
    windows.registry.certificates:列出注册表中存储的证书
    windows.registry.hivelist:列出内存映像中存在的注册表配置单元
    windows.registry.hivescan:扫描Windows内存映像中存在的注册表配置单元
    windows.registry.printkey:在配置单元或特定键值下列出注册表项
    windows.registry.userassist:打印用户助手注册表项和信息
    windows.ssdt:列出系统调用表
    windows.strings:读取字符串命令的输出,并指示每个字符串属于哪个进程
    windows.svcscan:扫描Windows服务
    windows.symlinkscan:扫描Windows内存映像中存在的链接

vol2

vol要--profile指定版本,所以这里的命令就统一了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
volatility [plugin] -f [image] --profile=[profile]

常用插件:
imageinfo:显示目标镜像的摘要信息
pslist:列举出系统进程,但它不能检测到隐藏或者解链的进程
psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程
pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程
mendump:转储指定进程数据,常用foremost来分离里面的文件
filescan:扫描所有的文件列表
dumpfiles:转储文件
svcscan:扫描 Windows 的服务
connscan:查看网络连接
hivelist:打印注册表列表
hivedump:转储注册表信息
printkey:打印注册表项、子项和值
screenshot:Windows截图
hashdump:查看当前操作系统中的password hash,例如Windows的NTLM hash
iehistory:查看ie浏览器记录
lsadump:从注册表获取用户哈希的部分

命令太多,可以–info来查看所有可以用的插件

一些题目wp

[羊城杯 2021]Baby_Forenisc


这里有一个小坑,要在根目录运行命令,我在桌面运行所有命令回显的都是info信息
volatility -f /home/kali/桌面/BIODOG-7711E93C-20210908-053022.raw --profile=WinXPSP2x86 iehistory

找ssh文件
volatility -f /home/kali/桌面/BIODOG-7711E93C-20210908-053022.raw --profile=WinXPSP2x86 filescan |grep 'ssh.txt'

dump下来
volatility -f /home/kali/桌面/BIODOG-7711E93C-20210908-053022.raw --profile=WinXPSP2x86 dumpfiles -Q 0x00000000020bf6a0 -D /home/kali/桌面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

解base64后
song552085107@qq.com
在Github上搜索此用户,找到关键项目:
https://github.com/Ha1f00L/whatsthat
访问后下载项目中的__APP__,在其中可以找到:
U2FuZ0ZvcntTMF8zYXp5XzJfY3JhY2tfbm9vYl9wbGF5ZXJ9
base64解码后就得到了flag :SangFor{S0_3azy_2_crack_noob_player}

hgame2022week4

ezWin - variables

题目这个variables是啥变量,猜测是环境变量
使用命令
python3 vol.py -f /home/kali/桌面/win10_22h2_19045.2486.vmem envars
翻找到一个环境变量

ezWin - 7zip


python3 vol.py -f /home/kali/桌面/win10_22h2_19045.2486.vmem filescan > 1.txt
查看文件
打开1.txt检索flag发现存在flag.7z文件

提取这个文件
python3 vol.py -f ../win10_22h2_19045.2486.vmem dumpfiles --virtaddr 0xd0064181c950

得到

发现需要密码
![](/wp/内存取证/12.png) 文件名给了提示 nt_hash 是Ntlm hash 里面有用户名和密码 `python3 vol.py -f ../win10_22h2_19045.2486.vmem windows.hashdump ` 这里一开始尝试的时候报错了 ![](/wp/内存取证/13.png) 原因是pip安装不了snappy-dev库 前面安装环境的时候` pip3 install -r requirements.txt `报错
然后就跑出账号密码了



hgame{e30b6984-615c-4d26-b0c4-f455fa7202e2}

ezWin - auth

python3 vol.py -f ../win10_22h2_19045.2486.vmem windows.cmdline

一开始没啥思路,就先做了第3题,没想到这题flag是下一题的key
python3 vol.py -f ../win10_22h2_19045.2486.vmem windows.hashdump

hgame{84b0d9c9f830238933e7131d60ac6436}

Byte Bandits CTF 2023

这里比赛的时候队友已经做了,我就直接偷wp,不自己写了

Memory Dump

题目说明:
I was learning powershell when my pc suddenly crashed. Can you retrieve my bash history?

法一

之前长安杯做过PowerShell的取证题,PowerShell历史命令文件路径为
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
所以我们直接去filescanConsoleHost_history.txt

dump一下

cat 一下下

AES解密即可

法二

因为ConsoleHost_history.txt为文本形式,所以利用strings转换一下直接搜索flag{即可

Imageception

题目说明 :
“The painter has the universe in his mind and hands.”
-Leonardo Da Vinci
题目名称为imageception,所以直接FileScan搜索
python vol.py -f ./BBCTF/Imageception.raw windows.filescan.FileScan | grep "imageception"

发现有个imageception.png 把他dump下来

[陇剑杯 2021]内存分析

tips:no space but underline

问1

网管小王制作了一个虚拟机文件,让您来分析后作答: 虚拟机的密码是_____________。(密码中为flag{xxxx},含有空格,提交时不要去掉)

volatility -f /home/kali/桌面/Target.vmem --profile=Win7SP1x64_23418 lsadump

也可以用mimikatz插件
volatility -f Target.vmem --profile=Win7SP1x64 mimikatz

问2

网管小王制作了一个虚拟机文件,让您来分析后作答: 虚拟机中有一个某品牌手机的备份文件,文件里的图片里的字符串为_____________。(解题过程中需要用到上一题答案中flag{}内的内容进行处理。本题的格式也是flag{xxx},含有空格,提交时不要去掉)。
图片要找文件
volatility -f /home/kali/桌面/Target.vmem --profile Win2008R2SP1x64_23418 filescan
找到带华为的文件
volatility -f /home/kali/桌面/Target.vmem --profile Win2008R2SP1x64_23418 dumpfiles -Q 0x000000007d8c7d10 -D /home/kali/桌面
dump下来

改后缀dat为exe

得到一个文件夹,里面是加密的
华为备份文件解密工具:
[https://github.com/RealityNet/kobackupdec](https://github.com/RealityNet/kobackupdec)
注意:
"C:Desktop\kobackupdec-master\..."为上面解压出来的文件夹路径,"C:Desktop\kobackupdec-master\backup"要在命令添加backup来储存解密后的文件
python kobackupdec.py -vvv "W31C0M3_T0_THiS_34SY_F0R3NSiCX" "C:Desktop\kobackupdec-master\..." "C:Desktop\kobackupdec-master\backup"


flag{TH4NK Y0U FOR DECRYPTING MY DATA}

HUBUCTF 2022 新生赛-vmem

内存取证,vol3文件dump不下来,只能用vol2
vol2安装:https://blog.csdn.net/qq_42947816/article/details/119395804
volatility -f /home/kali/桌面/Windows7.vmem imageinfo

volatility -f /home/kali/桌面/Windows7.vmem --profile=Win2008R2SP1x64_23418 filescan|grep 'flag

提取文件
volatility -f /home/kali/桌面/Windows7.vmem --profile=Win2008R2SP1x64_23418 dumpfiles -Q 虚拟地址 -D 保存位置
如:
volatility -f /home/kali/桌面/Windows7.vmem --profile=Win2008R2SP1x64_23418 dumpfiles -Q 0x000000005eb84f20 -D /home/kali/桌面/1
flag1:
the first part of flag is : NSSCTF{W0w_y0u_G3t
flag2:

flag3:

1
2
3
4
5
6
flag3 = open('flag3.txt').read()
flag_enc = ""
for i in range(len(flag3)):
flag_enc += chr(ord(flag3[i]) ^ 0xf - 6)
print(flag_enc)
# }al):{m)yh{})fo)oehn)`z)3)VPF|V^hg](t

异或一下

1
2
3
4
5
6
enc='}al):{m)yh{})fo)oehn)`z)3)VPF|V^hg](t'
flag=''
for i in range(len(enc)):
flag += chr(ord(enc[i]) ^ 0xf - 6)
print(flag)
#the 3rd part of flag is : _YOu_WanT!}

NSSRound#1 Basic]cut_into_thirds

题目说明:华强觉得这flag不甜,就把flag刀成了三份,分给了“基地”家族的老二、老四和老六。请将找到的三块按顺序用“-”连接,flag格式为NSSCTF{uuid}
volatility -f /home/kali/桌面/cut_into_thirds.raw --profile=Win7SP1x64 pslist
列出当前进程

volatility -f /home/kali/桌面/cut_into_thirds.raw --profile=Win7SP1x64 procdump -p 1164 -D /home/kali/桌面/
运行一下导出的程序part2:GRRGGYJNGQ4GKMBNMJRTONI=
base32:4bca-48e0-bc75
volatility -f /home/kali/桌面/cut_into_thirds.raw --profile=Win7SP1x64 filescan
由前面知道可疑文件
0x0000000012191a20 16 0 R--rw- \Device\HarddiskVolume2\Users\CTF\Desktop\LookAtMe.zip
dump下来
part1:3930653363343839


lsa解密不成功
我mimikatz没装成功,呜呜呜太菜了

MTEwOTFmNWI3ZTNh -> base64:11091f5b7e3a
NSSCTF{90e3c489-4bca-48e0-bc75-11091f5b7e3a}

[蓝帽杯 2022 初赛]计算机取证

1

现对一个windows计算机进行取证,请您对以下问题进行分析解答。 从内存镜像中获得taqi7的开机密码是多少?

7f21caca5685f10d9e849cc84c340528

也可以用Passware Kit Forensic

2

现对一个windows计算机进行取证,请您对以下问题进行分析解答。 制作该内存镜像的进程Pid号是多少?

1
volatility -f /home/kali/桌面/1.dmp --profile=Win7SP1x64_23418 pslist

MagnetRAMCaptu是镜像制作工具,该进程pid为2192

3

1
2
现对一个windows计算机进行取证,请您对以下问题进行分析解答。
bitlokcer分区某office文件中存在的flag值为?(答案参考格式:NSSCTF{abcABC123}

在取证大师内存分析工具可以导出1.dmp的Bitlocker key密钥

利用这个密钥可以解码G.E01文件,取证大师有解密工具

得到:

然后利用里面的pass.txt字典来爆出文件密钥

打开得到

flag{b27867b66866866686866883bb43536}

4

1
2
现对一个windows计算机进行取证,请您对以下问题进行分析解答。
TrueCrypt加密中存在的flag值为?

取证大师

挂载加密文件并解密

得到:

爆破一下

flag{1349934913913991394cacacacacacc}


内存取证
http://example.com/2023/02/25/内存取证/
作者
J_0k3r
发布于
2023年2月25日
许可协议
BY J_0K3R