记录一次内存取证

1.情景复现

我姐姐的电脑坏了。我们非常幸运地恢复了这个内存转储。你的工作是从系统中获取她所有的重要文件。根据我们的记忆,我们突然看到一个黑色的窗口弹出,上面有一些正在执行的东西。崩溃发生时,她正试图画一些东西。这就是我们从崩溃时所记得的一切。

注意:此挑战由 3 个flag组成。

2.flag1

2.1获取系统版本号

volatility_2.6_win64_standalone.exe -f MemoryDump_Lab1.raw imageinfo

2.2查看控制台运行命令

volatility_2.6_win64_standalone.exe -f MemoryDump_Lab1.raw --profile=Win7SP1x64 cmdsc

2.3查看控制台输出

volatility_2.6_win64_standalone.exe -f MemoryDump_Lab1.raw --profile=Win7SP1x64 consoles

2.4base64解密得到了第一个flag1

echo 'ZmxhZ3t0aDFzXzFzX3RoM18xc3Rfc3Q0ZzMhIX0=' |base64 -d获取到flag:flag{th1s_1s_th3_1st_st4g3!!}

flag{th1s_1s_th3_1st_st4g3!!}

3.Flag2

3.1 分析进程信息

volatility_2.6_win64_standalone.exe -f MemoryDump_Lab1.raw --profile=Win7SP1x64 consoles

3.2 进程数据保存

mspaint.exe 为windows自带画图工具,为PID 2424的mspaint.exe程序以dmp格式保存出来就可以了

volatility_2.6_win64_standalone.exe -f MemoryDump_Lab1.raw --profile=Win7SP1x64 memdump -p 2424 -D D:\BaiduNetdiskDownload\raw的内存取证\lab1

3.3 文件调整格式

mv 2424.dmp 2424.data(linux)

3.4 图片提取

使用gimp工具去打开图片文件

gimp 2424.data

3.5 调整图像数值

设置上合适的宽度和高度还有移度,就能看到图片的文字了

3.6 图像变换

竖直翻转旋转180度

3.7 获取到flag

获取到flag值为: flag{good_boy_good_girl}

4.Flag3

4.1 获取命令行下运行的程序cmdline

4.2 检索文件

文件保存在\Alissa Simpson\Documents\目录下

4.3 dumpfiles提取文件

volatility_2.6_win64_standalone.exe -f MemoryDump_Lab1.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003fa3ebc0 -D ./

4.4 解压

使用压缩工具进行尝试解压,有解压密码,注释中提示解压密码为 Alissa的NTLM hash值(大写)

Password is NTLM hash(in uppercase) of Alissa's account passwd.
密码是 Alissa 帐户密码的 NTLM 哈希(大写)。

4.5 使用hashdump获取hash值

volatility_2.6_win64_standalone.exe -f MemoryDump_Lab1.raw --profile=Win7SP1x64 hashdump

然后转化为大写

a = 'f4ff64c8baac57d22f22edc681055ba6'
print(a.upper())F4FF64C8BAAC57D22F22EDC681055BA6

4.6 获取flag

使用上述密码解压file.None.0xfffffa8001034450.rar文件,得到文件:flag3.png

flag为:flag{w3ll_3rd_stage_was_easy}

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

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

相关文章

get_mbutton

