侧边栏壁纸
博主头像

  • 累计撰写 12 篇文章
  • 累计创建 12 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

内存取证

⠀
2022-05-27 / 0 评论 / 3 点赞 / 370 阅读 / 7,949 字 / 正在检测是否收录...

取证工具 : Volatility
V3:https://github.com/volatilityfoundation/volatility3
V2:https://github.com/volatilityfoundation/volatility

Volatility2.6.pdf

Volatility基本使用命令

     ./vol.py ‐f [image] ­‐profile=[profile] [plugin]
      -f后面需要跟绝对路径
      查看扫描检查、插件、地址空间等信息
     ./vol.py --info
      查看帮助信息
      ./vol.py -h/--help
      查看指定插件的说明
      ./vol.py [plugin] –help
 查找插件:
      不带前缀的是windows的插件,带linux前缀的是linux的插件
      vol.py --info | grep -i linux_ (列出所有linux插件)
      vol.py --info | grep -i windows (windows 插件)

Linux 端:

更多方法查看 
vol.py --info | grep -i Linux_
查看系统ARP 表:
vol.py -f   file(文件)  --profile= 查到的profile 文件  linux_arp
查看系统信息表:
vol.py  -f  /root/centos7.lime --profile=Linuxcentos7x64 linux_banner
查看系统进程信息 
vol.py -f /root/centos7.lime --profile=Linuxcentos7x64  linux_psaux
查看系统隐藏进程
vol.py -f /root/centos7.lime --profile=Linuxcentos7x64 linux_pidhashtable
查看具体进程的情况
vol.py -f /root/centos7.lime --profile=Linuxcentos7x64 linux_proc_maps | grep httpd
查看网络连接
vol.py -f /root/centos7.lime --profiel=Linuxcentos7x64 linux_netstat

Windows:

常见使用方法 
分析  镜像文件系统  
vol.py imageinfo  -f  [file]
常见进程 windows 进程 
Lsass 进程 
lsass.exe是一个系统进程,用于微软Windows系统的安全机制。它用于本地安全和登陆策略。一个正常的windows xp系统在启动的时候,只会通过winlogon.exe创建一个lsass进程。
Stuxnet会将自身注入到services.exe,然后创建两个新的lsass.exe,然后释放出mrxnet.sys(驱动)和Mrxcls.sys(驱动)等恶意文件。
查看进程 插件 pstree
vol.py pstree -f stuxnet.vmen --profile=WinXPSP3x86  
说明:PID:进程ID,PPID:父进程ID HndsTime:进程创建时间
筛选 程序 lsass  
调用lsass.exe 是由winlogon.exe 创建的 另外两个是由 services.exe 创建的
vol.py pstree -f stuxnet.vmen --profile=WinXPSP3x86 | egrep '(service.exe|lsass.exe|winlogon.exe)'
检查 恶意链接
vol.py connections -f stuxnet.vmen --profile=WinXPSP3x86 
检查端口
vol.py  sockets -f stuxnet.vmen --profile=WinXPSP3x86
分析 lsass.exe 调用的dll文件
参数  dlllist  -p[pid]   过滤pid
寻找隐藏的dll   ldrmoudles -p[pid]
vol.py -f stuxnet.vmem --profile=WinXPSP3x86  ldrmodules -p 1928   
找出注入的可执行代码或者 DLL  malfind
vol.py  -f stuxnet.vmem --profile=WinXPSP3x86  malfind -p 1928   #PID 号 
分析api 调用
利用内存转存技术可以将内存中运算的程序导出 
vol.py  -procdump -p 680,868,1928 -D out/  --profile=WinXPSP3x86  -f stuxnet.vmem
进入交换模式  
vol.py  volshell  --profile=WinXPSP3x86 -f stuxnet.vmem
检查恶意程序驱动
vol.py --profile=WinXPSP3x86  -f stuxnet.vmem modules 
使用 moddump 提取驱动程序
vol.py --profile=WinXPSP3x86 -f stuxnet.vmem  moddump -D out/  --base 0xb21d8000
检查驱动内核回调
callbacks  
vol.py  --profile=WinXPSP3x86 -f stuxnet.vmem  callbacks 
vol.py --profile=WinXPSP3x86  -f stuxnet.vmem callbacks | grep mrx
查看恶意注册表项 
Services注册表项 
ControlSet001\Services\SERVICENAME
通过关键字查找 
vol.py --profile=WinXPSP3x86 -f stuxnet.vmem printkey  -K 'ControlSet001\Services\MrxNet' 

