电子取证

article/2025/10/4 12:53:11

前言:比赛看到取证类的题目,但是没了解过,所以很尴尬。比赛那道题没做出来,没有什么思路,所以等下师傅们的wp看看之后在进行复现。然后就在CTF平台上找了取证类的题目,进行学习一下。

知识了解

取证方法

  • 活取证
    —抓取文件metadata、创建时间线、命令历史、分析日志文件、哈希摘要、转存内存信息
    —使用未受感染的干净程序执行取证
    —U盘/网络 存储收集到的数据
  • 死取证
    —关机后制作硬盘镜像、分析镜像(MBR、GPT、LVM)

取证工具

目前学习kali中部分取证工具的使用。
内存dump工具

  • 内存文件与内存大小接近或者稍微大点,raw格式。

取证工具volatility使用:
分析内存文件

>>> volatility imageinfo -f xp.raw		#文件信息,关注profile
>>> volatility hivelist -f xp.raw --profile=WinXPSP3x86		#数据库文件
>>> volatility -f xp.raw --profile=WinXPSP3x86 hivedump -o 0xe124f8a8		#按虚拟机内存地址查看注册表内容
>>> volatility -f xp.raw --profile=WinXPSP3x86 printkey -K "SAM\Domains\Account\User\Names"		#用户账号
>>> volatility -f xp.raw --profile=WinXPSP3x86 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogin"		#最后登录的用户
>>> volatility -f xp.raw --profile=WinXPSP3x86 userassist 		#正在运行的程序、运行过多少次、最后一次运行时间等

工具安装

我的是2020版本的kali,没有自带volatility,但是包管理中有,直接使用命令安装

apt-get install volatility

很快就安装好啦,百度也可以找到很多教程。不再细说。
然后就利用几道题来测试一下。

forensic

来自BUUCTF的题目。
下载后是一个512MB的raw文件,直接工具分析
m0re
这个有三个,一般是第一个。说一下,第一步,第一步必须先检测这个文件时什么系统生成的,后面的命令操作都需要profile,是必须指明操作系统的。所以这个很重要。

小插曲

使用工具时遇到这样的情况,
m0re
报错信息:No suggestion (Instantiated with no profile)
这个其实跟工具没关系,原因就是打开的文件不是符合规则的文件,也就是这个文件不是raw文件,所以没有suggest。昨天我一直以为是我的工具问题,着急半天,其实就是打开的文件不是volatility可以分析的文件。
OK,小插曲结束。
继续解题……
查看进程

volatility -f mem.raw --profile=Win7SP1x86_23418 pslist

m0re
注意这四个进程,
Dumpit.exe 一款内存镜像提取工具。

TrueCrypt.exe 一款磁盘加密工具。

Notepad.exe windows自带的记事本。

Mspaint.exe windows自带画图工具。

查看用户Home目录的文件,可以发现有一个用户保存的图片文件

volatility -f mem.raw --profile=Win7SP1x86 filescan|grep -v Temporary |grep -v .dll|grep -E 'png|jpg|gif|zip|rar|7z|pdf'

m0re
发现在picture中有个无标题的图片,
可以将这个图片dump下来

volatility -f mem.raw --profile=Win7SP1x86 dumpfiles -Q 0x000000001efb29f8  --dump-dir=./

就可以在当前工作目录看到这个文件了。我的是在桌面。
m0re
查看桌面文件

volatility -f mem.raw --profile=Win7SP1x86 filescan | grep "Desktop"

m0re
这个软件在桌面运行,还看到它的LETHALBE3A-20190916-135515.raw文件也在,这个文件是dumpit生成的,然后dump下这个文件
m0re
但是桌面上什么也没有,说明这个文件还没内容,也就是指明,在取证的时候,dumpit还在运行状态,所以raw里才没有数据。
然后可以dump下dumpit的内存镜像来试试。

volatility -f mem.raw --profile=Win7SP1x86 memdump -p 3380 -D ./

m0re
然后分析3380.dmp文件。
foremost分离得到一个包含flag.txt的一个文件。
m0re
找了好久发现在压缩包里
m0re
密码就是之前的那个无标题的图片内容。
1YxfCQ6goYBD6Q
m0re

未知题目

m0re
题目来源——https://www.freebuf.com/news/145262.html
同样的姿势,先查看操作系统的信息。使用imageinfo
发现是WinXPSP2x86
题目说在桌面写着什么,可能是记事本,不过不确定,可以pslist列一下。
m0re
看一遍,记事本才有可能写东西,所以直接列出notepad的内容

volatility -f m0re.raw --profile=WinXPSP2x86 notepad

发现有一串编码。
m0re

666C61677B57336C6563306D655F376F5F466F72336E356963737D