get_mbutton (3600, Row, Column, Button) while (Button 1) get_mposition (3600, Row, Column, Button) get_mbutton( : : WindowHandle : Row, Column, Button) 等到按下鼠标按钮并返回点击坐标。 get_mbutton_sub_pix( : : WindowHandle : Row, Column, Butt…

ArrayBuffer内存格式相互转换 ArrayBuffer转化16进制 16进制转字符串 pcm转wav音频

一: pcm转wav音频 针对于音频格式的转换 const encodeWAV (samples, numChannels, sampleRate) > {var buffer new ArrayBuffer(44 samples.byteLength)var view new DataView(buffer)/* RIFF identifier */writeString(view, 0, RIFF)/* RIFF chunk length …

探索数组的最大值与最小值:从基础到进阶

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:数组的奥秘 二、基础操作:查找数组的最大值和最小值 三、…

怎样消除工人们对六西格玛培训的抵触情绪?

近年来,企业为了提高产品质量、优化生产流程,纷纷引入了六西格玛管理方法。然而,在实施过程中,不少企业却遭遇了工人们对六西格玛培训的抵触情绪。这种情绪的存在不仅阻碍了六西格玛的推广和应用,也影响了企业的整体运…

邦芒职场:揭秘影响你职场收入的九大细节

在职场这个大舞台上,微小的细节往往能决定你收入的多少。以下九大细节,是你职场成功的关键,不容忽视。 1. 形象塑造 在这个注重第一印象的时代,良好的形象是你的第一张名片。精致的妆容、得体的着装,不仅能为你加分&a…

packstack一键部署OpenStack云平台

OpenStack一键部署 文章目录 OpenStack一键部署资源列表基础环境一、基础环境配置1.1、配置时间同步1.2、配置网络1.3、添加hosts绑定1.4、更新系统并安装常用软件 二、使用packstack一键部署OpenStack2.1、Train版YUM源安装2.2、Packstack软件包安装2.3、Packstack一键部署Ope…

electron-01 基础及NPM相关配置

electron基础 结构 ChromiumNode.jsNative apis 工作流程 启动APP主进程创建windowWin加载界面操作 主进程 package.json中main属性对应的文件一个应用对应一个主进程只有主进程可以进行GUI的API操作 渲染进程 windows中展示的界面通过渲染进程表现一个应用可以有多个渲…

Unity 生成模版代码

1、创建模版代码文本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class ClassNameScritpItem : MonoBehaviour {public GameObject go;// Start is called before the first frame updatevoid Start(){go new GameObject();}// …

LeetCode115:不同的子序列

题目描述 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数,结果需要对 109 7 取模。 代码 /*dp[i][j]:以i为结尾的s中有以j为尾的t的个数递推公式:当s[i - 1] 与 t[j - 1]相等时,dp[i][j]可以有两…

工业LED显示屏汉字乱码方式的解决

目录 研究背景 解决方法 原因分析 尝试的解决方法 本质原因 写在最后 研究背景 想实现LED显示屏数字、字母、汉字均能正常显示的效果(效果如下)。在将UTF-8改为GB2312 编码之前,数字和字母不乱,但是汉字会乱码。 解决方法 1…

Rust的高效易用日志库—tklog

很多人习惯于python,go等语言基础工具库的简单易用;在使用rust时,可能感觉比较麻烦,类似日志库这样的基础性工具库。tklog提供用法上,非常类似python等Logger的日志库用法,用法简洁;基于rust的高…

多线程笔记

1. run() VS start() run()方法: run()方法是java.lang.Runnable接口中定义的一个方法。当一个类实现了Runnable接口,并创建了一个线程对象时,你需要覆盖run()方法来定义线程要执行的任务。run()方法定义了线程的主体逻辑,当线程…

【详细介绍下PostgreSQL】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

Java面试八股之Synchronized锁升级的原理

Synchronized锁升级的原理 Synchronized锁升级是Java为了提高并发性能而引入的一项优化措施,这一机制主要发生在JDK 1.6及之后的版本中。Synchronized锁升级旨在减少锁带来的性能开销,通过从低开销的锁逐步升级到高开销的锁,以适应不同的竞争…

I/O '24|学习资源焕新,技术灵感升级

2024 年 5 月 15 日凌晨举行的 Google I/O 大会为各地的开发者们带来了新的灵感。面对技术革新,相信各位开发者们都迫不及待想要自己上手试一试。 别急,Google 谷歌今年为中国的开发者们准备了一份特别的学习资源,让开发者们自由探索新知。 G…

什么是数字签名,数字签名详解。

数字签名详解 数字签名是一种用于验证数字信息的真实性和完整性的技术,广泛应用于电子商务、软件分发、合同签署等领域。它通过加密技术确保信息在传输过程中未被篡改,并确认发送者的身份。以下是对数字签名的详细介绍。 一、数字签名的基本概念 数字…

蓝桥杯2023(十四届)省赛——岛屿个数(DFS+BFS)

岛屿个数(DFSBFS) 1.岛屿个数 - 蓝桥云课 (lanqiao.cn) **法一:**本题很妙啊,你发现没有。反向操作,不是直接算岛屿数量,而是先将最外层的海洋给标注出来(DFS,visit[i][j]2&#x…

笔记-python有三种导入模块的方法

其一, import modname : 模块是指一个可以交互使用,或者从另一Python 程序访问的代码段。只要导入了一个模块,就可以引用它的任何公共的函数、类或属性。模块可以通过这种方法来使用其它模块的功能。 用import语句导入模块,就在…

NAT简介

一、NAT 概念定义 NAT(Network Address Translation,网络地址转换)是一种将私有 IP 地址转换为公有 IP 地址的技术。 允许一个组织内部使用私有 IP 地址的网络通过少量的公有 IP 地址连接到互联网。实现了私有网络与外部网络的通信&#xf…

Angular安装与基础语法

安装Angular cli npm i -g angular-cli 创建项目 npm new project_name(项目名称) 启动项目 cd project_name(j进入新创建的项目) ng serve --open 创建组件 ng g c xxx 会在根组件的统计生成一个组件xxx文件夹,比如ng g c hello 就会生成一个hello组件文件…