Volatility 内存取证【信安比赛快速入门】

一、练习基本命令使用

1、获取镜像信息

./volatility -f Challenge.raw imageinfo

一般取第一个就可以了

2、查看用户

./volatility -f Challenge.raw --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"

3、获取主机名

./volatility -f Challenge.raw --profile=Win7SP1x64 printkey -K "ControlSet001\Control\ComputerName\ComputerName"

4、查看浏览器的浏览记录

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

最前面是 volatility 的文件名,加不加后缀看文件名的情况,这里我用的是 window 下的 volatility,后面命令一样的,只不过 kali 中的 volatility 问题比较多

5、查看网络连接情况

./volatility -f Challenge.raw --profile=Win7SP1x64 netscan

6、查看用户密码

volatility.exe -f Challenge.raw --profile=Win7SP1x64 hashdump

7、查看 LSA 密钥信息

volatility.exe -f Challenge.raw --profile=Win7SP1x64 lsadump

8、查看服务信息

volatility.exe -f Challenge.raw --profile=Win7SP1x64 svcscan

9、查看进程

volatility.exe -f Challenge.raw --profile=Win7SP1x64 pslist

10、查看进程树

volatility.exe -f Challenge.raw --profile=Win7SP1x64 pstree

11.显示隐藏或终止的进程

volatility.exe -f Challenge.raw --profile=Win7SP1x64 psscan

12、查找带有隐藏进程的所有进程列表

volatility.exe -f Challenge.raw --profile=Win7SP1x64 psxview

13、查看 cmd 历史命令

volatility.exe -f Challenge.raw --profile=Win7SP1x64 cmdscan

14、查看文件

volatility.exe -f Challenge.raw --profile=Win7SP1x64 filescan

扫描所有的文件列表,在 kali 中可以配合 grep 命令来使用,过滤出目标文件

15、查看文件内容

volatility.exe -f Challenge.raw --profile=Win7SP1x64 dumpfiles -Q 0xxxx -D 路径

导出内存中缓存的文件

16、查看某软件版本信息

volatility.exe -f Challenge.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000011ff1a070 -D D:\

把后缀改成 .exe 右键属性即可查看版本信息

17、提取进程

memdump

volatility.exe -f Challenge.raw --profile=Win7SP1x64 memdump -p 2012 -D D:\

18、将进程转储到可执行文件

procdump

./volatility -f Challenge.raw --profile=Win7SP1x64 procdump -p 2012 -D /home/kali/

【procdump 和 memdump 的区别:procdump 是提取进程的可执行文件、memdump 是提取进程在内存中的信息】

19、查看桌面上的软件

volatility.exe -f Challenge.raw --profile=Win7SP1x64 filescan | findstr "Desktop"

window 使用 findstr ;kali 使用 grep

20、获取邮箱号

方法一:iehistory

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

方法二:screenshot

volatility.exe -f Challenge.raw --profile=Win7SP1x64 screenshot -D 路径

这条命令把图片保存在指定路径中,去图片中找邮箱

21、从内存中的注册表信息获取机器关机时间

volatility.exe -f Challenge.raw --profile=Win7SP1x64 shutdowntime

22、显示进程的环境变量

例题:已知某某从浏览器中下载了一个压缩文件,文件相关信息写入到环境中,请找出文件的内容

后面的 333.txt 是自定义文件名,如果不存在会自己创建,打开后就可以在里面找相关内容了,像题目说的那样,是个压缩包,那就过滤后缀为 rar、zip 的数据(注意要大小写不敏感)

23、创建内存中的各种痕迹信息的时间线

 ./volatility -f Challenge.raw --profile=Win7SP1x64 timeliner | grep "conhost.exe"

题目:找出某应用的最后一次运行时间

这里需要注意,扫出来之后很多是配置文件的运行时间,这里要找到可执行程序的信息(exe)

24、打印 UserAssist 注册表项和信息

 ./volatility -f Challenge.raw --profile=Win7SP1x64 userassist

查看运行程序相关的记录,比如最后一次更新时间,运行过的次数等

25、查看剪切板

./volatility -f OtterCTF.vmem --profile=Win7SP1x64 clipboard

clipboard

26、查看进程命令行参数

cmdline

二、例题训练及解析

1、【例题取自靶场:OtterCTF】

注意:只挑出一些有针对性的题目

查看镜像版本信息

Win7SP1x64

第一题【3 - Play Time】:瑞克只是喜欢玩一些好玩的老电子游戏。你能分辨出他在玩什么游戏吗?服务器的 IP 地址是什么?

./volatility -f OtterCTF.vmem --profile=Win7SP1x64 netscan

