首页 > 系统相关 >内存取证-手册

内存取证-手册

时间:2024-07-23 19:27:09浏览次数:11  
标签:profile 取证 exe -- py MemoryDump 手册 内存 volatility

取证工具 : 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.png

Challenge

挑战说明
image.png
分析 基本信息
volatility.exe -f .\Challenge.raw imageinfo
image.png
列出 活动 进程
volatility.exe -f .\Challenge.raw --profile=Win7SP1x86 pslist
image.png
看看cmd输出了啥
volatility.exe -f .\Challenge.raw --profile=Win7SP1x86 cmdscan
image.png
cmd 执行了demon.py 文件 看有没有输出到控制台
volatility.exe -f .\Challenge.raw --profile=Win7SP1x86 consoles
image.png
输出了 一段 16 进制 335d366f5d6031767631707f
对16进制进行转字符串 看看
不知道这是啥 先留着
image.png
根据挑战描述 有一个变量的线索 试试查看环境变量
找到个 疑点
XOR and password
需要和密码进行异或处理 嗯 密码又是啥呢
image.png
对 刚才的 乱码进行 异或 处理试试
输出了 还是很多乱码 但是 有 一个看着像半个flag
1_4m_b3tt3r}
image.png
使用hashdump dump 出 账号密码
image.png
101da33f44e92c27835e64322d72e8b7
使用在线网站把这个碰撞出来 就得出flag 前半部分
flag{you_are_good_but1_4m_b3tt3r}

MemoryDump_Lab1

挑战说明
此挑战由三个flag 组成
image.png

imageinfo
image.png
volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64 psscan
image.png
查看cmd 进程
cmdline cmdscan 无果 ,查看cmd输出 consoles
volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64 consoles
image.png
发现 一串 base64 码 ZmxhZ3t0aDFzXzFzX3RoM18xc3Rfc3Q0ZzMhIX0=
解码 得到 第一个flag
image.png

返回查看进程
volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64 pslist
有一个mspaint.exe 这是一个画图软件
image.png
提取为数据 查看
image.png
用Ubuntu 使用 gimp 打开 数据以图片查看
调节参数
得到个flag 反转之后就是flag 了
image.png

返回前看 cmdline 好像有一个RAR包 尝试提取出来 看看
volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64 cmdlineimage.png

volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64 filescan | Select-String rar
image.png
使用 dumpfiles 提取 rar 文件
volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003fac3bc0 -D .\a<br />改名 mv .\file.None.0xfffffa8001034450.dat .\file.None.0xfffffa8001034450.rar
打开需要 密码
注释 密码 是 Alissa’s 用户的NTLM hash 值
image.png
使用hashdump dump出来
volatility.exe -f .\MemoryDump_Lab1.raw --profile=Win7SP1x64 hashdump
image.png
转换成大写
a.upper() 大写
a.lower() 小写
image.png
得出 第三个flag
image.png

MemoryDump_Lab2

通过说明 了解到 三个 flag
可能存在于 环境 – 浏览器 – 密码管理器 ??
image.png
imageinfo
image.png
查看环境变量 发现存在很多base64 加密 的 文件夹 名
volatility.exe -f .\MemoryDump_Lab2.raw --profile=Win7SP1x64 envars
image.png
解码 ZmxhZ3t3M2xjMG0zX1QwXyRUNGczXyFfT2ZfTDRCXzJ9
获得得一个flag
image.png

使用filescan 查看 存在哪些文件 一一 提取出来 看看
image.png
只 dumpfiles 两张图片
volatility.exe -f .\MemoryDump_Lab2.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003fce1c70 -D .\a<br />这张信息里面有个 pass sword is xxx 有点信息
image.png查找压缩文件 无果
看看cmd 输出了什么 打印命令行参数
volatility.exe -f .\MemoryDump_Lab2.raw --profile=Win7SP1x64 cmdline
.kdbx 文件 可能存在flag 这个kdbx 文件需要密码 打开 刚刚已经获取到一个密码了 尝试提取
image.png

image.png
提取出
image.png
使用keepass password 软件打开
得2个flag
image.png

题目说还有一个和 浏览器 相关
volatility — plugins=plugins/ -f MemoryDump_Lab2.raw iehistory 无果
volatility — plugins=plugins/ -f MemoryDump_Lab2.raw chromehistory

下载 链接
https://mega.nz/folder/TrgSQQTS#H0ZrUzF0B-ZKNM3y9E76lg
image.png
下载文件
image.png
打开之后 要密码
image.png
注释提示是 第一关的 flag小写
https://www.cmd5.com/hash.aspx?s=123456
加密 为 SHA1
image.png
打开 获得第三个flag
image.png