查看服务 
vol.py --profile=WinXPSP3x86 -f stuxnet.vmem svcscan
volpy --profile=WinXPSP3x86  -f stuxnet.vmem svcscan | grep -i MRX

查看文件属于信息 
volatility  -f cridex.vmem imageinfo

查看ps相关的的插件
volatility --profile=WinXPSP3x86 -f cridex.vmem pslist

与pslist 相似的 pstree 
还可以识别子进程 父进程 
volatility  pstree  --profile=WinXPSP3x86 -f cridex.vmem 

psscan  显示被恶意软件隐藏的进程
volatility  --profile=WinXPSP3x86 -f crdiex.vmem  psscan

connections  列出活跃的连接合端口 ,以及本地合远程的ip PID 端口 
volatility --profile=WinXPSP3x86 -f cridex.vmem connections

connscan  列出已经被终止的连接
volatility --profile=WinXPSP3x86 -f cridex.vmem connscan

sockets 展示出额外的连接信息监听的sockets ,sockets插件支持所有的协议
volatility --profile=WinXPSP3x86 -f cridex.vmem sockets

DLL分析
列出PE文件的版本信息
volatility --profile=WinXPSP3x86 -f cridex.vmem virinfo

列出正在运行的dll
volatility -profile=WinXPSP3x86 -f cridex.vmem dlllist


注册表分析
hivescan 显示了可用的注册表配置单元的物理地址
volatility --profile=WinXPSP3x86 -f cridex.vmem hivescan

hivelist 显示虚拟地址,物理地址的细节以及更加容易识别的路径
volatility --profile=WinXPSP3x86 -f cridex.vmem hivelist

timeliner 插件可以通过提供所有时间发生时的时间线来帮助取证分析
volatility --profile=WinXPSP3x86 -f cridex.vmem timeliner

恶意软件分析
malfind  寻找可能注入到各种进程的恶意软件, 
volatility --profile=WinXPSP3x86  -f cridex.vmem malfind 
指定进程
volatility --profile=WinXPSP3x86 -f cridex.vmem malfind -p 111
寻找sid 
volatility --profile=Win7SP1x86 -f  Crang.raw  getsid

导图

MemLabs

通过MemLabs 靶场 了解 内存取证
image

Challenge


分析 基本信息

volatility.exe -f .\Challenge.raw  imageinfo


列出 活动 进程

volatility.exe -f .\Challenge.raw  --profile=Win7SP1x86 pslist


看看cmd输出了啥

volatility.exe -f .\Challenge.raw --profile=Win7SP1x86 cmdscan


cmd 执行了demon.py 文件 看有没有输出到控制台

volatility.exe -f .\Challenge.raw --profile=Win7SP1x86 consoles

输出了 一段 16 进制 335d366f5d6031767631707f
对16进制进行转字符串 看看
不知道这是啥 先留着

根据挑战描述 有一个变量的线索 试试查看环境变量
找到个 疑点
XOR and password
需要和密码进行异或处理 嗯 密码又是啥呢

对 刚才的 乱码进行 异或 处理试试
输出了 还是很多乱码 但是 有 一个看着像半个flag
1_4m_b3tt3r}

使用hashdump dump 出 账号密码

101da33f44e92c27835e64322d72e8b7
使用在线网站把这个碰撞出来 就得出flag 前半部分
flag

MemoryDump_Lab1

挑战说明
此挑战由三个flag 组成

imageinfo

volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64  psscan


