首页 > 系统相关 >CTF取证总结(内存取证,磁盘取证)以及例题复现

CTF取证总结(内存取证,磁盘取证)以及例题复现

时间:2022-11-17 10:11:48浏览次数:38  
标签:profile 取证 img 文件 CTF 使用 磁盘 例题 root


CTF取证总结(内存取证,磁盘取证)以及例题复现_内存取证

内存取证

经常利用volatility分析

  • 取证文件后缀 .raw、.vmem、.img
  • 常用命令(imageinfo,pslist,dumpfiles,memdump)
  • 可疑的进程(notepad,cmd)
  • 和磁盘取证结合起来考察
  • 了解部分操作系统原理
  • 常见文件后缀dmg,img

volatility基础命令

python vol.py -f [image] ‐-profile=[profile][plugin] 命令

其中 -f 后面加的是要取证的文件, --profile 后加的是工具识别出的系统版本, [plugin] 是指使用的插件,其中默认存在一些插件,另外还可以自己下载一些插件扩充

可以使用 ​​-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)和结束标志三部分组成
  • 文件系统
  1. Windows: FAT12 -> FAT16 -> FAT32 -> NTFS
  2. Linux: EXT2 -> EXT3 -> EXT4
  3. FAT 主磁盘结构
  4. 删除文件:目录表中文件名第一字节 ​​e5​
  • VMDK 文件本质上是物理硬盘的虚拟版,也会存在跟物理硬盘的分区和扇区中类似的填充区域,我们可以利用这些填充区域来把我们需要隐藏的数据隐藏到里面去,这样可以避免隐藏的文件增加了 VMDK 文件的大小(如直接附加到文件后端),也可以避免由于 VMDK 文件大小的改变所带来的可能导致的虚拟机错误。而且 VMDK 文件一般比较大,适合用于隐藏大文件
  • 磁盘镜像
    自己电脑留足镜像文件的存储空间
    利用kali工具(AutoPsy)或者其他磁盘镜像分析工具
    找到密钥挂在,查看文件(包括隐藏文件)
    数据恢复

例题:Rctf磁盘取证

有一个vmdk文件,用010打开报错

判断是否套壳

将vmdk文件右击选择,用7z打开压缩包

CTF取证总结(内存取证,磁盘取证)以及例题复现_misc_02

如果套壳里边就是真实文件,发现0.fat文件

用010打开0.fat文件发现中间部分有很多重复内容

CTF取证总结(内存取证,磁盘取证)以及例题复现_磁盘取证_03