MemoryDump_Lab3

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

imageinfo
image.png
查看cmd输出 命令行参数
volatility.exe -f .\MemoryDump_Lab3.raw --profile=Win7SP1x86 cmdline
发现两个文件
image.png
使用filescan dumpfiles
得到两个文件
image.png一个base64 一个py 加密 算法文件
py文件的大概意思就是对 vip.txt 文件进行 解码
再对 解码后的 字符串 进行三次XOR 异或
得出前半段 flag inctf{0n3_h4lf
image.png
根据提示 我们安装了一个工具 steghide
是一个隐写工具 ,那就需要寻找被隐写的文件
image.png
filescan 寻找 图片
volatility.exe -f .\MemoryDump_Lab3.raw --profile=Win7SP1x86 filescan | Select-String jpeg
png ,jpg 文件太大 不太像 只有jpeg 文件 提取
image.png
steghide extract -sf file.jpeg
使用工具提取 密码是 前半部分 flag
image.png

MemoryDump_Lab4

数据被删 ,内存转储 。。。
image.png

volatility.exe -f .\MemoryDump_Lab4.raw --profile=Win7SP1x64 psscan
查看进程 有浏览器 查看浏览器 记录
image.png

volatility.exe -f MemoryDump_Lab4.raw --profile=Win7SP1x64 iehistory
之后查看到 ecrets.txt、flag.txt.txt、Important.txt.txt等 文件
一 一 提取出来

image.png

只提取出了Important.txt SCHEDLGU.txt 文件
image.png
没啥信息 根据挑战信息 可能要查看MFT 表
image.png

mftparser - 扫描并解析潜在的 MFT 条目
\volatility.exe -f MemoryDump_Lab4.raw --profile=Win2008R2SP1x64 mftparser > mft.txt
在 mft 条目里面 寻找刚才的那 几个 文件
在 Important.txt 下 找到flag
image.png
FLAG
inctf{1_is_n0t_EQu4l_7o_2_bUt_th1s_d0s3nt_m4ke_s3ns3}

MemoryDump_Lab5

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

imageinfo
image.png
查看进程
volatility.exe -f .\MemoryDump_Lab5.raw --profile=Win7SP1x64 pstree
发现两个大写的 NOTEPAD.exe 记事本程序 提取看看
image.png
volatility.exe -f .\MemoryDump_Lab5.raw --profile=Win7SP1x64 procdump -p 2724 -D .\a<br />image.png
使用IDA 进行查看
进行反编译 找到一堆 eax 寄存器 寄存器里面存了单个的字符 flag
按R 对 进制进行 快速转换
image.png
bi0s{M3m_l4b5_OVeR_!}
volatility.exe -f .\MemoryDump_Lab5.raw --profile=Win7SP1x64 iehistory
找到一串字符串 base64
ZmxhZ3shIV93M0xMX2QwbjNfU3Q0ZzMtMV8wZl9MNEJfNV9EMG4zXyEhfQ
image.png
解码
image.png
flag{!!w3LL_d0n3_St4g3-1_0f_L4B_5_D0n3!!}
前面提到很奇怪的文件
filescan 查看一下
image.png
提取一下 图片 和 rar 压缩包
volatility.exe -f .\MemoryDump_Lab5.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003eed56f0 -D .\a<br />image.png
image.png

MemoryDump_Lab6

image.png
imageinfo
image.png

volatility.exe -f .\MemoryDump_Lab6.raw --profile=Win7SP1x64 cmdline
看到一个flag.rar 文件
image.png
提取之后要密码
image.png
找密码可以使用 搜索关键字 查找
.\volatility.exe -f .\MemoryDump_Lab6.raw --profile=Win7SP1x64 envars | Select-String password
easypeasyvirus
在环境变量中找到 密码
image.png
得到后一半 flag
image.png

volatility --plugins=plugins/ -f MemoryDump_Lab6.raw --profile Win7SP1x64 chromehistory > chromehistory.txt
找一下 chrome 的 浏览器 记录
找到个pastebin链接
image.png
里面有一段链接 打开是篇文章
https://docs.google.com/document/d/1lptcksPt1l_w7Y29V4o6vkEnHToAPqiCkgNNZfS9rCk/edit
浏览文章的时候 发现又一段 链接
https://mega.nz/#!SrxQxYTQ
image.png
结果 要密码 。。 感觉有点套娃了
image.png
这里 看了wp之后 发现 找这个密钥 必须 输入 几个好的参数 不然
会出现一堆key 。。。
strings MemoryDump_Lab6.raw | grep “Mega Drive Key”
在内存中寻找 字符串
在这里看到Key值 zyWxCjCYYSEMA-hZe552qWVXiPwa5TecODbjnsscMIU
下载之后是图片
image.png
打不开 可能存在文件错误 需要恢复
image.png

png文件头查看 百度 png文件头
image.png
进行对比
image.png
发现 49 被改成了69 改回来 成功
image.png

标签:profile,取证,exe,--,py,MemoryDump,手册,内存,volatility
From: https://blog.csdn.net/qq_52579508/article/details/140644190

相关文章

  • rysnc使用手册
    rsync是一个用于在本地和远程计算机之间同步文件和目录的命令行工具。它具有许多强大的功能,包括增量传输、压缩和保留权限等。以下是一些rsync的常用选项和用法示例:基本用法rsync[OPTION]...SRC[SRC]...DEST常用选项-a或--archive:归档模式,表示递归复制,并保持所有文......
  • 内存取证(电子取证)
    内存取证,也被称为RAM取证或易失性内存取证,是指在计算机系统运行时,对物理内存(RAM)进行分析的过程。与硬盘上的数据不同,内存中的数据是易失性的,意味着一旦电源中断,这些数据就会丢失。因此,内存取证需要在系统仍然运行时迅速而准确地进行。内存取证的重要性:内存取证之所以重要,是因......
  • 硬盘取证(电子数据取证)
    硬盘取证是电子数据取证的一个重要分支,涉及对硬盘驱动器(包括传统硬盘HDD、固态硬盘SSD等)进行调查,以收集、保存、分析和呈现与法律案件或安全事件有关的电子证据。硬盘取证的目标是确保收集的证据在法庭上具有可接受性和可靠性,同时遵守相关法律法规。硬盘取证的基本步骤:证据......
  • 第二章-Java内存区域与内存溢出异常-随笔
    Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。1.程序计数器程序计数器可以看作是当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,它是程序......
  • 第一百七十六节 Java IO教程 - Java内存通道、Java文件锁
    JavaIO教程-Java内存通道对文件执行I/O的另一种方法是将文件的一个区域映射到物理内存,并将其作为内存数组。我们可以使用MappedByteBuffer来执行内存映射文件I/O。要使用内存映射文件I/O,请为文件获取FileChannel对象,并使用FileChannel的map()方法获取MappedByteBuffer。......
  • 反射内存卡使用场景
    航空航天与国防1.飞行模拟器:用于实时模拟飞行器的各种状态和参数,确保多个模拟器节点之间的数据同步。2.武器系统:在分布式武器控制和指挥系统中实现快速数据共享,提高响应速度。3.卫星控制系统:保障卫星各子系统之间的数据实时交换。工业自动化1.制造生产线:实现不同生产设备和控......
  • 美团面试:如何计算一个对象在内存中占多少个字节?
    在分配对象的时候会有一些基本的规则,我们可以根据一些规则大致能判断出来对象大小。在HotspotVM中,对象在内存中的存储布局分为三个区域:对象头(Header)实例数据(InstanceData)对齐填充(Padding)对象头(Header)对象头包括以下三部分:MarkWord:用于存储对象运行时的数据,例如Has......
  • 驱动开发系列07 - 驱动程序如何分配内存
    一:概述        Linux内核提供了丰富的内存分配函数、在本文中,我们将介绍在设备驱动程序中分配和使用内存的方法,以及如何优化系统的内存资源。由于内核为驱动程序提供了统一的内存管理接口。所以我们不会去讨论不同架构是如何管理内存的,文本不涉及分段、分页等问题,此......
  • 如何选择天津拓航科技的反射内存卡
    选择反射内存卡时,需要考虑以下几个关键因素:1.传输速度和延迟:根据您的应用对数据实时性的要求,选择具有合适传输速度和低延迟的反射内存卡。如果是对时间要求极为苛刻的系统,如航空航天仿真、高速工业控制等,应优先选择具有纳秒级延迟和高传输速率的产品。2.内存容量:确定所需的内存......
  • 天津拓航科技有限公司反射内存卡原理说明
    一、引言反射内存卡是一种用于实现高速数据共享和实时通信的先进技术。它在多个领域,特别是对数据传输速度和实时性要求极高的应用中,发挥着关键作用。二、基本原理1.共享内存模型①反射内存卡创建了一个共享的内存区域,多个连接到网络的节点都可以访问这个区域。②当一个节......