不清楚的可以去百度查一下该名字就好了

由第一张图所示,游戏程序对应的 IP 为 77.102.199.102

最终答案:

CTF{LunarMS}

CTF{77.102.199.102}

第二题【2 - General Info】:让我们从简单的开始 - PC 的名称和 IP 地址是什么?

./volatility -f OtterCTF.vmem --profile=Win7SP1x64 printkey -K "ControlSet001\Control\ComputerName\ComputerName"

CTF{WIN-LO6FAF3DTFE}

看 IP 直接用 netscan 看,找那些出现个数最多的,成片出现的大概率就是了

CTF{192.168.202.131}

最终答案:

CTF{192.168.202.131}

CTF{WIN-LO6FAF3DTFE}

第三题【1 - What the password?】:你得到了 Rick 的 PC 内存样本。你能得到他的用户密码吗?

直接使用 hashdump 看,下图红框内就是密码对应的 MD5 值,不过撞库撞不出来,那就说明考察点不再这里

使用 lsadump 来查看,猜测下图红框内应该是密码,整理一下得到:MortyIsReallyAnOtter

最终答案:

CTF{MortyIsReallyAnOtter}

第四题【4 - Name Game】:我们知道该帐户已登录到一个名为 Lunar-3 的频道。帐户名称是什么?

【登录到名为 Lunar-3 的频道指的是游戏内的频道,所以需要提取游戏程序的信息】

使用 pslist 找到游戏进程 PID

使用 memdump 提取文件信息

把文件丢到 Window 中,使用 HxD 分析,当然也可以右键打开记事本来分析,载入后 CTRL + F 搜索 Lunar-3 快速定位,然后就在 Lunar-3 周围的英文单词一个一个试

试了两个就找到了,Ott3r8r33z3 就是了

最终答案:

CTF{0tt3r8r33z3}

第五题【6 - Silly Rick】:Silly rick 总是忘记他的电子邮件密码,所以他使用在线存储的密码服务来存储他的密码。他总是复制并粘贴密码,这样他就不会弄错。Rick 的电子邮件密码是什么?

题目提示的很明显,复制粘贴密码,所以我们直接看剪切板

最终答案:

CTF{M@il_Pr0vid0rs}

第六题【7 - Hide And Seek】:我们采取 rick 的 PC 内存转储的原因是存在恶意软件感染。请找到恶意软件进程名称(包括扩展名)

查看可以进程的命令行参数

往下翻找,发现 Rick And Morty 下载了东西,且 vmware-tray.exe 存在临时文件夹 Temp 下,该文件夹是比较敏感的,一般看到有程序存在该文件夹下就要特别注意了

所以我们猜测 vmware-tray.exe 是恶意程序,提交发现答案也确实是这个

第七题【11 - Graphic's For The Weak】:恶意软件的图形中有一些可疑的东西。

这题不能只用 volatility,需要配合 foremost (做过 CTF 杂项题的同学对该工具应该很熟悉)分离恶意软件中的图片。

首先,将恶意软件提取出来,使用 procdump 转存成 exe 文件

PID :3720

使用 kali 自带工具 binwalk 查看是否有东西,发现确实包含图片在里面

接下来就可以使用 foremost 来分离了,foremost 分离完的文件会存放在 output 文件夹下

最终答案:

CTF{S0_Just_M0v3_Socy}

第八题【9 - Path To Glory 2】:继续搜索恶意软件进入的方式。

前面我们分析出恶意软件是  Rick And Morty 下载的,所以我们先将所有的 chrome 进程转储下来

自己创建个文件夹,把导出的文件放进去,使用 strings 命令查找相关信息

往下翻找

最终答案:

CTF{Hum@n_I5_Th3_Weak3s7_Link_In_Th3_Ch@inYear}

这一小题出的并不好,我把他放出来的目的是他的思路可以用在比赛中。

2、【例题取自信息安全比赛赛前训练题】

【第一题:找出机器上安装的系统版本】

volatility.exe -f C220.vmem imageinfo

Win7SP1x64

【第二题:找出攻击者的 IP 地址和目标计算机上的本地端口】

volatility -f C220.vmem --profile=Win7SP1x64 netscan

54.36.109.161

2222

【第三题:找出攻击者执行的第一个命令】

volatility -f C220.vmem --profile=Win7SP1x64 cmdline

"C:\Windows\sysnative\svchost.exe"

【第四题:获取 admin 用户密码】

volatility -f C220.vmem --profile=Win7SP1x64 lsadump

flag{406990ff88f13dac3c9debbc0769588c}

【第五题:获取 IP 和主机名】

通过第四题可以得到本机 IP

