内存取证
经常利用volatility分析
- 取证文件后缀 .raw、.vmem、.img
- 常用命令(imageinfo,pslist,dumpfiles,memdump)
- 可疑的进程(notepad,cmd)
- 和磁盘取证结合起来考察
- 了解部分操作系统原理
- 常见文件后缀dmg,img
volatility基础命令
可以使用 -h
参数获取使用方法和插件介绍,列举几个常用到的命令
- imageinfo:显示目标镜像的摘要信息,这常常是第一步,获取内存的操作系统类型及版本,之后可以在 –profile 中带上对应的操作系统,后续操作都要带上这一参数
- pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,psscan可以
- pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程
- psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程
- cmdscan:可用于查看终端记录
- notepad:查看当前展示的 notepad 文本(–profile=winxp啥的低版本可以,win7的不行,可以尝试使用editbox)
- filescan:扫描所有的文件列表
linux配合 grep 命令进行相关字符定向扫描,如:grep flag、grep -E ‘png|jpg|gif|zip|rar|7z|pdf|txt|doc’ - dumpfiles:导出某一文件(指定虚拟地址)
需要指定偏移量 -Q 和输出目录 -D - mendump:提取出指定进程,常用foremost 来分离里面的文件
需要指定进程-p [pid] 和输出目录 -D - editbox:显示有关编辑控件(曾经编辑过的内容)的信息
- screenshot:保存基于GDI窗口的伪截屏
- clipboard:查看剪贴板信息
- iehistory:检索IE浏览器历史记录
- systeminfo:显示关于计算机及其操作系统的详细配置信息(插件)
- hashdump:查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容(mimikatz插件可以获取系统明文密码)
- mftparser:恢复被删除的文件
- svcscan:扫描 Windows 的服务
- connscan:查看网络连接
- envars:查看环境变量
- dlllist: 列出某一进程加载的所有dll文件
- hivelist: 列出所有的注册表项及其虚拟地址和物理地址
- timeliner: 将所有操作系统事件以时间线的方式展开
磁盘取证
- 磁盘取证软件
十六机制编辑软件,常用的十六进制编辑软件有winhex,010editor,x-way - 硬盘结构
主引导扇区由主引导程序(Master Boot Record,MBR)、硬盘分区表(Disk Partition Table,DPT)和结束标志三部分组成 - 文件系统
- Windows: FAT12 -> FAT16 -> FAT32 -> NTFS
- Linux: EXT2 -> EXT3 -> EXT4
- FAT 主磁盘结构
- 删除文件:目录表中文件名第一字节
e5
- VMDK 文件本质上是物理硬盘的虚拟版,也会存在跟物理硬盘的分区和扇区中类似的填充区域,我们可以利用这些填充区域来把我们需要隐藏的数据隐藏到里面去,这样可以避免隐藏的文件增加了 VMDK 文件的大小(如直接附加到文件后端),也可以避免由于 VMDK 文件大小的改变所带来的可能导致的虚拟机错误。而且 VMDK 文件一般比较大,适合用于隐藏大文件
- 磁盘镜像
自己电脑留足镜像文件的存储空间
利用kali工具(AutoPsy)或者其他磁盘镜像分析工具
找到密钥挂在,查看文件(包括隐藏文件)
数据恢复
例题:Rctf磁盘取证
有一个vmdk文件,用010打开报错
判断是否套壳
将vmdk文件右击选择,用7z打开压缩包
如果套壳里边就是真实文件,发现0.fat文件
用010打开0.fat文件发现中间部分有很多重复内容
rctf{unseCure_quick_form4t_vo1ume
veracryto挂载磁盘文件
使用veracryto挂载fat文件
选择盘符,选择文件点击加载,在弹出的框中输入密码rctf
成功挂载,本地就多了一个a盘,发现password2,注意的是同一个加密磁盘文件可以使用不同的密码挂载,挂载后的文件不一样
passowrd.txt
使用这个密码再次挂载,发现挂载后的a盘提示错误,使用winhex工具打开
有的会提示选择磁盘格式,按照文件格式选择即可
在中间部分发先剩下的flag
综合题目
例题1:
easy_dump.img
查看镜像信息
查看系统进程
发现notepad进程
因为系统版本是win7所以看不了notepad的信息,但是可以将notepad进程提取出来
但是提取出来的直接用strings是无法查看的需要通过一下命令
可以用这种方法也可以用之前说的 editbox 命令代替 notepad,发现提示
使用命令找 jpg 文件
提取这张图片
使用 foremost 分离图片在 zip 文件夹发现 message.img
使用 file 命令查看文件类型为 ext2 磁盘文件
在linux系统中使用 mount 命令挂载此文件
cat hint.txt 文件,文件内容是两列数字,很像x,y坐标
使用 gnuplot 画图,发现二维码
使用QR Research工具得到一句话,维吉尼亚密码的key
查看那两个未查看的文件夹
发现 .swp 交换文件,web手都很熟悉这个文件,这个文件是因为使用vim编辑文件时意外中断产生的,可以恢复
打开文件,文件内容
解密得到flag
非预期解
例题2:层层取证
附件分为两部分
使用FTK挂载文件
选择路径(不要出现中文),将Mount Method 设置为Writable,点击Mount
在我的电脑中发现多了三个盘
仿真三法
- 花钱使用仿真工具,宏连
- vmware仿真,看个人环境
- 转换法,曲线救国,vmware仿真
vmware 磁盘格式为 .VMDK 可以把题目给的磁盘文件转换成 vmdk 文件,然后导入 vmware
VMware方法
新建虚拟机->默认下一步->稍后安装操作系统->操作系统选择win7 x64->一直下一步->直到选择磁盘,使用物理磁盘
VMware中的设备
选择 FTK 挂载时的设备
之后的都是默认选择,开机时会经过自动设置,不用管就行
成功开机
转换法
格式转换方法
- FTK 里面转成 img 格式
选择 create disk image
选择 image file ,下一步选择地址
点击 add,选择第一项 raw ,点击下一页,再次点击下一页
选择目的地址,image fragment size 改成 0,image filename随便填
会在指定目录生成 filename.img 文件
- 使用格式转换工具(StarWind V2V Converter)把 img 格式变成 vmdk
- 使用 VMware 新建虚拟机
一直默认选择即可,选择磁盘时选择 使用现有虚拟磁盘,接着默认选择即可
回到题目,开机之后两个用户,需要密码才能登陆
在 kali 中使用 volatility 分析题目给出的内存文件
直接使用 mimikataz 插件 dump 密码
使用密码登录用户,桌面上有便签提示,这张小的在大的后面挡着
发现 F 盘无法访问
在物理机使用 winhex 打开磁盘文件,可以看到有个分区被上锁了
注意:因为磁盘需要一直处于挂载状态,FTK 不能退出
BitLocker加密磁盘
EFDD(Elcomsoft Forensic Disk Decryptor)工具,可以使用内存文件,加密磁盘
在虚拟机里边安装 EFDD
选择解密磁盘,点击下一步
解密出 BitLocker 密钥
下一步,复制密钥
使用 DiskGenuis 解锁
右键选择解锁,输入密钥
解密文件中发现 流量包
使用 wireshark 分析流量,追踪 udp 流 33流发现 rar 文件,保存打开提示输入密码,输入 word 文档密码 xiaoming1314,打开文档找到 flag
好卷。。。
人菜就要多复现