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

news2024/12/23 5:39:31

一、练习基本命令使用

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.coloradmin.cn/o/1865326.html

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

相关文章

【学习】使用PyTorch训练与评估自己的ResNet网络教程

参考:保姆级使用PyTorch训练与评估自己的ResNet网络教程_训练自己的图像分类网络resnet101 pytorch-CSDN博客 项目地址:GitHub - Fafa-DL/Awesome-Backbones: Integrate deep learning models for image classification | Backbone learning/comparison…

Java医院绩效考核系统源码:考核目标、考核指标、考核方法、考核结果与奖惩措施

Java医院绩效考核系统源码:考核目标、考核指标、考核方法、考核结果与奖惩措施 随着我国医疗体制的改革广大人民群的看病难,看病贵的问题一直没有得到有效地解决医疗费用的上涨,远远大于大多数家庭收入的增长速度。医院的改革已经势在必行&am…

左右旋分辨

从端头看,切削路径顺时针是右旋,反时针左旋。

OpenCL在移动端GPU计算中的应用与实践

一、引言 移动端芯片性能的不断提升为在手机上进行计算密集型任务,如计算机图形学和深度学习模型推理,提供了可能。在Android设备上,GPU,尤其是高通Adreno和华为Mali,因其卓越的浮点运算能力,成为了异构计…

计算机SCI期刊,中科院3区,易录用,收稿广泛

一、期刊名称 The Journal of Supercomputing 二、期刊简介概况 期刊类型:SCI 学科领域:计算机科学 影响因子:3.3 中科院分区:3区 三、期刊征稿范围 《超级计算杂志》发表有关超级计算各个方面的技术、架构和系统、算法、语…

【PromptCC】遥感图像变化字幕的解耦范式

摘要 以往的方法忽略了任务的显著特异性:对于不变和变化的图像对,RSICC难度是不同的,以一种耦合的方式处理未变化和变化的图像对,这通常会导致变化字幕的混淆。论文链接:https://ieeexplore.ieee.org/stamp/stamp.jsp…

CircuitBreaker断路器-Resilience4j

目录 背景分布式架构面临的问题:服务雪崩如何解决? CircuitBreakerResilience4jCircuitBreaker 服务熔断服务降级三种状态转换例子参数配置案例demo作业 BulkHead隔离特性SemaphoreBulkhead使用了信号量FixedThreadPoolBulkhead使用了有界队列和固定大小…

非root用户crontab定时任务不执行

前言 有一个sh脚本,通过crontab -l写入后,发现并没有执行,手动执行脚本却正常,怀疑是权限上的问题。 排查 在/var/log/cron查看日志发现有" FAILED to authorize user with PAM (Module is unknown)"的报错 解决 …

基于阿里云 OpenAPI 插件,让 Grafana 轻松实现云上数据可视化

作者:徽泠 引言 Grafana 作为市场上领先的开源监控解决方案之一,使得数据监控和可视化变得触手可及。作为一款开源的数据可视化和分析软件,Grafana 支持查询、可视化、提醒和探索您的各种数据,无论它们存储在何处。Grafana 通过…

HTTP协议中的各种请求头、请求类型的作用以及用途

目录 一、http协议介绍二、http协议的请求头三、http协议的请求类型四、http协议中的各种请求头、请求类型的作用以及用途 一、http协议介绍 HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应…

兰州市红古区市场监管管理局调研食家巷品牌,关注细节,推动进步

近日,兰州市红古区市场监管管理局临平凉西北绿源电子商务有限公司进行了深入视察,为企业发展带来了关怀与指导。 食家巷品牌作为平凉地区特色美食的代表之一,一直以来凭借其纯手工工艺和独特的风味,在市场上占据了一席之地。领导…

0.7 模拟电视标准 PAL 简介

0.7 模拟电视标准PAL PAL 是一种用于模拟电视的彩色编码系统,全名为逐行倒相(Phase Alternating Line)。它是三大模拟彩色电视标准之一,另外两个标准是 NTSC 和 SECAM。“逐行倒相”的意思是每行扫描线的彩色信号会跟上一行倒相&…

读写内部闪存FLASH读取芯片ID

读写内部闪存FLASH 右下角是OLED,然后左上角在PB1和PB11两个引脚,插上两个按键用于控制。下一个代码读取芯片ID,这个也是接上一个OLED,能显示测试数据就可以了。 STM32-STLINK Utility 本节的代码调试,使用辅助软件…

什么是云服务器镜像,如何选择?

云服务器镜像是一种用于业务连续性、灾难恢复和备份的技术手段,其本质是云端创建的服务器数据副本。 这些镜像内容可以涵盖系统、光盘、软件、网站甚至整个服务器,主要用于创建容错和冗余服务器计算基础架构,为用户提供了一个方便且可靠的解…

银河麒麟桌面操作系统V10SP1【FTP服务器】配置手册

简介: FTP是一个文件传输协议,主要是在互联网上提供文件储存和访问服务的计算机,一个FTP服务器可以对多个客户端提供服务。本文主要介绍在银河麒麟桌面操作系统V10SP1上如何搭建FTP服务器以及在客户端如何访问FTP服务器的操作方法。 正文: 一、操作环境 服务端:银河麒…

推荐系统(LLM去偏?) | (WSDM24)预训练推荐系统:因果去偏视角

::: 大家好!今天我分享的文章是来自威斯康星大学麦迪逊分校和亚马逊AWS AI实验室的最新工作,文章所属领域是推荐系统和因果推理,作者针对跨域推荐中的偏差问题提出了一种基于因果去偏的预训练推荐系统框架PreRec。 ::: 原文:Pre-t…

logstash配置文件中明文密码加密

1 案例背景 应用配置文件中禁止使用明文密码,需要加密处理 上图中,红框打码位置为es的明文密码,需要对其进行处理 2 创健keystore文件 /rpa/logstash/bin/logstash-keystore --path.settings /rpa/isa/conf/logstash/ create 注&#xff1…

3d渲染软件有哪些(2),渲染100邀请码1a12

3D渲染软件有很多,上次我们介绍了几个,这次我们接着介绍。 1、Arnold Arnold渲染器是一款基于物理算法的电影级渲染引擎,它具有渲染质量高、材质系统丰富、渲染速度快等特点,是3D设计师的极佳选择。2、Octane Render Octane Ren…

一文详解:什么是企业邮箱?最全百科

什么是企业邮箱?企业邮箱即绑定企业自有域名作为邮箱后缀的邮箱,是企业用于内部成员沟通和客户沟通的邮箱系统。 一、企业邮箱概念拆解 1.什么是企业邮箱? 企业邮箱即使用企业域名作为后缀的邮箱系统。它不仅提供专业的电子邮件收发功能&a…

JFreeChart 生成Word图表

文章目录 1 思路1.1 概述1.2 支持的图表类型1.3 特性 2 准备模板3 导入依赖4 图表生成工具类 ChartWithChineseExample步骤 1: 准备字体文件步骤 2: 注册字体到FontFactory步骤 3: 设置图表具体位置的字体柱状图:饼图:折线图:完整代码&#x…