查看cmd 进程
cmdline cmdscan 无果 ,查看cmd输出 consoles

volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64  consoles


发现 一串 base64 码 ZmxhZ3t0aDFzXzFzX3RoM18xc3Rfc3Q0ZzMhIX0=
解码 得到 第一个flag

返回查看进程

 volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64  pslist

有一个mspaint.exe 这是一个画图软件

提取为数据 查看
1653394879556-eb99fe8f-bffb-471f-abf8-fe98b86f6a96-1653640259541

用Ubuntu 使用 gimp 打开 数据以图片查看
调节参数
得到个flag 反转之后就是flag 了

返回前看 cmdline 好像有一个RAR包 尝试提取出来 看看

volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64  cmdline

volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64  filescan | Select-String rar


使用 dumpfiles 提取 rar 文件

volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64  dumpfiles -Q 0x000000003fac3bc0 -D .\a\

改名 mv .\file.None.0xfffffa8001034450.dat .\file.None.0xfffffa8001034450.rar
打开需要 密码
注释 密码 是 Alissa’s 用户的NTLM hash 值

使用hashdump dump出来

volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64  hashdump


转换成大写
a.upper() 大写
a.lower() 小写

得出 第三个flag

MemoryDump_Lab2

通过说明 了解到 三个 flag
可能存在于 环境 – 浏览器 – 密码管理器 ??

imageinfo

查看环境变量 发现存在很多base64 加密 的 文件夹 名

volatility.exe -f .\MemoryDump_Lab2.raw  --profile=Win7SP1x64  envars


解码 ZmxhZ3t3M2xjMG0zX1QwXyRUNGczXyFfT2ZfTDRCXzJ9
获得得一个flag

使用filescan 查看 存在哪些文件 一一 提取出来 看看

只 dumpfiles 两张图片

volatility.exe -f .\MemoryDump_Lab2.raw  --profile=Win7SP1x64  dumpfiles -Q 0x000000003fce1c70 -D .\a\


查找压缩文件 无果
看看cmd 输出了什么 打印命令行参数

volatility.exe -f .\MemoryDump_Lab2.raw  --profile=Win7SP1x64 cmdline

.kdbx 文件 可能存在flag 这个kdbx 文件需要密码 打开 刚刚已经获取到一个密码了 尝试提取


提取出


题目说还有一个和 浏览器 相关

volatility — plugins=plugins/ -f MemoryDump_Lab2.raw iehistory  无果
volatility — plugins=plugins/ -f MemoryDump_Lab2.raw chromehistory

下载 链接
https://mega.nz/folder/TrgSQQTS#H0ZrUzF0B-ZKNM3y9E76lg

下载文件

打开之后 要密码
1653465309082-47dfd661-6c1f-45fe-868f-fd38fbdfeed5
注释提示是 第一关的 flag小写
https://www.cmd5.com/hash.aspx?s=123456
加密 为 SHA1

打开 获得第三个flag

MemoryDump_Lab3
关键点 脚本 一个flag 两部分 steghide 工具

MemoryDump_Lab3

关键点 脚本 一个flag 两部分 steghide 工具

imageinfo

查看cmd输出 命令行参数

volatility.exe -f .\MemoryDump_Lab3.raw --profile=Win7SP1x86 cmdline

发现两个文件

使用filescan dumpfiles
得到两个文件

