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 的即可

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索QCS6490目标检测AI应用开发(二):摄像头视频的拉取和解码

作为《探索QCS6490目标检测AI应用开发》文章,紧接上一期,我们介绍如何在应用程序中拉取视频流,并且用硬件解码,得到逐帧的图像画面。我们使用了高通的Intelligent Multimedia SDK(IM SDK)完成视频的拉流和硬…

Linux杀僵尸进程

ps -A -o stat,ppid,pid,cmd | grep -e ^[Zz] | awk {print $2}1、查看系统是否有僵尸进程 使用Top命令查找,当zombie前的数量不为0时,即系统内存在相应数量的僵尸进程。 2、定位僵尸进程 使用命令 ps -A -ostat,ppid,pid,cmd |grep -e [Zz]定位僵尸…

Kafka入门-分区及压缩

一、生产者消息分区 Kafka的消息组织方式实际上是三级结构:主题-分区-消息。主题下的每条消息只会保存在某一个分区中,而不会在多个分区中被保存多份。 分区的作用就是提供负载均衡的能力,或者说对数据进行分区的主要原因,就是为…

数据库与表的基本操作:构建数据世界的基石(三)

引言:从零构建数据结构的艺术 在上一章节《安装与配置》中,我们成功地在不同的操作系统上安装并配置了MySQL,为实战数据库管理奠定了坚实的基础。本章节,我们将深入探索数据库与表的基本操作,包括如何创建、删除数据库…

RandLA-Net语义分割

项⽬地址: GitHub - tsunghan-wu/RandLA-Net-pytorch: :four_leaf_clover: Pytorch Implementation of RandLA-Net (https://arxiv.org/abs/1911.11236) 搭建环境并配置RandLA-Net 根据Environment Setup 搭建环境(除了requirements.txt中的库&#xf…

畅谈GPT-5

前言 ChatGBT(Chat Generative Bidirectional Transformer)是一种基于自然语言处理技术的对话系统,它的出现是人工智能和自然语言处理技术发展的必然趋势。随着技术的更新和进步,GPT也迎来了一代代的更新迭代。 1.GPT的回顾 1.1 GPT-3的介绍 GPT-3(Gen…

门店客流统计)

门店客流统计 代码部分效果 代码部分 import cv2 import numpy as np from tracker import * import cvzone import timebg_subtractor cv2.createBackgroundSubtractorMOG2(history200, varThreshold140)# Open a video capture video_capture cv2.VideoCapture(r"sto…

昇思25天学习打卡营第3天|数据集与数据变换

数据集 数据集(Dataset)操作shufflemapbatch 数据变换(Transforms)Vision TransformsText TransformsLambda Transforms 总结 数据集(Dataset) 数据是深度学习的基础,深度神经网络的效果对数据…

力扣377 组合总和Ⅳ Java版本

文章目录 题目描述代码 题目描述 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 示例 1: 输入:nums [1,2,3], targe…

algorithm中常见算法

1、前言 C的<algorithm>库是C标准库中的一个重要组成部分&#xff0c;它提供了一系列的函数&#xff0c;用于执行各种常见的算法操作&#xff0c;比如排序、查找、替换、合并等。这些算法函数通常以模板函数的形式提供&#xff0c;可以用于任何符合特定条件的容器类型。 …

玩个游戏 找以下2个wordpress外贸主题的不同 你几找到几处

Aitken艾特肯wordpress外贸主题 适合中国产品出海的蓝色风格wordpress外贸主题&#xff0c;产品多图展示、可自定义显示产品详细参数。 https://www.jianzhanpress.com/?p7060 Ultra奥创工业装备公司wordpress主题 蓝色风格wordpress主题&#xff0c;适合装备制造、工业设备…

用友U8 Cloud smartweb2.showRPCLoadingTip.d XXE漏洞复现

0x01 产品简介 用友U8 Cloud 提供企业级云ERP整体解决方案,全面支持多组织业务协同,实现企业互联网资源连接。 U8 Cloud 亦是亚太地区成长型企业最广泛采用的云解决方案。 0x02 漏洞概述 用友U8 Cloud smartweb2.showRPCLoadingTip.d 接口处存在XML实体,攻击者可通过该漏…

Origin做聚类分析并利用聚类插件绘制热力图

1.聚类分析 1.1 K均值聚类 step1、首先进行归一化&#xff0c;具体步骤如图1-1所示&#xff1a; 图1-1 操作后得到归一化值如图1-2所示&#xff1a; 图1-2 step2、执行K均值聚类分析&#xff0c;如图1-3所示&#xff0c;选中聚类列&#xff0c;接着点击“统计”—“多变量分析…

webrtc-m120编译

WebRTC实时互动入门 环境 lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.4 LTS Release: 22.04 Codename: jammyuname -a Linux yqw-Lenovo-XiaoXinPro-13ARE-2020

手把手从零开始搭建远程访问服务

远程访问服务工具——FRP frp 是一个能够实现内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网的服务器来转发。 资源链接 根据自己服务型号和操作系统来选取对应的文件&#xff0c;不知道的…

VS2019中解决方案里的所有项目都是 <不同选项> 的解决方案

以上等等&#xff0c;全部是 <不同选项>。。。 这样的话&#xff0c;如何还原和查看原有的值呢&#xff0c;就这么丢失掉了吗&#xff1f; 不会&#xff0c;需要解决方案里配置一下。 解决&#xff1a; 解决方案右键属性 -> 配置属性 -> 配置 -> 将所有配置改…

三大办公软件实用小技巧 沈阳办公软件白领必修班

Word 学好办公软件能大大的提升我们的工作效率。下面让我们一起学习一下Word办公软件时几个实用小技巧&#xff01; 01.快速插入当前日期或时间 在使用Word办公软件进行文档的编辑处理时&#xff0c;如果需要在文章的末尾插入系统的当前日期或时间。通常情况下&#xff0c;我…

如何编写时区源文件

0、背景 ① 修改TZ环境变量改变时区不能立即生效。要求设置时区后立即生效&#xff0c;只能用修改/etc/localtime方式。 ② 原文作者 Bill Seymour&#xff0c;想要查看原文&#xff0c;点击官网地址https://www.iana.org/time-zones下载 zic 源码&#xff0c;源码目录中的 tz…

【TB作品】MSP430,G2533单片机,红外发射,红外接收,红外通信,IR发射

文章目录 题目红外NEC协议介绍基本概述数据帧结构位表示数据传输示例重复码&#xff08;Repeat Code&#xff09;实现细节发送端接收端 典型应用结论 最终效果代码 题目 遥控器 硬件&#xff1a;msp430g2553、oled显示器、ds18b20温度传感器、红外发射器、按键 软件功能&#…

Elasticsearch 使用问题记录

文章目录 Elasticsearch 使用问题记录Text类型的字段&#xff0c;无法进行聚合和排序高亮查询匹配过多&#xff0c;超出高亮默认限制 Elasticsearch 使用问题记录 Text类型的字段&#xff0c;无法进行聚合和排序 问题背景&#xff1a;在使用Elasticsearch的过程中&#xff0c;…