取证的学习

Volatility命令语法

1.判断镜像信息,获取操作系统类型

Volatility -f xxx.vmem imageinfo

在查到操作系统后如果不确定可以使用以下命令查看

volatility - f xxx.vmem --profile= **** ****操作系统**** **** volshell

2.知道操作系统类型后,用--profile指定

volatility -f ?.img --profile=...

3.查看当前显示的notepad文本

volatility -f file.raw --profile=WinXPSP2x86 notepad

4.查看当前运行的进程

volatility -f file.raw --profile=WinXPSP2x86 psscan/pslist

5.扫描所有的文件列表(常常结合grep)

volatility -f file.raw --profile=WinXPSP2x86 filescan

6.根据offset提取出文件

volatility -f file.raw --profile=WinXPSP2x86 dumpfiles -D . -Q 0x.....

7.扫描 Windows 的服务

volatility -f file.raw --profile=WinXPSP2x86 svcscan

8.查看网络连接

volatility -f file.raw --profile=WinXPSP2x86 connscan

9.查看cmd命令历史

volatility -f memory --profile=Win7SP1x64 cmdscan

volatility 使用:

volatility -f <文件名> ---profile=<配置文件> <插件> 插件参数

通过volatility --info获取工具所支持的profile,Address Spaces,Scanner Checks,Plugins

常用插件:

imageinfo:显示目标镜像的摘要信息,知道镜像的操作系统后,就可以在 --profile 中带上对应的操作系统

pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,psscan可以

psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程

pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程

mendump:提取出指定进程,常用foremost 来分离里面的文件

filescan:扫描所有的文件列表

hashdump:查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容

svcscan:扫描 Windows 的服务

connscan:查看网络连接

内存取证的大概思路

首先确定镜像是何种操作系统的,命令imageinfo即可获取镜像信息。

需要获取的是计算机在这一时刻运行了哪些进程

Volatility的分析进程的命令,如pstree、pesscan、pslist......

filescan命令可以对打开的文件进行扫描。

命令dumpfile和memdump命令将相关数据导出,然后对导出的数据进行二进制分析。

熟悉Volatility工具的常用命令,结合其他类型的知识(图片隐写、压缩包分析等)对提取出的文件进行分析问题

例题:护网杯2018-MISC-easydump

来源:原题资源:https://pan.baidu.com/s/1z73M2MRr6W6AfM57lomF-w

提取码:1tf5

.img文件,也是一种内存镜像,我们用volatility

然后就是列出进程pslist

最显眼的还是这个notepad.exe了

然后dump下来2580.dmp,binwalk查看,信息太多,直接foremost分离文件,里面发现有用的就是两个压缩包,解压是img文件。

但是这个文件同样使用volatility去跑,确没有信息,所以判断这个不是内存镜像文件。

先strings看一下

将img文件挂载在linux系统中

mount -o loop message.img /root/Desktop/m0re

挂载后,可以切换到该目录进行查看信息

复制代码
cd m0re/
ls -all		

.Trash-0/file下看到一个.message.swp

转存一下

复制代码
cat .message.swp > m0re.txt
strings m0re.txt

hint.txt文件里面都是坐标,猜测是要画图

百度到的画图的python脚本

from PIL import Image

with open('hint.txt','r') as f:

points = f.readlines()

pic=Image.new('RGB',(600,600),'black')

pix=pic.load()

for i in points:

i=i.strip().split(' ')

pixint(i\[0),int(i1)]=(255,255,255)

pic.save('out.png','png')

得到二维码

识别后得到

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

百度发现是维吉尼亚密码,密钥是aeolus

但是我们从前面得到了字符串,拿来试试

维吉尼亚密码在线解密

维吉尼亚密码在线加密解密 - 千千秀字

维吉尼亚密码有点类似凯撒密码,都是通过位移量来确定。

相关推荐
tedcloud1231 小时前
OpenShip 部署指南:开源 AI 应用快速启动模板 Linux 搭建实践
linux·运维·服务器·人工智能·开源
微学AI1 小时前
内网穿透的应用-服务器日志出现异常怎么办?Python监控、钉钉告警与远程处理教程
服务器·python·钉钉
菜地里的小菜鸟7 小时前
将linux程序打成.run包
linux·将linux程序打成run包·运维自动安装包
土星云SaturnCloud9 小时前
边缘侧大模型部署的新利器——国科环宇GK 300I大模型一体机深度评测与架构解析
服务器·人工智能·ai·边缘计算
晚风吹长发10 小时前
Docker基础——Docker Network(网络详解)
linux·运维·网络·ubuntu·docker·容器
Cx330_FCQ10 小时前
Tmux使用
服务器·git·算法
高磊200511 小时前
LVS(Linux virual server)
linux·服务器·lvs
LedgerNinja12 小时前
WEEX API 自动化交易实践:下单、撤单、订单查询与状态闭环
运维·自动化
shwill12312 小时前
PID 算法(三)--- 增量 PID ↔ 单神经元 PID 等价映射
linux·算法
山峰哥12 小时前
数据库性能救星:Explain执行计划深度拆解
服务器·开发语言·数据库·sql·启发式算法