192.168.85.129

volatility -f C220.vmem --profile=Win7SP1x64 printkey -K "ControlSet001\Control\ComputerName\ComputerName"

WIN-9FBAEH4UV8C

【第六题:获取当前系统浏览器搜索过的关键词】

volatility -f C220.vmem --profile=Win7SP1x64 iehistory

admin@file:///C:/Users/admin/Desktop/flag.txt

【第七题:获取桌面上的 flag.txt 文件的内容】

volatility -f C220.vmem --profile=Win7SP1x64 filescan | findstr "Desktop"

找到文件,接下里使用插件把文件 dump 下来

volatility -f C220.vmem --profile=Win7SP1x64 dumpfiles -Q  0x000000007f1b6c10 -D D:/

用记事本打开

flag{180d163ca48c793cb0db74fb96d6a882}

【第八题:服务器存在一个挖矿病毒,矿池地址是多少】

54.36.109.161

【第九题:恶意代码在系统中注册了服务,服务名是什么】

由第八题我们确定了病毒程序的端口为 2588,接下来使用 pslist 找到该进程的 PPID

volatility -f C220.vmem --profile=Win7SP1x64 pslist

volatility -f C220.vmem --profile=Win7SP1x64 svcscan

VMnetDHCP

三、比赛例题解题思路

1、找出某恶意程序注册的服务器名称

        ①、通过 netscan 找到可疑的连接,并记录下对应的进程 PID

        ②、通过 volatility -f [镜像名称] --profile=[版本] pslist -p PID 找到对应的 PPID(父进程)

        ③、通过 volatility -f [镜像名称] --profile=[版本] svcscan 中找到 process ID 为 PPID 的即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/748026.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序毕业设计-微信食堂线上订餐系统项目开发实战(附源码+论文)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…

UFS协议—新手快速入门(五)【11-13】

