内存取证-Otter CTF( 取证专项赛)

发布于: 2024-07-05 15:55
来源: 卓识网安

网安视界

内存取证-Otter CTF ( 取证专项赛)


内存取证是⼀种重要的数字取证技术, 它主要针对计算机内存中的信息进⾏提取和分析 。对于⼀些短暂 存在于内存中的数据, 如⽹络连接 、正在运⾏的进程 、登录⽤户 、打开的⽂件等, 内存取证能够提供⼤ 量的线索 。这种技术在⽹络安全调查 、犯罪侦查 、系统故障分析等领域有⼴泛的应⽤ 。

在内存取证过程中, 主要包括以下步骤:

1. 内存抓取:这是内存取证的第⼀步, 通过专⻔的⼯具对⽬标计算机的内存进⾏抓取, 得到内存镜 像。

2. 内存分析:在抓取内存后, 需要对内存镜像进⾏详细的分析, 以发现有⽤的信息 。这—步可能需要 使⽤到各种内存分析⼯具。

3. 信息提取:在内存分析的基础上, 对发现的有⽤信息进⾏提取和保存。

4. 报告编写:最后, 将内存取证的结果以报告的形式进⾏呈现。


内存取证练习

01

题⽬1-What the password? 

⾸先还是先分析⼀下镜像

使⽤hashdump获取⽤户hash

发现⽆法解密成功 ,使⽤lsadump从注册表中提取LSA密钥信息, 得到密码信息MortyIsReallyAnOtter

02

题⽬2-Play Time 

题⽬要求找到玩的游戏以及对应IP, 先使⽤pstree查看进程

搜索进程名称发现LunarMS.exe为⼀款游戏

查看LunarMS该进程使⽤的⽹络连接情况查找对应IP 发现IP地址为77.102.199.102

03

题⽬3-General Info 

根据题⽬提示, 需要查找PC名称以及IP地址 ⾸先使⽤hive list列出注册表

发现注册表0xfffff8a000024010 0x000000002d50c010 \REGISTRY\MACHINE\SYSTEM

主机名称注册表位置:ControlSet001\Control\ComputerName\ComputerName 获取主机名称

使⽤ netscan查看⽹络连接情况, 或者根据题⽬2中获取信息得到IP 192.168.202.131

04

题⽬4-Name Game 

根据提示, 登陆了游戏, 那尝试直接在镜像中搜索 先使⽤strings重定向到⽂本中

strings OtterCTF.vmem > OtterCTF.vmem.strings

进⾏搜索

cat OtterCTF.vmem.strings | grep -C 10 "Lunar-3" 查找到Lunar-3以及对应密码0tt3r8r33z3

05

题⽬5-Name Game 2 

根据提示, ⽤户名总在这个

0x64 0x??{6-8} 0x40 0x06 0x??{18} 0x5a 0x0c 0x00{2} ) 签名之后

根据上⾯题⽬ , 我们⾸先dump进程LunarMS.exe ,根据上⾯题⽬可知LunarMS.exe的进程为708

接下来需要查找提示中的内容, 可使⽤ winhex, 010Editor,或者 linux 中的 hexdump等⽅式查看, 也可 使⽤xxd命令输出查看。

⽤于⽤⼆进制或⼗六进制显示⽂件的内容, 如果没有指定outfile参数,则把结果显示在屏幕上, 如 果指定了outfile则把结果输出到 outfile中;如果infile参数为 – 或则没有指定infile参数,则默认   从标准输⼊读⼊ 。

xxd [options] [infile [outfile]] 

xxd -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]] 

简单地说,xxd就是⼀个⼆进制⽂件查看器

1   常⽤选项: 
2   -b
3   转到  ⽐特(⼆进制  数字) 模式 , ⽽不是⼗六进制模式 。在这种模式下 , 每个字符被表示成⼋个  0/1 的数字,⽽不是⼀般的⼗六进制形式 。每⼀⾏都以⼀个⽤⼗六进制形式表示的⾏号,后⾯是ascii (或者  ebcdic) 形式开头 。命令⾏选项  -r, -p 在这个模式下不起作⽤ 。
4   -h
5   显示帮助信息后退出。 
6
7   -l N
8   只输出  N 个字符。 
9
10   -ps
11   以  postscript的连续⼗六进制转储输出, 这也叫做纯⼗六进制转储。 
12
13   -r
14   逆向操作 : 把xxd的⼗六进制输出内容转换回原⽂件的⼆进制内容。 
15
16   -seek offset
17   ⽤在  -r 之后 : 会在当前⽂档的  偏移量上增加   . 
18
19   -s [+] [-]seek
20   从infile的绝对或者相对偏移量  开始 .
21   + 表示相对于标  输⼊当前的位置   (如果不  标准输⼊就没有意义了).
22   – 表示从档桉末尾   (如果和  + 连⽤ : 从标准输⼊当前位置) 向前数⼀些字符 , 从那个地⽅开始 . 如果没有  -s 选项 , xxd 从  当前位置开始 .
23
24   -u
25   ⼗六进制输出时使⽤⼤写字⺟ ,默认是⼩写字⺟ 
26
27   示例:
28   以⼆进制形式,查看前16个字节,每⾏显示1个字节:
29   xxd -b -l 16 -c 1 a.o
30
31   从第16个字节开始( 注:16是下标,起始为0算), 显示40个字节,每⾏显示8个字节:
32   xxd -s 16 -l 40 -c 8 a.o
33
34   从第16个字节开始,每⾏8个, 显示40个字节的hex dump
35   xxd -s 16 -l 40 -c 8 -ps a.o
36
37   输出最后10个字节内容
38   xxd -s -10 a.o
39
40   查看⽂件时, ⾃动跳过⼤块的0区域来显示
41   xxd -a a.o
42
43   把b.txt以⼗六进制写到c.o 
44   xxd -r -ps b.txt c.o

