取证的学习

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

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

维吉尼亚密码在线解密

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

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

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式