rctf{unseCure_quick_form4t_vo1ume

veracryto挂载磁盘文件

使用veracryto挂载fat文件

选择盘符,选择文件点击加载,在弹出的框中输入密码rctf

CTF取证总结(内存取证,磁盘取证)以及例题复现_misc_04

成功挂载,本地就多了一个a盘,发现password2,注意的是同一个加密磁盘文件可以使用不同的密码挂载,挂载后的文件不一样

CTF取证总结(内存取证,磁盘取证)以及例题复现_misc_05

passowrd.txt

Password 2: RCTF2019

You're late... So sad

使用这个密码再次挂载,发现挂载后的a盘提示错误,使用winhex工具打开

CTF取证总结(内存取证,磁盘取证)以及例题复现_ctf_06

有的会提示选择磁盘格式,按照文件格式选择即可

CTF取证总结(内存取证,磁盘取证)以及例题复现_内存取证_07

在中间部分发先剩下的flag

CTF取证总结(内存取证,磁盘取证)以及例题复现_ctf_08

综合题目

例题1:

easy_dump.img

查看镜像信息

volatility -f .\easy_dump.img imageinfo

CTF取证总结(内存取证,磁盘取证)以及例题复现_取证_09

查看系统进程

volatility -f .\easy_dump.img --profile=Win7SP1x64 pslist

发现notepad进程

CTF取证总结(内存取证,磁盘取证)以及例题复现_磁盘取证_10

因为系统版本是win7所以看不了notepad的信息,但是可以将notepad进程提取出来

volatility -f easy_dump.img --profile=Win7SP1x64 memdump -p 2616 -D ./

但是提取出来的直接用strings是无法查看的需要通过一下命令

strings -e l 2626.dmp | grep flag
# 选择字符大小和排列顺序:s=7-bit, S=8-bit, {b,l}=16-bit, {B,L}=32-bit

可以用这种方法也可以用之前说的 editbox 命令代替 notepad,发现提示

CTF取证总结(内存取证,磁盘取证)以及例题复现_磁盘取证_11

使用命令找 jpg 文件

volatility -f easy_dump.img --profile=Win7SP1x64 filescan |grep -E 'jpg'

CTF取证总结(内存取证,磁盘取证)以及例题复现_内存取证_12

提取这张图片

volatility -f easy_dump.img --profile=Win7SP1x64 dumpfiles -Q 0x000000002408c460 -D ./

使用 foremost 分离图片在 zip 文件夹发现 message.img

CTF取证总结(内存取证,磁盘取证)以及例题复现_内存取证_13

使用 file 命令查看文件类型为 ext2 磁盘文件

CTF取证总结(内存取证,磁盘取证)以及例题复现_取证_14

在linux系统中使用 mount 命令挂载此文件

root@kali:~/桌面/output/zip# file message.img 
message.img: Linux rev 1.0 ext2 filesystem data, UUID=c12b8ec9-5ef5-4b91-8b4d-f827e81f83cf (large files)
root@kali:~/桌面/output/zip# mkdir test
root@kali:~/桌面/output/zip# sudo mount message.img ./test
root@kali:~/桌面/output/zip# cd test
root@kali:~/桌面/output/zip/test# ls -al
总用量 271
drwxr-xr-x 4 root root 1024 9月 27 2018 .
drwxr-xr-- 3 root root 4096 9月 16 03:16 ..
-rw-r--r-- 1 root root 257163 9月 27 2018 hint.txt
drwx------ 2 root root 12288 9月 27 2018 lost+found
drwx------ 4 root root 1024 9月 27 2018 .Trash-0

cat hint.txt 文件,文件内容是两列数字,很像x,y坐标

CTF取证总结(内存取证,磁盘取证)以及例题复现_内存取证_15

使用 gnuplot 画图,发现二维码

CTF取证总结(内存取证,磁盘取证)以及例题复现_ctf_16

使用QR Research工具得到一句话,维吉尼亚密码的key

Here is the vigenere key: aeolus, but i deleted the encrypted message。

查看那两个未查看的文件夹

CTF取证总结(内存取证,磁盘取证)以及例题复现_ctf_17

发现 .swp 交换文件,web手都很熟悉这个文件,这个文件是因为使用vim编辑文件时意外中断产生的,可以恢复

vim -r ./message.swp

打开文件,文件内容

yise!dmsx_tthv_arr_didvi

解密得到flag

CTF取证总结(内存取证,磁盘取证)以及例题复现_取证_18

非预期解

CTF取证总结(内存取证,磁盘取证)以及例题复现_misc_19

例题2:层层取证

附件分为两部分

CTF取证总结(内存取证,磁盘取证)以及例题复现_取证_20

使用FTK挂载文件

CTF取证总结(内存取证,磁盘取证)以及例题复现_磁盘取证_21

选择路径(不要出现中文),将Mount Method 设置为Writable,点击Mount

CTF取证总结(内存取证,磁盘取证)以及例题复现_ctf_22

在我的电脑中发现多了三个盘

CTF取证总结(内存取证,磁盘取证)以及例题复现_磁盘取证_23

CTF取证总结(内存取证,磁盘取证)以及例题复现_ctf_24

仿真三法

  • 花钱使用仿真工具,宏连
  • vmware仿真,看个人环境
  • 转换法,曲线救国,vmware仿真
    vmware 磁盘格式为 .VMDK 可以把题目给的磁盘文件转换成 vmdk 文件,然后导入 vmware

VMware方法

新建虚拟机->默认下一步->稍后安装操作系统->操作系统选择win7 x64->一直下一步->直到选择磁盘,使用物理磁盘

CTF取证总结(内存取证,磁盘取证)以及例题复现_取证_25

VMware中的设备

CTF取证总结(内存取证,磁盘取证)以及例题复现_磁盘取证_26

选择 FTK 挂载时的设备

CTF取证总结(内存取证,磁盘取证)以及例题复现_磁盘取证_27

之后的都是默认选择,开机时会经过自动设置,不用管就行

CTF取证总结(内存取证,磁盘取证)以及例题复现_misc_28

成功开机

转换法

格式转换方法

  1. FTK 里面转成 img 格式
    选择 create disk image

选择 image file ,下一步选择地址

CTF取证总结(内存取证,磁盘取证)以及例题复现_misc_29

点击 add,选择第一项 raw ,点击下一页,再次点击下一页

CTF取证总结(内存取证,磁盘取证)以及例题复现_ctf_30

选择目的地址,image fragment size 改成 0,image filename随便填

CTF取证总结(内存取证,磁盘取证)以及例题复现_内存取证_31

会在指定目录生成 filename.img 文件

  1. 使用格式转换工具(StarWind V2V Converter)把 img 格式变成 vmdk
  2. 使用 VMware 新建虚拟机
    一直默认选择即可,选择磁盘时选择 使用现有虚拟磁盘,接着默认选择即可

回到题目,开机之后两个用户,需要密码才能登陆

在 kali 中使用 volatility 分析题目给出的内存文件

volatility -f memdump.mem imageinfo

直接使用 mimikataz 插件 dump 密码

volatility -f memdump.mem --profile=Win7SP1x64 mimikatz

# xiaoming_handsome

CTF取证总结(内存取证,磁盘取证)以及例题复现_磁盘取证_32

使用密码登录用户,桌面上有便签提示,这张小的在大的后面挡着

CTF取证总结(内存取证,磁盘取证)以及例题复现_取证_33

发现 F 盘无法访问

CTF取证总结(内存取证,磁盘取证)以及例题复现_磁盘取证_34

在物理机使用 winhex 打开磁盘文件,可以看到有个分区被上锁了

CTF取证总结(内存取证,磁盘取证)以及例题复现_取证_35

注意:因为磁盘需要一直处于挂载状态,FTK 不能退出

BitLocker加密磁盘

EFDD(Elcomsoft Forensic Disk Decryptor)工具,可以使用内存文件,加密磁盘

在虚拟机里边安装 EFDD

CTF取证总结(内存取证,磁盘取证)以及例题复现_misc_36

选择解密磁盘,点击下一步

CTF取证总结(内存取证,磁盘取证)以及例题复现_ctf_37

解密出 BitLocker 密钥

CTF取证总结(内存取证,磁盘取证)以及例题复现_misc_38

下一步,复制密钥

CTF取证总结(内存取证,磁盘取证)以及例题复现_内存取证_39

使用 DiskGenuis 解锁

右键选择解锁,输入密钥

CTF取证总结(内存取证,磁盘取证)以及例题复现_ctf_40

解密文件中发现 流量包

CTF取证总结(内存取证,磁盘取证)以及例题复现_misc_41

使用 wireshark 分析流量,追踪 udp 流 33流发现 rar 文件,保存打开提示输入密码,输入 word 文档密码 xiaoming1314,打开文档找到 flag

CTF取证总结(内存取证,磁盘取证)以及例题复现_内存取证_42


好卷。。。

人菜就要多复现


标签:profile,取证,img,文件,CTF,使用,磁盘,例题,root
From: https://blog.51cto.com/u_15878568/5859812

相关文章

  • 2021陇剑杯(真流量分析与取证杯)题目复现
    JWT看session很明显使用了jwtid和username需要去解jwt就可以得到坑点:不要只看前半部分迷惑流量没有的到权限所以说这部分流量可以忽略,往后翻这条流量权限就变成了root,所以这......
  • 常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)
    web流量分析基本套路流量分析传输了数据:ziprarpngjpgtxtmp3,特别是流量包比较大时需要注意binwalk分离文件,grep或者wireshark内ctrl+f搜索分情况使用导出对象,导出分组字......
  • CTFshow刷题日记-MISC-图片篇(下 24-51)文件结构与颜色通道
    文件结构篇misc24-bmp改高度提示:flag在图片上面bmp格式文件真flag在图片上面,改一下高度就可以看到了misc25-png改高度提示:flag在图片下面改高度即可misc26-crc32提示:flag还......
  • CTFshow刷题日记-WEB-PHP特性(下篇123-150)
    web123,125,126error_reporting(0);highlight_file(__FILE__);include("flag.php");$a=$_SERVER['argv'];$c=$_POST['fun'];if(isset($_POST['CTF_SHOW'])&&isset($_POST['C......
  • DESLearn-nepctf-cat
    des一些算法特征每次加密八个字节一些算法特征常量初始置换表58,50,42,34,26,18,10,2, 60,52,44,36,28,20,12,4, 62,54,46,38,30......
  • ctfhub 菜鸟杯 抽老婆 超详细 复现
    一进来发现可以抽老婆,下面还有个下载按钮,有意思还可以吧,把老婆抱回家   然后点击下载,发现这个似乎是个任意文件下载,OK了这个时候可以看看debug里面有啥   ......
  • [WUSTCTF 2020]getshell 题目笔记
    先分析一下,32位程序,无保护,可执行用IDA分析,发现buf存在泄露点shell函数存在后门,在0x0804851B计算一下长度,0x18+0x4=0x1C构造exp如下frompwnimport*filenam......
  • DASCTF 2022.10 部分re wp
    就做了俩re贪玩ctfwinmain!随便测试输入知道有弹窗x64dbg直接为messbox下断查找调用找到这为checkpassword和account的函数两个比较上面为直接异或的加密过程......
  • 8086寄存器结构例题【微机原理】
    8086寄存器结构应用例题【微机原理】​​前言​​​​8086寄存器结构应用例题​​​​1、通用寄存器​​​​1)数据寄存器AX、BX、CX、DX​​​​ax应用例题​​​​bx应用......
  • 【MYSQL例题】
    1、【出处:牛客网】题目:运营想要了解每个学校答过题的用户平均答题数量情况,请取出数据用户信息表user_profile:其中device_id指终端编号(认为每个用户有唯一的一个终端),gende......