一个base64 一个py 加密 算法文件
py文件的大概意思就是对 vip.txt 文件进行 解码
再对 解码后的 字符串 进行三次XOR 异或
得出前半段 flag inctf{0n3_h4lf

根据提示 我们安装了一个工具 steghide
是一个隐写工具 ,那就需要寻找被隐写的文件

filescan 寻找 图片

volatility.exe -f .\MemoryDump_Lab3.raw --profile=Win7SP1x86 filescan | Select-String jpeg

png ,jpg 文件太大 不太像 只有jpeg 文件 提取
1653468736722-0f3a5131-6695-4f1d-803f-e279821c8974
steghide extract -sf file.jpeg
使用工具提取 密码是 前半部分 flag

MemoryDump_Lab4

数据被删 ,内存转储 。。。

volatility.exe -f .\MemoryDump_Lab4.raw --profile=Win7SP1x64 psscan

查看进程 有浏览器 查看浏览器 记录

volatility.exe  -f MemoryDump_Lab4.raw --profile=Win7SP1x64 iehistory

之后查看到 ecrets.txt、flag.txt.txt、Important.txt.txt等 文件
一 一 提取出来

只提取出了Important.txt SCHEDLGU.txt 文件

没啥信息 根据挑战信息 可能要查看MFT 表

mftparser - 扫描并解析潜在的 MFT 条目

volatility.exe  -f MemoryDump_Lab4.raw --profile=Win2008R2SP1x64 mftparser > mft.txt

在 mft 条目里面 寻找刚才的那 几个 文件
在 Important.txt 下 找到flag

FLAG   inctf{1_is_n0t_EQu4l_7o_2_bUt_th1s_d0s3nt_m4ke_s3ns3}

MemoryDump_Lab5

三个flag 只有获取到第一个flag 才能获取到第二个flag
内存转储 文件很怪

imageinfo

查看进程

volatility.exe  -f .\MemoryDump_Lab5.raw  --profile=Win7SP1x64 pstree

发现两个大写的 NOTEPAD.exe 记事本程序 提取看看

volatility.exe -f .\MemoryDump_Lab5.raw  --profile=Win7SP1x64  procdump -p 2724  -D .\a\

使用IDA 进行查看
进行反编译 找到一堆 eax 寄存器 寄存器里面存了单个的字符 flag
按R 对 进制进行 快速转换

bi0s

volatility.exe -f .\MemoryDump_Lab5.raw  --profile=Win7SP1x64  iehistory 

找到一串字符串 base64
ZmxhZ3shIV93M0xMX2QwbjNfU3Q0ZzMtMV8wZl9MNEJfNV9EMG4zXyEhfQ

解码

flag{!!w3LL_d0n3_St4g3-1_0f_L4B_5_D0n3!!}
前面提到很奇怪的文件
filescan 查看一下

提取一下 图片 和 rar 压缩包

volatility.exe -f .\MemoryDump_Lab5.raw  --profile=Win7SP1x64  dumpfiles -Q 0x000000003eed56f0  -D .\a\

MemoryDump_Lab6


imageinfo

volatility.exe -f .\MemoryDump_Lab6.raw  --profile=Win7SP1x64 cmdline

看到一个flag.rar 文件

提取之后要密码

找密码可以使用 搜索关键字 查找

volatility.exe -f .\MemoryDump_Lab6.raw  --profile=Win7SP1x64 envars | Select-String password

easypeasyvirus
在环境变量中找到 密码

得到后一半 flag

volatility --plugins=plugins/ -f MemoryDump_Lab6.raw --profile Win7SP1x64 chromehistory > chromehistory.txt

找一下 chrome 的 浏览器 记录
找到个pastebin链接

里面有一段链接 打开是篇文章
https://docs.google.com/document/d/1lptcksPt1l_w7Y29V4o6vkEnHToAPqiCkgNNZfS9rCk/edit
浏览文章的时候 发现又一段 链接
https://mega.nz/#!SrxQxYTQ

结果 要密码 。。 感觉有点套娃了

这里 看了wp之后 发现 找这个密钥 必须 输入 几个好的参数 不然
会出现一堆key 。。。

strings  MemoryDump_Lab6.raw  | grep "Mega Drive Key"

在内存中寻找 字符串
在这里看到Key值 zyWxCjCYYSEMA-hZe552qWVXiPwa5TecODbjnsscMIU
下载之后是图片

打不开 可能存在文件错误 需要恢复

png文件头查看 百度 png文件头

进行对比

发现 49 被改成了69 改回来 成功

内存取证 告一段落 ,接这就是流量分析 ????

3

评论区