首页 > 系统相关 >OtterCTF-内存取证

OtterCTF-内存取证

时间:2024-11-17 09:07:42浏览次数:1  
标签:profile 取证 Win7SP1x64 vol py -- flag 内存 OtterCTF

OtterCTF

1 - What the password?

mimikatz一把梭了

password :MortyIsReallyAnOtter

2 - General Info

```plain Let's start easy - whats the PC's name and IP address? 让我们从简单开始 - PC 的名称和 IP 地址是什么? ```

vol.py -f OtterCTF.vmem --profile=Win7SP1x64 netscan

找到ip

上题的PC名称就是答案

3 - Play Time

```plain Rick just loves to play some good old videogames. can you tell which game is he playing? whats the IP address of the server? Rick 只是喜欢玩一些不错的旧电子游戏。 你能分辨出他在玩哪个游戏吗? 服务器的IP地址是多少? ```

用pslist查看进程

可以过滤一下产看ip

ip:77.102.199.102

4 - Name Game

```plain We know that the account was logged in to a channel called Lunar-3. what is the account name? 我们知道该帐户已登录到一个名为 Lunar-3 的频道。 帐户名称是什么? ```

先导出来这个应用

再strings梭

5 - Name Game 2

```plain From a little research we found that the username of the logged on character is always after this signature: 0x64 0x??{6-8} 0x40 0x06 0x??{18} 0x5a 0x0c 0x00{2} What's rick's character's name? format: CTF{...} 通过一些研究,我们发现登录字符的用户名始终在此签名之后:0x64 0x??{6-8} 0x40 0x06 0x??{18} 0x5a 0x0c 0x00{2} 瑞克的角色叫什么名字?格式: CTF{...} ```

把上题的文件拖到010

M0rtyL0L

6 - Silly Rick

```plain Silly rick always forgets his email's password, so he uses a Stored Password Services online to store his password. He always copy and paste the password so he will not get it wrong. whats rick's email password? 傻瑞克总是忘记他的电子邮件密码,所以他使用在线存储的密码服务来存储他的密码。他总是复制并粘贴密码,这样他就不会弄错密码。Rick 的电子邮件密码是多少? ```

clipbord梭了

7 - Hide And Seek

```plain The reason that we took rick's PC memory dump is because there was a malware infection. Please find the malware process name (including the extension) 我们采取 rick 的 PC 内存转储的原因是存在恶意软件感染。请找到恶意软件进程名称(包括扩展名) ```

pslist查看进程

恶意程序是vmware-tray.exe

8 - Path To Glory

```plain How did the malware got to rick's PC? It must be one of rick old illegal habits... 恶意软件是如何进入 Rick 的 PC 的?这一定是里克旧的非法习惯之一...... ```

找出恶意程序

再导出,strings一下

9 - Path To Glory 2

```plain Continue the search after the way that malware got in. 在恶意软件进入的方式之后继续搜索。 ```

这道题目依旧不知道干啥,没事接着翻大佬的wp。

大佬说先把所有的chrome浏览器进程转储下来,这里注意一定要建立一个目录,把chrome储存的内容都放在目录中,要不容易混乱。

查找进程,发现Rick And Morty上面是好几个chrome程序。

vol.py -f /root/Desktop/OtterCTF.vmem --profile=Win7SP1x64 pslist

把chrome.exe给dump下来具体分析。

memdump 转储进程的可寻址内存

vol.py -f /root/Desktop/OtterCTF.vmem --profile=Win7SP1x64 memdump -n chrome.exe  -D /root/Desktop/dump/chrome

使用strings命令配合grep命令查找Rick And Morty相关数据,这里查找的是Rick And Morty下载中相关的数据。