符合base16编码的规则。所以进行解密得到第一个flag。
flag{W3lec0me_7o_For3n5ics}
第二个问题,小白的密码,
hashdump可以将内存中的NTML提取出来:

volatility -f m0re.raw --profile=WinXPSP2x86 hashdump

m0re
找个在线网站进行破解1e581aafa474dfadfdf83fc31e4fd4ea
破解得到flag{19950101}
果然一般都是生日当密码。
第三个
传送文件就需要连接外机,刚看到有nc,所以他一定是用nc来传输文件的,这样一来就有目标了。使用connscan插件查看
m0re
可以看到本地机器是192.168.57.21的1045端口去连接了远程的192.168.57.14的2333端口,进程号是120,知道进程号就可以使用psscan(进程池扫描插件)来获取信息。
m0re
看到了确实是nc,而且还有cmd,则说明是在cmd的命令行下使用的nc连接的外机。使用cmdscan插件来查看命令历史记录。
m0re
看到使用了命令

ipconfig
cd C:\Program Files\Netcat
nc 192.168.57.14 2333 < P@ssW0rd_is_y0ur_bir7hd4y.zip

传输的文件是P@ssW0rd_is_y0ur_bir7hd4y.zip
可以使用memdump插件(转储进程的可寻址内存数据插件)导出使用nc发送的相关数据:

volatility -f m0re.raw --profile=WinXPSP2x86 memdump -p 120 --dump-dir=./

桌面生成一个120.dmp
跟上一题一样,foremost分离文件
有六个zip文件,挨个打开看看,输入密码19950101得到flag
m0re
到此,内存取证入门。下次再详细地学习活取证和死取证

参考博客
http://www.bubuko.com/infodetail-3418258.html
内存取证三项CTF赛题详解


http://chatgpt.dhexx.cn/article/puA6JQ0m.shtml

相关文章

【Android取证篇】三星手机开启开发者模式

【Android取证篇】三星手机开启开发者模式 三星开发者模式—【suy】 文章目录 【Android取证篇】三星手机开启开发者模式三星手机开启开发者模式测试设备 &#xff08;一&#xff09;Android通用->版本号路径&#xff1a;设置--->关于手机--->版本号 &#xff08;二&…

微信电子取证

微信电子取证 一键提取本地PC所有的微信信息 微信电子取证 电子取证 | wechat_info_collect&#xff0c;一款针对微信客户端的信息收集工具, 能够自动化提取本地PC所有的微信信息 包括微信号, 手机号等&#xff0c;使用python写的&#xff0c;mac需要安装requests库&#x…

安卓玩机搞机技巧综合资源-----手机隐藏拍照录像 取证软件 寻找隐藏摄像头 【十六】

接上篇 安卓玩机搞机技巧综合资源------如何提取手机分区 小米机型代码分享等等 【一】 安卓玩机搞机技巧综合资源------开机英文提示解决dm-verity corruption your device is corrupt. 设备内部报错 AB分区等等【二】 安卓玩机搞机技巧综合资源------EROFS分区格式 小米红…

一篇手机取证的资料

手机取证工具介绍。 关于手机取证 目前手机的普及率是如此之高&#xff0c;以至手机取证成了一个非常重要的技术研究领域。而国内这方面尚处于起步阶段&#xff0c;未见有成熟的产品可用。事实上&#xff0c;手机取证&#xff0c;其技术难度相对还要低一些&#xff0c;因为数据…

【图像取证篇】手机拍摄的照片包含有哪些信息?

【图像取证篇】手机拍摄的照片包含有哪些信息&#xff1f; 以Android手机拍摄的图片为例—【suy】 文章目录 【图像取证篇】手机拍摄的照片包含有哪些信息&#xff1f;手机拍摄的照片&#xff08;一&#xff09;计算机照片属性查看&#xff08;二&#xff09;手机照片详细信息…

安卓手机取证要点(一)

微信发送的视频一般在以下文件夹里&#xff1a; 微信发送的语音一般在以下文件夹里&#xff1a; 语音文件类型一般为&#xff1a;amr文件&#xff1a; amr是一种主要用于移动设备上的音频文件格式&#xff0c;由于占用资源小&#xff0c;便于发录音彩信&#xff0c;所以手机上…

「技术视界」精编手机取证分析速查手册

要做好取证分析工作&#xff0c;对取证知识的熟练和掌握必不可少。之前在【技术视界】栏目我们推出了一篇《【技术视界】Windows取证分析基础知识大全&#xff0c;赶快收藏&#xff01;》文章&#xff0c;广受大家好评。 今天&#xff0c;我们又给大家整理了在手机取证分析中的…

逆向开发学习手机取证之技术手段分析

手机取证的应用背景 随着移动终端的迅速发展&#xff0c;利用移动终端进行各类非法或犯罪行为的犯罪行为不断出现&#xff0c;而且呈现 出高速增长的势头&#xff0c;这使得电子数据取证的主要 目标从存储介质向移动终端延伸。美国科研机 构电子数据取证包括手机在内的取证实现…

