kali中安装内存取证工具volatility
安装pip2
因为kali自带的pip都是3.0版本的。所以需要手动安装基于python2的pip。
# 下载 get-pip.py
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
# 安装 pip
python2 get-pip.py
出现如图代表安装成功
依赖安装
升级pip
pip2 install --upgrade setuptools
安装crypto
pip2 install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple
安装construct
pip2 install construct -i https://pypi.tuna.tsinghua.edu.cn/simple
安装distorm3
# 使用 git 命令下载 distorm3 模块
git clone https://github.com/vext01/distorm3.git
# 进入到 distorm3 目录
cd distorm3
# 安装
python2 setup.py install
安装volatility
# 下载源码
wget http://downloads.volatilityfoundation.org/releases/2.6/volatility-2.6.zip
# 解压
unzip volatility-2.6.zip
# 进入到 volatility-master 目录
cd volatility-master
# 安装
python2 setup.py install
volatility插件安装
mimikatz
在内网渗透中从内存中捕获 Windows 系统的管理员 NTLM 值 和 明文密码
# 下载源码
wget https://raw.githubusercontent.com/RealityNet/hotoloti/master/volatility/mimikatz.py
浏览器插件下载
参数解释
Volatility Foundation Volatility Framework 2.6
用法: Volatility - 内存取证分析平台
Options:
-h, --help 列出所有可用选项及其默认值
默认值可以在配置文件中设置
(/etc/volatilityrc)
--conf-file=/home/kali/.volatilityrc
基于用户的配置文件
-d, --debug 调试Volatility
--plugins=PLUGINS 要使用的其他插件目录(冒号分隔)
--info 打印所有注册对象的信息
--cache-directory=/home/kali/.cache/volatility
存放缓存文件的目录
--cache 使用缓存
--tz=TZ 设置 (Olson) 时区以使用 pytz(如果已安装)或 tzset 显示时间戳
-f FILENAME, --filename=FILENAME
打开图像时使用的文件名
--profile=WinXPSP2x86
要加载的配置文件的名称(使用 --info 查看支持的配置文件列表)
-l LOCATION, --location=LOCATION
从中加载地址空间的 URN 位置
-w, --write 启用写支持
--dtb=DTB DTB 地址
--shift=SHIFT Mac KASLR 移位地址
--output=text 以这种格式输出(支持特定于模块,请参阅下面的模块输出选项)
--output-file=OUTPUT_FILE
在此文件中写入输出
-v, --verbose 详细信息
-g KDBG, --kdbg=KDBG 指定一个 KDBG 虚拟地址(注意:对于 64 位 Windows 8 及更高版本,这是 KdCopyDataBlock 的地址)
--force 强制使用可疑配置文件
-k KPCR, --kpcr=KPCR 指定特定的 KPCR 地址
--cookie=COOKIE 指定 nt!ObHeaderCookie 的地址(仅适用于 Windows 10)
支持的插件命令:
amcache 查看AmCache应用程序痕迹信息
apihooks 检测内核及进程的内存空间中的API hook
atoms 列出会话及窗口站atom表
atomscan Atom表的池扫描(Pool scanner)
auditpol 列出注册表HKLMSECURITYPolicyPolAdtEv的审计策略信息
bigpools 使用BigPagePoolScanner转储大分页池(big page pools)
bioskbd 从实时模式内存中读取键盘缓冲数据(早期电脑可以读取出BIOS开机密码)
cachedump 获取内存中缓存的域帐号的密码哈希
callbacks 打印全系统通知例程
clipboard 提取Windows剪贴板中的内容
cmdline 显示进程命令行参数
cmdscan 提取执行的命令行历史记录(扫描_COMMAND_HISTORY信息)
connections 打印系统打开的网络连接(仅支持Windows XP 和2003)
connscan 打印TCP连接信息
consoles 提取执行的命令行历史记录(扫描_CONSOLE_INFORMATION信息)
crashinfo 提取崩溃转储信息
deskscan tagDESKTOP池扫描(Poolscaner)
devicetree 显示设备树信息
dlldump 从进程地址空间转储动态链接库
dlllist 打印每个进程加载的动态链接库列表
driverirp IRP hook驱动检测
drivermodule 关联驱动对象至内核模块
driverscan 驱动对象池扫描
dumpcerts 提取RAS私钥及SSL公钥
dumpfiles 提取内存中映射或缓存的文件
dumpregistry 转储内存中注册表信息至磁盘
editbox 查看Edit编辑控件信息 (Listbox正在实验中)
envars 显示进程的环境变量
eventhooks 打印Windows事件hook详细信息
evtlogs 提取Windows事件日志(仅支持XP/2003)
filescan 提取文件对象(file objects)池信息
gahti 转储用户句柄(handle)类型信息
gditimers 打印已安装的GDI计时器(timers)及回调(callbacks)
gdt 显示全局描述符表(Global Deor Table)
getservicesids 获取注册表中的服务名称并返回SID信息
getsids 打印每个进程的SID信息
handles 打印每个进程打开的句柄的列表
hashdump 转储内存中的Windows帐户密码哈希(LM/NTLM)
hibinfo 转储休眠文件信息
hivedump 打印注册表配置单元信息
hivelist 打印注册表配置单元列表
hivescan 注册表配置单元池扫描
hpakextract 从HPAK文件(Fast Dump格式)提取物理内存数据
hpakinfo 查看HPAK文件属性及相关信息
idt 显示中断描述符表(Interrupt Deor Table)
iehistory 重建IE缓存及访问历史记录
imagecopy 将物理地址空间导出原生DD镜像文件
imageinfo 查看/识别镜像信息
impscan 扫描对导入函数的调用
joblinks 打印进程任务链接信息
kdbgscan 搜索和转储潜在KDBG值
kpcrscan 搜索和转储潜在KPCR值
ldrmodules 检测未链接的动态链接DLL
lsadump 从注册表中提取LSA密钥信息(已解密)
machoinfo 转储Mach-O 文件格式信息
malfind 查找隐藏的和插入的代码
mbrparser 扫描并解析潜在的主引导记录(MBR)
memdump 转储进程的可寻址内存
memmap 打印内存映射
messagehooks 桌面和窗口消息钩子的线程列表
mftparser 扫描并解析潜在的MFT条目
moddump 转储内核驱动程序到可执行文件的示例
modscan 内核模块池扫描
modules 打印加载模块的列表
multiscan 批量扫描各种对象
mutantscan 对互斥对象池扫描
notepad 查看记事本当前显示的文本
netscan 查看网络连接,要获取当前系统的IP地址和主机名
objtypescan 扫描窗口对象类型对象
patcher 基于页面扫描的补丁程序内存
poolpeek 可配置的池扫描器插件
printkey 打印注册表项及其子项和值
privs 显示进程权限
procdump 进程转储到一个可执行文件示例
pslist 按照EPROCESS列表打印所有正在运行的进程
psscan 进程对象池扫描
pstree 以树型方式打印进程列表
psxview 查找带有隐藏进程的所有进程列表
qemuinfo 转储 Qemu 信息
raw2dmp 将物理内存原生数据转换为windbg崩溃转储格式
screenshot 基于GDI Windows的虚拟屏幕截图保存
servicediff Windows服务列表(ala Plugx)
sessions _MM_SESSION_SPACE的详细信息列表(用户登录会话)
shellbags 打印Shellbags信息
shimcache 解析应用程序兼容性Shim缓存注册表项
shutdowntime 从内存中的注册表信息获取机器关机时间
sockets 打印已打开套接字列表
sockscan TCP套接字对象池扫描
ssdt 显示SSDT条目
strings 物理到虚拟地址的偏移匹配(需要一些时间,带详细信息)
svcscan Windows服务列表扫描
symlinkscan 符号链接对象池扫描
thrdscan 线程对象池扫描
threads 调查_ETHREAD 和_KTHREADs
timeliner 创建内存中的各种痕迹信息的时间线
timers 打印内核计时器及关联模块的DPC
truecryptmaster Recover 恢复TrueCrypt 7.1a主密钥
truecryptpassphrase 查找并提取TrueCrypt密码
truecryptsummary TrueCrypt摘要信息
unloadedmodules 打印卸载的模块信息列表
userassist 打印注册表中UserAssist相关信息
userhandles 转储用户句柄表
vaddump 转储VAD数据为文件
vadinfo 转储VAD信息
vadtree 以树形方式显示VAD树信息
vadwalk 显示遍历VAD树
vboxinfo 转储Virtualbox信息(虚拟机)
verinfo 打印PE镜像中的版本信息
vmwareinfo 转储VMware VMSS/VMSN 信息
volshell 内存镜像中的shell
windows 打印桌面窗口(详细信息)
wintree Z顺序打印桌面窗口树
wndscan 池扫描窗口站
yarascan 以Yara签名扫描进程或内核内存
MemLabs靶场
https://github.com/stuxnet999/MemLabs/tree/master
Lab1 Beginner's Luck
描述
My sister's computer crashed. We were very fortunate to recover this memory dump. Your job is get all her important files from the system. From what we remember, we suddenly saw a black window pop up with some thing being executed. When the crash happened, she was trying to draw something. Thats all we remember from the time of crash. 我姐姐的电脑死机了。我们非常幸运地恢复了这个内存转储。你的工作是从系统中取出她所有的重要文件。根据我们的记忆,我们突然看到一个黑色的窗口弹出,上面有正在执行的任务。车祸发生时,她正试图画点什么。这就是我们从坠机事件中所记得的。
分析
首先使用vol2的imageinfo分析一些镜像
python2 vol.py -f '/root/Desktop/MemoryDump_Lab1.raw' imageinfo
!
flag1
根据描述可以得知黑色窗口,可能是命令行,那么使用cmdscan(提取执行的命令行历史记录(扫描_COMMAND_HISTORY信息))
python2 vol.py -f '/root/Desktop/MemoryDump_Lab1.raw' --profile=Win7SP1x64 cmdscan
发现并没有有用的东西,那么使用cmdline(显示进程命令行参数)查看一些
python2 vol.py -f '/root/Desktop/MemoryDump_Lab1.raw' --profile=Win7SP1x64 cmdline
发现还是没有有用的信息,使用consoles(提取执行的命令行历史记录(扫描_CONSOLE_INFORMATION信息))
python2 vol.py -f '/root/Desktop/MemoryDump_Lab1.raw' --profile=Win7SP1x64 consoles
一眼就看到了base64解密一些发现是flag
ZmxhZ3t0aDFzXzFzX3RoM18xc3Rfc3Q0ZzMhIX0=
flag2
从描述中得知画图软件,使用pslist查看一些进程
python2 vol.py -f '/root/Desktop/MemoryDump_Lab1.raw' --profile=Win7SP1x64 pslist
找到了一个画图程序
0xfffffa80022bab30 mspaint.exe 2424 604 6 128 1 0 2019-12-11 14:35:14 UTC+0000
直接dump下来
python2 vol.py -f '/root/Desktop/MemoryDump_Lab1.raw' --profile=Win7SP1x64 dumpfiles -Q 0xfffffa80022bab30 -D /root/Desktop
用gimp处理一些,宽:1230 高:2000 移位:2268045就可以得出flag了
flag3
使用cmdline查看一下
python2 vol.py -f '/root/Desktop/MemoryDump_Lab1.raw' --profile=Win7SP1x64 cmdline
发现大部分都是.exe只有一个Important.rar,使用filescan查看在哪个文件夹里面
python2 vol.py -f '/root/Desktop/MemoryDump_Lab1.raw' --profile=Win7SP1x64 filescan | grep "Important.rar"
直接dump下来
python2 vol.py -f '/root/Desktop/MemoryDump_Lab1.raw' --profile=Win7SP1x64 dumpfiles -Q 0x000000003fa3ebc0 -D /root/Desktop
修改后缀为rar,打开发现有密码,右击属性查看发现存在注释(Password is NTLM hash(in uppercase) of Alissa's account passwd.解压密码为 Alissa的NTLM hash值(大写))
那么直接使用hashdump获取hash值
python2 vol.py -f '/root/Desktop/MemoryDump_Lab1.raw' --profile=Win7SP1x64 hashdump
将f4ff64c8baac57d22f22edc681055ba6转换成大写F4FF64C8BAAC57D22F22EDC681055BA6
Lab2 A New World
描述
我们公司的一个客户,由于一个未知的错误而无法访问他的系统。他被认为是一位非常受欢迎的“环保”活动家。作为调查的一部分,他告诉我们,他的应用程序是浏览器,他的密码管理器等。我们希望你能翻翻这些记忆,找到他重要的东西,然后把它还给我们。
分析
首先查看镜像信息
python2 vol.py -f '/root/Desktop/MemoryDump_Lab2.raw' imageinfo
flag1
根据描述知道他使用了一些程序,那么我们可以用envars(显示进程的环境变量)
python2 vol.py -f '/root/Desktop/MemoryDump_Lab2.raw' --profile=Win7SP1x64 envars
发现了一串bash64 ZmxhZ3t3M2xjMG0zX1QwXyRUNGczXyFfT2ZfTDRCXzJ9直接解码获得flag
flag{w3lc0m3_T0$T4g3!_Of_L4B_2}
flag2
使用pslist查看一下进程
python2 vol.py -f '/root/Desktop/MemoryDump_Lab2.raw' --profile=Win7SP1x64 pslist
!
发现了一个chrome浏览器的进程。
iehistory(重建IE缓存及访问历史记录)查看一下历史记录
python2 vol.py -f '/root/Desktop/MemoryDump_Lab2.raw' --profile=Win7SP1x64 iehistory
发现了txt,png,hdbx
直接filescan查找一下,txt,png之类的文件
python2 vol.py -f '/root/Desktop/MemoryDump_Lab2.raw' --profile=Win7SP1x64 filescan | grep -E "txt|png|zip|jpg|rar|kdbx"
直接将Password.png和Hidden.kdbx dump下来
python2 vol.py -f '/root/Desktop/MemoryDump_Lab2.raw' --profile=Win7SP1x64 dumpfiles -Q 0x000000003fce1c70 -D /root/Desktop
python2 vol.py -f '/root/Desktop/MemoryDump_Lab2.raw' --profile=Win7SP1x64 dumpfiles -Q 0x000000003fb112a0 -D /root/Desktop
然后将第一个dump下来的文件后缀修改为png
第二个修改成kdbx(kdbx是通过KeePass密码安全创建的数据文件称为KDBX文件,它们通常所说的KeePass的密码数据库。 这些文件包含密码的加密数据库,其中如果用户设置一个主密码,并通过主密码访问他们,他们只能查看。)
使用keepass打开发现需要密码,可能在图片里吧(右下角就是密码)
flag2在Recycle Bin里面,直接双击,查看password就是flag2
flag{w0w_th1s_1s_Th3_SeC0nD_ST4g3_!!}
flag3
cmdline(显示进程命令行参数)查看一下
python2 vol.py -f '/root/Desktop/MemoryDump_Lab2.raw' --profile=Win7SP1x64 cmdline
发现有许多chrome进程,也与题目相符合
直接chromhistory查看chrome历史
python2 vol.py --plugins=plugins/ -f '/root/Desktop/MemoryDump_Lab2.raw' --profile=Win7SP1x64 chromehistory
发现MEGA云盘链接,复制链接打开下载
发现有密码,查看一些属性里面有没有注释,发现是有点(Password is SHA1(stage-3-FLAG) from Lab-1. Password is in lowercase.)提示我们密码是Lab-1的第三部分Flag的SHA1值
Lab3 The Evil's Den
描述
A malicious script encrypted a very secret piece of information I had on my system. Can you recover the information for me please?
一个恶意脚本加密了我系统上的一段非常机密的信息。你能帮我恢复一下信息吗?
Note-1: This challenge is composed of only 1 flag. The flag split into 2 parts.(这个挑战只由一面旗帜组成。国旗分成两部分。)
Note-2: You'll need the first half of the flag to get the second.(你需要拿到前半面旗才能拿到后半面。)
You will need this additional tool to solve the challenge,(你将需要这个额外的工具来解决这个挑战,)
$ sudo apt install steghide
首先分析一下镜像
python2 vol.py -f '/root/Desktop/MemoryDump_Lab3.raw' imageinfo
flag1
根据描述知道,有一个脚本,那么cmdline查看一些
python2 vol.py -f '/root/Desktop/MemoryDump_Lab3.raw' --profile=Win7SP1x86_23418 cmdline
有两个可疑的文件
filescan查看一下
python2 vol.py -f '/root/Desktop/MemoryDump_Lab3.raw' --profile=Win7SP1x86_23418 filescan | grep -E "vip.txt|evilscript.py"
dump下来查看一下
python2 vol.py -f '/root/Desktop/MemoryDump_Lab3.raw' --profile=Win7SP1x86_23418 dumpfiles -Q 0x000000003de1b5f0 -D /root/Desktop
python2 vol.py -f '/root/Desktop/MemoryDump_Lab3.raw' --profile=Win7SP1x86_23418 dumpfiles -Q 0x000000003e727e50 -D /root/Desktop
将第一个后缀修改成py,第二个修改成txt,发现第一个为加密脚本
import sys
import string
def xor(s):
a = ''.join(chr(ord(i)^3) for i in s)
return a
def encoder(x):
return x.encode("base64")
if __name__ == "__main__":
f = open("C:\\Users\\hello\\Desktop\\vip.txt", "w")
arr = sys.argv[1]
arr = encoder(xor(arr))
f.write(arr)
f.close()
写一个逆向的脚本
# python2
import sys
import string
arr = "am1gd2V4M20wXGs3b2U="
a = arr.decode("base64")
x = ''.join(chr(ord(i)^3) for i in a)
print(x)
第一部分flag:inctf{0n3_h4lf
flag2
根据提示,我们需要steghide这个工具来解决,而这款软件是隐写软件,怀疑第二部分flag在图片里
python2 vol.py -f '/root/Desktop/MemoryDump_Lab3.raw' --profile=Win7SP1x86_23418 filescan | grep -E "jpg|jpeg|png"
发现了一个可疑文件suspision1.jpeg
dump下来看看
python2 vol.py -f '/root/Desktop/MemoryDump_Lab3.raw' --profile=Win7SP1x86_23418 dumpfiles -Q 0x0000000004f34148 -D /root/Desktop
修改后缀为jpeg
使用提示中的steghide
steghide extract -sf suspision1.jpeg
提示输入密码,密码就是前半部分flag,输入后提示wrote extracted data to "secret text".
直接cat查看(注意文件名有单引号包裹)
两个flag拼接起来就是 inctf{0n3_h4lf_1s_n0t_3n0ugh}
Lab4 Obsession
描述
My system was recently compromised. The Hacker stole a lot of information but he also deleted a very important file of mine. I have no idea on how to recover it. The only evidence we have, at this point of time is this memory dump. Please help me.
我的系统最近被入侵了。黑客窃取了很多信息,但他也删除了我的一个非常重要的文件。我不知道如何恢复它。目前我们唯一的证据,就是这堆记忆。请帮帮我。
查看镜像信息
python2 vol.py -f '/root/Desktop/MemoryDump_Lab4.raw' imageinfo
flag1
可以使用iehistory查看
iehistory
插件可恢复 IE 历史 index.dat 缓存文件的片段。它可以找到基本访问的链接(通过 FTP 或 HTTP)、重定向链接 (-REDR) 和已删除的条目 (-LEAK)。它适用于加载和使用 wininet.dll 库的任何进程,而不仅仅是 Internet Explorer。通常包括 Windows 资源管理器甚至恶意软件样本。
python2 vol.py -f '/root/Desktop/MemoryDump_Lab4.raw' --profile=Win7SP0x64 iehistory
发现一个Important.txt
filescan查看一下,并dump下来
python2 vol.py -f '/root/Desktop/MemoryDump_Lab4.raw' --profile=Win7SP0x64 filescan | grep "Important.txt"
dump下来
python2 vol.py -f '/root/Desktop/MemoryDump_Lab4.raw' --profile=Win7SP0x64 dumpfiles -Q 0x000000003fc398d0 -D /root/Desktop=
发现暂存不了,因为已经被黑客删除了
那么可以使用mftparser查看
NTFS 文件系统包含一个称为主文件表 (MFT) 的文件。NTFS 文件系统卷上的每个文件在 MFT 中至少有一个条目。有关文件的所有信息(包括其名称、大小、时间和日期戳、权限和数据内容)都存储在 MFT 条目中,或存储在 MFT 条目描述的 MFT 外部空间中。
随着文件添加到 NTFS 文件系统卷,MFT 中会添加更多条目,MFT 的大小也会增大。从 NTFS 文件系统卷中删除文件时,其 MFT 条目会被标记为空闲,可以重新使用。但是,已分配给这些条目的磁盘空间不会重新分配,MFT 的大小也不会减小。
大小小于或等于1024字节的文件将直接存储在MFT表中(称为“常驻”文件),如果超过1024字节,表将只包含其位置信息(称为“非常驻”文件)。
python2 vol.py -f '/root/Desktop/MemoryDump_Lab4.raw' mftparser | grep -C 20 'Important.txt'
直接爆falg了
inctf{1_is_n0t_EQu4l_7o_2_bUt_th1s_d0s3nt_m4ke_s3ns3}
Lab5 Black Tuesday
描述
我们最近收到了客户的内存转储。有人在他不在的时候访问了他的系统,他发现一些相当奇怪的文件被访问了。找到这些文件,它们可能会有用。我引用他的原话,
这些名字无法辨认。它们是由字母和数字组成的,但我看不出它们到底是什么。
此外,他还注意到他最喜爱的应用程序每次运行时都会崩溃。这是病毒吗?
注 1:本次挑战由 3 面旗帜组成。如果你认为第二面旗帜就是终点,那就错了!!:P
注意-2 :进行此挑战时出现了一个小错误。如果您发现任何字符串中包含字符串“ L4B_3_D0n3* !! ”,请将其更改为“L4B_5_D0n3 !!”然后继续。
注 3:仅当您拥有第 1 阶段标志时,您才会获得第 2 阶段标志。
查看镜像信息
python2 vol.py -f '/root/Desktop/MemoryDump_Lab5.raw' imageinfo
flag1
使用pslist查看有哪些进程
python2 vol.py -f '/root/Desktop/MemoryDump_Lab5.raw' --profile=Win7SP1x64 pslist
发现一个WinRAR的进程
用cmdline查看这个进程
python2 vol.py -f '/root/Desktop/MemoryDump_Lab5.raw' --profile=Win7SP1x64 cmdline | grep WinRAR.exe
发现还需要暂存SW1wb3J0YW50.rar,继续使用filescan
直接dump下来
python2 vol.py -f '/root/Desktop/MemoryDump_Lab5.raw' --profile=Win7SP1x64 dumpfiles -Q 0x000000003eed56f0 -D /root/Desktop
可以看到是第二个falg,可能需要第一个flag作为密码
使用iehistory查看一下
python2 vol.py -f '/root/Desktop/MemoryDump_Lab5.raw' --profile=Win7SP1x64 iehistory
发现执行力好多好多次.bmp那个,看起来像base64,拿来解码一些,发现真的是falg
flag{!!w3LL_d0n3_St4g3-1_0f_L4B_5_D0n3!!}
flag2
那么刚刚第二个flag也就出来了,密码就是flag{!!w3LL_d0n3_St4g3-1_0f_L4B_5_D0n3!!}
flag3
继续使用pslist查看进程
python2 vol.py -f '/root/Desktop/MemoryDump_Lab5.raw' --profile=Win7SP1x64 pslist
有一个WerFault进程(WerFault.exe可执行文件是自动错误收集,生成日志和错误报告并将其发送给Microsoft支持系统中包含的内置Windows系统应用程序之一。Windows错误报告服务(WerSvc)在后台运行,并监视Windows和正在运行的应用程序的状态。每个正在运行的应用程序的错误数据都会自动生成,并且用户可以决定是否将该报告发送给Microsoft。)
使用cmdline查看一下
python2 vol.py -f '/root/Desktop/MemoryDump_Lab5.raw' --profile=Win7SP1x64 cmdline | grep -e "WerFault"
发现它的命令行参数中-p指向了NOTEPAD.EXE和NOTEPAD.EXE都指向了NOTEPAD.EXE,说明这可能就是那个崩溃病毒
使用procdump dump下来
python2 vol.py -f '/root/Desktop/MemoryDump_Lab5.raw' --profile=Win7SP1x64 procdump -p 2724 -D /root/Desktop
讲dump下来的exe用IDA打开,往下翻一翻就能看到flag
bi0s{M3m_l4B5_OVeR_!}
Lab6 The Reckoning
描述
我们从情报局部门收到了这份内存转储。他们说这些证据可能包含黑社会黑帮大卫·本杰明的一些秘密。这份内存转储是从他的一名员工那里获取的,本周早些时候,联邦调查局逮捕了他。你的任务是查看内存转储,看看能否找出一些线索。联邦调查局还说,大卫通过互联网与他的员工进行交流,所以这可能是个不错的切入点。
注意:本次挑战由 1 面旗帜组成,分为 2 个部分。
该实验室的标志格式为:inctf{s0me_l33t_Str1ng}
查看镜像信息
python2 vol.py -f '/root/Desktop/MemoryDump_Lab6.raw' imageinfo
flag2
pslist查看一下运行的进程
python2 vol.py -f '/root/Desktop/MemoryDump_Lab6.raw' --profile=Win7SP1x64 pslist
发现许多有用的进程,winrar,chrome,firefox
先从winrar开始,查看他运行了哪些命令
python2 vol.py -f '/root/Desktop/MemoryDump_Lab6.raw' --profile=Win7SP1x64 cmdline | grep WinRAR.exe
发现有个flag.rar,包有用有用的,直接filescan搜索一些
python2 vol.py -f '/root/Desktop/MemoryDump_Lab6.raw' --profile=Win7SP1x64 filescan | grep flag.rar
直接dump下来
python2 vol.py -f '/root/Desktop/MemoryDump_Lab6.raw' --profile=Win7SP1x64 dumpfiles -Q 0x000000005fcfc4b0 -D /root/Desktop
发现需要密码
那么尝试一下consoles
python2 vol.py -f '/root/Desktop/MemoryDump_Lab6.raw' --profile=Win7SP1x64 consoles
发现执行力一个env命令,那么直接使用envars查看进程的环境变量
python2 vol.py -f '/root/Desktop/MemoryDump_Lab6.raw' --profile=Win7SP1x64 envars | grep WinRAR.exe
找到了密码,复制到刚刚的压缩包里
flag1
查看chrom历史记录
python2 vol.py --plugins=./plugins -f '/root/Desktop/MemoryDump_Lab6.raw' --profile=Win7SP1x64 chromehistory
找啊找啊找找到一个链接
打开它
继续打开链接
又发现一个链接继续打开它
是一个云盘需要密码
返回到第一个网页继续观察,发现说了密码在mail里
尝试一下screenshot插件
python2 vol.py --plugins=./plugins -f '/root/Desktop/MemoryDump_Lab6.raw' --profile=Win7SP1x64 screenshot -D /root/Desktop
一共14张照片,只有一张有数据
在内存中搜索这个字符串
strings '/root/Desktop/MemoryDump_Lab6.raw' | grep "Mega Drive Key"
找到了密码zyWxCjCYYSEMA-hZe552qWVXiPwa5TecODbjnsscMIU,复制到网站下载图片
发现打不开,使用winhex打开发现IDHR中的I变成了小写,只要改回大写就能打开
Windows注册表
获取计算机所有用户
python2 vol.py -f '/root/Desktop/111.vmem' --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"
获取计算机名
python2 vol.py -f '/root/Desktop/111.vmem' --profile=Win7SP1x64 printkey -K "ControlSet001\Control\ComputerName\ComputerName"
获取计算机密码
明文,这个只是最后一个登陆的用户密码
python2 vol.py -f '/root/Desktop/111.vmem' --profile=Win7SP1x64 lsadump
密文,需要解md5
python2 vol.py -f '/root/Desktop/111.vmem' --profile=Win7SP1x64 hashdump