strings ./chrome/* | grep 'Rick And Morty season 1 download.exe' -C 10

最终我们找到了flag:Hum@n_I5_Th3_Weak3s7_Link_In_Th3_Ch@in 没有Year咱也不知道为什么,在此过程中我们还发现了Flag.txt应该与后面的题目有关。

CTF{Hum@n_I5_Th3_Weak3s7_Link_In_Th3_Ch@in}

10 - Bit 4 Bit

```plain We've found out that the malware is a ransomware. Find the attacker's bitcoin address. 我们发现该恶意软件是一种勒索软件。找到攻击者的比特币地址。 ```

题目告诉我们这是个勒索软件,要我们查找比特币地址,其实就是说请逆向软件,并分析。

我们先把勒索软件程序dump下来,查找此勒索软件的进程。

vol.py -f /root/Desktop/OtterCTF.vmem --profile=Win7SP1x64 pstree

procdump 进程转储到一个可执行文件示例

vol.py -f /root/Desktop/OtterCTF.vmem --profile=Win7SP1x64 procdump -p 3720 -D /root/Desktop/dump

然后使用ILSpy或者IDE进行反编译,这里我是用ILSpy,直接搜索address,就可发现出flag.

发现大佬们直接根据题目中的提示“ransomware”,就直接找出flag。(不得不说太牛了)

strings -e l /root/Desktop/OtterCTF.vmem | grep -i -A 5 "ransomware"

flag:CTF{1MmpEmebJkqXG8nQv4cjJSmxZQFVmFo63M}

11 - Graphic's For The Weak

```plain There's something fishy in the malware's graphics. 恶意软件的图形中有一些可疑之处。 ```

把恶意程序文件分离一下

12 - Recovery

```plain Rick got to have his files recovered! What is the random password used to encrypt the files? Rick 必须恢复他的文件!用于加密文件的随机密码是什么? ```

查看一下有哪些用户名

再strings一下

13 - Closure

```plain Now that you extracted the password from the memory, could you decrypt rick's files? 现在您从内存中提取了密码,您可以解密 rick 的文件吗? ```

上题strings看到桌面上有flag.txt

提取出来

上题知道了密钥

HiddenTear解密

通过软件我知道后缀名是.locked

再分离一下

flag{b1c16538-33f1-56b1-e620-b3a3f403a7f4}

DASCTF

baby_misc

查看文件,在导出这个文件
vol.py -f baby_misc.raw --profile=Win7SP1x64 filescan | grep txt

再导出压缩包

vol.py -f baby_misc.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003e7d2650 -D ./..

查看一下进程导出这个文件

vol.py -f baby_misc.raw --profile=Win7SP1x64 memdump -p 1516 -D ./.. 

用gimp查看

132424464

用windowns模块查看

vol.py -f baby_misc.raw --profile=Win7SP1x64 windows | grep 132424464

16进制得到解压密码

^&G12BDd

得到flag

flag{fba99a87-2278-f175-5055-a47f5773c131}

[湖湘杯 2021]某取证题

我们先导出这张图片
vol.py -f PC11.raw --profile=Win7SP1x64 filescan | grep jpg
vol.py -f PC11.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000007e353630 -D ./..

得到一部分flag

查看一下ie浏览器的记录,太多了,就过滤一下

vol.py -f PC11.raw --profile=Win7SP1x64 iehistory | grep zip

在计算机中没有找到zip文件,就在进程中看到了Wireshark.exe

导出来

vol.py -f PC11.raw --profile=Win7SP1x64 memdump -p 1096 -D ./..

文件分离找到了压缩包

需要明文攻击

./bkcrack -L target.zip

太慢了

./bkcrack -C target.zip -c t.jpg -x 0 ffd8ffe000104a46494600

更改一下密码

./bkcrack -C target.zip -k b0a90b36 14dd97b9 f5d648cf -U flag.zip 123456

over

flag{2911364c-7f0c-4d37-b92c-accaf9d1de2d}

[鹏城杯 2022]简单取证

查看信息,找文件
vol.py -f file.raw imageinfo
vol.py -f file.raw --profile=WinXPSP2x86 filescan | grep jpg

导出来

vol.py -f file.raw --profile=WinXPSP2x86 dumpfiles -Q 0x0000000002325028 -D ./..

去010显示是BASE64,赛博厨子一把梭了

压缩包导出来

找到密码

vol.py -f file.raw --profile=WinXPSP2x86 cmdscan

解压出来是坐标,用脚本

from PIL import Image

im = Image.new("RGB", (350, 350), (0, 0, 0))

with open("flag.txt", "r") as f:
    r = f.read()

lst = r.split("\n")
for i in lst:
    x = int(i.split(" ")[0])
    y = int(i.split(" ")[1])
    im.putpixel((x, y), (255, 255, 255))

im.save("flag.png")

flag{a6b93e36-f097-11ec-a9b2-5254002d2b31}

标签:profile,取证,Win7SP1x64,vol,py,--,flag,内存,OtterCTF
From: https://www.cnblogs.com/WTT001/p/18550246

相关文章

  • 2022鹏城杯-简单取证
    2022鹏城杯-简单取证[鹏城杯2022]简单取证查看信息,找文件vol.py-ffile.rawimageinfovol.py-ffile.raw--profile=WinXPSP2x86filescan|grepjpg导出来vol.py-ffile.raw--profile=WinXPSP2x86dumpfiles-Q0x0000000002325028-D./..去010显示是BASE64,赛博厨子一把梭......
  • 数据在内存中的存储
    1.整数在内存中的存储:整数的2进制表⽰⽅法有三种,即原码、反码和补码有符号的整数,三种表⽰⽅法均有符号位和数值位两部分,符号位都是⽤0表⽰“正”,⽤1表⽰“负”,最⾼位的⼀位是被当做符号位,剩余的都是数值位。正整数的原、反、补码都相同。负整数的三......
  • 轻松理解操作系统 - 图文:Linux内核虚拟内存的基石是什么?
    第一大模块:一文串联文件系统模块上期文章中,我们了解了 Linux内存管理模块 的其中一大功能:内核虚拟内存管理。内核的虚拟内存是怎么管理的?内核虚拟内存的管理是用户程序创建进程和执行各种任务的基础。没有它,我们就无法正常使用系统。但,虚拟内存终究是要落到物理内存里面的......
  • GC优化:栈内存、span、NativeMemory、指针、池化内存 笔记
    stackalloc使用栈内存,减少GC压力varwordMatchCounts=stackallocfloat[wordCount];SpanSpan支持reinterpret_cast的理念,即可以将Span强制转换为SpanSpan支持reinterpret_cast的理念,即可以将Span强制转换为Span(其中,Span中的索引0映射到Span的前四个字节......
  • delphi 新版内存表 FDMemTable
    c++builderXE官方demo最全60多个http://community.embarcadero.com/blogs?view=entry&id=8761  FireDAC.Comp.Client 用好FDMemTable代替之前的ClientDataSet,以前ClientDataSet内存表转换太繁琐了步骤。 TClientDataSet*cds=newTClientDataSet(this);  DataSetP......
  • 中科蓝讯内存COM区和Bank区:【图文讲解】
    中科蓝讯芯片采用最近比较流行的RISC-V(32位)开源内核架构+国产RT-Thread操作系统. 不过从代码上来看, 操作系统代码已经被封装到库中,一般用户可以不用涉及操作系统代码,降低了开发难度.中科蓝讯芯片 "冯·诺依曼结构",即代码与数据的统一编址.框架结构大致如下:......
  • C 语言的内存管理
    目录1.简介2.void指针3.malloc()4.free()5.calloc()6.realloc()7.restrict说明符8.memcpy()9.memmove()10.memcmp()1.简介C语言的内存管理,分成两部分。一部分是系统管理的,另一部分是用户手动管理的。系统管理的内存,主要是函数内部的变量(局部变量)。这部分变量......
  • DDR内存基础知识和带宽测试
    一、DDR基础知识1.几个频率(1)核心频率:真实运行频率。(2)倍增系数:DDR通过数据预取技术放大速率,每代ddr倍率是固定的,ddr=2,ddr2=4,ddr3=8,ddr4=8,ddr5=16(3)有效频率;厂商标注的频率,可以理解为数据传输速率。厂商也想逐步淡化其它频率的概念,只让我们记住有效频率。其实......
  • JVM内存以及垃圾回收
    JVM基本概念线程JVM内存区域程序计数器(线程私有)虚拟机栈(线程私有)本地方法区(线程私有)堆(Heap-线程共享)-运行时数据区方法区/永久代(线程共享)JVM运行时内存新生代Eden区ServivorFromServivorToMinorGC的过程(复制->清空->互换)eden、ServivorFrom复制到ServivorTo,年龄+1清空......
  • 【C语言指南】C语言内存管理 深度解析
           ......