手机取证设备(手机点验设备、手机合规检测、双路并行手机取证深度分析系统、手机点验数据恢复)

支持功能 支持多路点验、多路取证&#xff1a;可同时对多部手机进行采集、数据解析、数据分析、点验结果展示,采集完成后, 数据在后台自动解析, 效率更高&#xff0c;可检查手机使用违规敏感不良行为记录&#xff0c;如不良言论、涉蜜信息、违规翻蔷、wang赌wang贷、不良消费、…

说说尾递归

原文&#xff1a;https://www.cnblogs.com/catch/p/3495450.html 微博上看到有人在讨论尾递归&#xff0c;想起以前曾看过老赵写的一篇相关的博客&#xff0c;介绍的比较详细了&#xff0c;相信很多人都看过&#xff0c;我也在下面留了言&#xff0c;但挑了个刺&#xff0c;表…

Kotlin尾递归优化

Kotlin尾递归优化 尾调用&#xff08;Tail Call&#xff09;是函数式编程的一个重要概念&#xff0c;本文介绍它的含义和用法。 1. 尾递归 ​ 如果一个函数中所有递归形式的调用都出现在函数的末尾&#xff0c;我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执…

c语言尾递归,C语言——递归与尾递归

在计算机科学领域中&#xff0c;递归式通过递归函数来实现的。程序调用自身的编程技巧称为递归( recursion)。 一个过程或者函数在其定义或者说明中有直接或者间接调用自身的一种方法&#xff0c;它通常把一个大型复杂的问题层层转化为一个与原问题类似的规模较小的问题来求解&…

php 尾递归,又见尾递归

这几天看到几篇关于尾递归的文章&#xff0c;之前对尾递归没有多大概念&#xff0c;所以回头研究了一下尾递归。 尾递归的概念 尾递归(Tail Recursion)的概念是递归概念的一个子集。对于普通的递归&#xff0c;由于必须要记住递归的调用堆栈&#xff0c;由此产生的耗用是难以估…

javascript尾递归优化

JS中的递归 我们来看一个阶乘的代码 function foo( n ){if(n < 1){return 1;}return n * foo( n - 1 ); }foo(5); // 120下面分析一下&#xff0c;代码运行过程中,执行上下文栈是怎么变化的 这个代码是在全局作用域中执行的&#xff0c;所以在foo函数得到执行之前&#x…

Scala尾递归

一、首先来简单介绍一下递归和尾递归 1.递归&#xff1a; 简单来说就是在函数内部调用函数本身来完成函数体。对于返回值的要求并不很严格。 递归的缺点&#xff1a;递归效率比较低&#xff0c;调用次数过多还会出现栈溢出的问题。 2.尾递归&#xff1a; 尾递归的核心思想&…

java 递归 尾递归_递归和尾递归

C允许一个函数调用其本身&#xff0c;这种调用过程被称作递归(recursion)。 最简单的递归形式是把递归调用语句放在函数结尾即恰在return语句之前。这种形式被称作尾递归或者结尾递归&#xff0c;因为递归调用出现在函数尾部。由于为递归的作用相当于一条循环语句&#xff0c;所…

递归算法和尾递归

一、递归算法 1、递归算法思想 递归算法是在程序中不断反复调用&#xff08;间接或直接地调用&#xff09;自身&#xff0c;来达到解决问题的算法。 递归是一个方法在其方法体内调用自身方法的调用方式。递归调用分为两种情况&#xff1a; 直接递归&#xff0c;即在方法中调用…

尾递归(Tail Recursion)

向上递归(Pass-Up Recursion) 先来看一下传统的递归 def sum(lst):"""把lst所有元素求和"""if len(lst) 0:return 0return lst[0] sum(lst[1:])加入sum([1,2,3]),则是先求sum([2,3])&#xff1b;而要求sum([2,3]),则要求sum([3]), 求sum([3]…

尾递归

什么是尾递归 什么是尾递归呢?(tail recursion), 顾名思议&#xff0c;就是一种“不一样的”递归&#xff0c;说到它的不一样&#xff0c;就得先说说一般的递归。对于一般的递归&#xff0c;比如下面的求阶乘&#xff0c;教科书上会告诉我们&#xff0c;如果这个函数调用的深…

【算法】递归:递归优化之尾递归

【算法】递归&#xff1a;递归优化之尾递归 引言&#xff1a;在以往我发过一篇过于通过分析法去理解递归求解递归的博客文章&#xff0c;那篇文章主要介绍了如何去求解递归问题。而在这篇文章中&#xff0c;我会介绍一下如何去优化递归&#xff0c;顺带还会去分析一下递归算法的…