目录 十一、逻辑单元(Logical Unit, LU) 1、概念 2、UFS逻辑单元的独立特性 3、Well known LU (1)Boot Logical Units(BOOT LUs) (2)RPMB(Replay Protected Memory…

使用提示词调教AI

“AI 是我们的数字员工,了解员工的秉性 , 从调教提示词开始。” 网上流传最广的提示词方法论,是“你需要给大模型一个角色”。这确实是一个好的策略,因为小学老师,大学老师这样的角色,预设很多背景信息。这…

独立开发者系列(11)——登录与鉴权

从原理上讲,登录很简单,就是输入账号密码和后台的数据库进行匹配,匹配上了就表示登录了,否则没有登录。这里主要总结的问题,用户登录之后,服务器端怎么确定你登录了,认定身份这个问题。 在刚学会…

德力西空调漏电保护开关HDF-LB32A40A家用电热水器漏电保护器开关

品牌 德力西 型号 HDF-LB 额定电流 40A,32A 漏电保护器类型 2P 产地 中国大陆 电压 1000V及以下 极数 2P 电源方式 交流电 3C证书编号 2020960306000014 独有外观,纤薄时尚,家用漏电保护开关,防触电,漏电保…

C语⾔数据类型和变量

C语⾔数据类型和变量 1.数据类型介绍1.1 字符型1.2 整型1.3 浮点型1.4 布尔类型1.5 各种数据类型的长度1.5.1 sizeof操作符1.5.2 数据类型长度1.5.3 sizeof中表达式不计算 2. signed 和 unsigned3. 数据类型的取值范围4. 变量4.1 变量的创建4.2 变量的分类 5. 算术操作符&#…

最新AI智能聊天对话问答系统源码(详细图文搭建部署教程)+AI绘画系统,DALL-E3文生图, Whisper TTS 语音识别,文档分析

一、人工智能 随着人工智能技术的持续进步,AI绘画已经发展成为一个日益成熟的领域。越来越多的人开始尝试使用AI绘画软件来创作艺术作品。尽管这些AI绘画软件对绘画领域产生了显著影响,但它们并不会完全取代画师。与传统手绘不同,AI绘画可以…

【C++】运算符重载(日期类的实现)

文章目录 前言一、运算符重载的概念和意义二、运算符重载的规则三、常用运算符重载1.关系运算符重载2.赋值运算符重载3.、-、、-重载4.前置和后置重载5.流插入<<和流提取>>重载 前言 之前在总结类的六个默认成员函数时&#xff0c;没有过多介绍运算符重载&#xf…

实时显示用户输入PySide6实例

如何用 PySide6 实现QLabel 实时显示用户在 QLineEdit 内输入的内容&#xff1f; 示例代码&#xff1a; # QLineEdit 用户输入内容&#xff0c;QLabel 即时显示用户输入训练from PySide6.QtWidgets import (QApplication, QWidget,QLabel, QLineEdit, QVBoxLayout)class MyWi…

ROS学习记录:Hector_Mapping建图的参数设置

前言 launch文件启动Hector_Mapping的建图功能 在上一篇文章&#xff08;以上链接&#xff09;通过launch文件启动了Hector_Mapping建图功能&#xff0c;这一篇文章将在launch文件里给Hector_Mapping设置参数 一、Hector_Mapping有哪些参数 1、浏览器搜索并进入 ROS index 2…

Redis-实战篇-编码解决商铺查询的缓存穿透问题(缓存空对象)

文章目录 1、缓存穿透2、常见的解决方案有两种&#xff1a;2.1、缓存空对象2.2、布隆过滤器 3、编码解决商铺查询的缓存穿透问题3.1、queryById3.2、RedisConstants.java 1、缓存穿透 缓存击穿是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效…

首次30米空间分辨率生成中国年度耕地栅格数据1986-2021

中国1986-2021年30米分辨率年度耕地数据集 数据介绍 精确、详细且及时的耕地范围信息对于粮食安全保障和环境可持续性至关重要。然而&#xff0c;由于农业景观的复杂性和足够训练样本的缺乏&#xff0c;在大范围下进行高时空分辨率的耕地动态监测仍然具有挑战性&#xff0c;尤其…

1.Android逆向协议-环境搭建

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;易锦网校 不是安卓逆向吗&#xff1f;为什么写java代码&#xff1f;因为逆向的时候涉及java语言 JDK环境搭建&#xff1a;JDK是JAVA语…

基于RK3568车载电脑助力日本巴士公司高效完成巴士到站系统项目部署

无处不在的物联网&#xff08;IoT&#xff09;技术已经渗透到了人类生活的各个角落&#xff0c;如日常出行乘坐的公交车上&#xff0c;物联网&#xff08;IoT&#xff09;技术的应用就得到完美诠释&#xff01;其通过公交车上的车载电脑网络与中控室服务器连接来对公交车的运行…

Jira实践案例分享:小米集团如何通过API请求优化、数据治理与AI智能客服等,实现Jira系统的高效运维

日前&#xff0c;Atlassian中国合作伙伴企业日活动在上海成功举办。活动以“AI协同 创未来——如何利用人工智能提升团队协作&#xff0c;加速产品交付”为主题&#xff0c;深入探讨了AI技术在团队协作与产品交付中的创新应用与实践&#xff0c;吸引了众多业内专家、企业客户及…

自定义注解实现幂等

在前面的文章中&#xff0c;我们说过解决消息重复消费的方式中&#xff0c;有一个方式是幂等&#xff0c;那么幂等是怎么实现呢&#xff1f; 面试官&#xff1a;对于MQ中的消息重复消费说说的你的理解 一、定义 首先我们先来了解一下幂等的定义&#xff0c;它指的是同一个操作…

嵌入式Linux系统编程 — 3.7 文件目录与处理

目录 1 文件目录 1.1 文件目录简介 1.2 目录存储形式 2 创建和删除目录 2.1 mkdir创建目录 2.2 rmdir删除空目录 3 opendir打开、 readdir读取以及closedir关闭目录 3.1 打开文件 opendir 3.2 读取目录 readdir 3.3 重置目录起点rewinddir 3.4 关闭目录 closedir 3…

基于DeepNLP AI Store真人点评和ShowCase分享社区-AI for Image Generator

来源 quora 社区: https://deepnlpaistore.quora.com/ github: https://rockingdingo.github.io/deepnlp/store/image_generator 内容 DeepNLP AI Store 网址&#xff1a;http://www.deepnlp.org/store/image-generator 网站针对图像生成类别 Image Generator下多个AI工具如 …

第 28 篇 : SSH秘钥登录

1 生成秘钥 ssh-keygen -t rsa ls -a ./.ssh/一直回车就行了 2. 修改配置 vi /etc/ssh/sshd_config放开注释 公钥的位置修改 关闭密码登录 PubkeyAuthentication yes AuthorizedKeysFile .ssh/id_rsa.pub PasswordAuthentication no3. 下载id_rsa私钥, 自行解决 注意…

Websocket在Java中的实践——自动注册端点

在《Websocket在Java中的实践——握手拦截器》中我们使用握手拦截器实现了路径解析的工作。这个过程略显复杂&#xff0c;因为路径解析这样比较底层的工作应该由框架来解决&#xff0c;而不应该交由开发者来做。本文介绍的自动注册端点的功能就可以很优雅的解决这个问题。 依赖…