xxd 708.dmp | grep "5a0c 0000"

发现c33a4a0存在M0rt信息, 怀疑可能是⽤户名信息, ⽤ xxd将M0rt其他信息读取出来

读取信息为M0rtyL0L, 提交成功。

06

题⽬6-Silly Rick 

根据题⽬描述, rick将密码复制粘贴, 那密码将存在于剪贴板中, 直接进⾏读取

得到剪贴板中密码信息M@il_Pr0vid0rs

07

题⽬7-Hide And Seek 

根据提示, 需要查找恶意软件进程名称, ⾸先再次查看进程列表

发现其中存在部分可疑进程, 搜索发现Rick And Morty为

结合BitTorrent.exe, 猜测可能该进程存在问题, 查看该进程的进程树

发现Rick And Morty下存在⼦进程vmware-tray.ex 查看—下该进程下运⾏的程序

查看后发现, 该进程为Rick And Morty下载vmware-tray.ex并在默认下载路径RarSFX下运⾏ ,则判断 恶意软件进程名称为vmware-tray.exe

08

题⽬8-Path To Glory 

题⽬要求查找恶意软件如何进⼊rick电脑

由于题⽬7已发现Rick And Morty下载导致 ,则对⽂件进⾏搜索查看

分别将6条数据dump下来进⾏查看, 发现第四条数据中有不同内容

发现途径

09

题⽬9-Path To Glory 2 

总结是事后对某一阶段的工作或某项工作的完成情况,包括取得的成绩、存在的问题及得到的经验和教训加以回顾和分析,为今后的工作提供帮助和借鉴。

根据前⾯题⽬内容可知,BitTorrent⽂件是通过web下载的,⽽且进程中发现有chrome进程,转存该⽂ 件进⾏查看

使⽤Navicat打开数据库查看

并未发现flag信息 ,但发现该种⼦⽂件来源于—个mail地址

通过关键字查找⼀下镜像中内容

由于查找内容过⼤, 将查找结果写⼊txt查看

查找发现两个⽤户名 rickypinky@mail.com rickopicko@mail.com

继续查找两个⽤户有没有可疑⾏为

分析发现rickopicko@mail.com⽤户内存⽂件中包含—部分类似邮件源数据字符, 猜测 e0wumo+6qbbc5zrnw7kk@guerrillamail.comcn为hack邮箱, 继续进⾏查找

发现原数据包下有—串字符, 猜测为flag, 尝试发现正确。

10

题⽬10-Bit 4 Bit 

题⽬要求查找hack的⽐特币地址

根据题⽬提示, 尝试直接查找ransomware

发现信息

1MmpEmebJkqXG8nQv4cjJSmxZQFVmFo63M

看⼤佬⽂章还有另—种⽅式, 将勒索病毒的进程进⾏转存, 然后使⽤ILSpy进⾏反编译分析可以查找到

11

题⽬11-Graphic's For The Weak 

根据题⽬所说,恶意软件的图形存在问题, 先将进程进⾏转存

转存出来为exe,binwalk查看—下

分离图⽚

12

题⽬12-Recovery 

总结是事后对某一阶段的工作或某项工作的完成情况,包括取得的成绩、存在的问题及得到的经验和教训加以回顾和分析,为今后的工作提供帮助和借鉴。

题⽬要求恢复⽂件,需要加密⽂件的密码

通过ILSpy得知密码⻓度为15,格式为:computerName + "-" + userName + " " + password

在上⾯已经找到computerName和userName,进⾏全局搜索

但由于.NET字符串类使⽤UTF16进⾏编码 ,所以strings需要加上-e b 或者 -e l参数

先导出3720进程 ,在进⾏搜索

01

题⽬13-Closure 

题⽬要求解密⽂件

已知勒索病毒,直接上沙箱进⾏查看

回想前⾯解出的图⽚存在$ucyLocker,搜索发现是开源Hidden Tear勒索软件的变种, 找到解密器

https://www.bleepingcomputer.com/download/hidden-tear-decrypter/

提取之前看到的flag.txt⽂件

查看⽂件内容

发现只有前⼏个字节有内容,提取前⼏个字节,并重命名

使⽤解密⼯具对其进⾏解密,得到结果


参考:

https://blog.csdn.net/Nancy523/article/details/125786459

https://blog.csdn.net/qq_38626043/article/details/128102509 https://otterctf.com/



本篇文章来源于微信公众号:卓识网安
分享