inctf Forensic复现 | Memlabs(上)

WriteUp 1年前 (2022) admin
738 0 0
volatility yyds!

自己到现在还没认真用过Vol,打算刷刷题然后系统学习一下。
(毕竟不能总是指望着用取证大师之类的吧?)

0x01 MemLabs Lab_0 | Never Too Late Mister

下载链接:Lab0

Challenge Description

My friend John is an “environmental” activist and a humanitarian. He hated the ideology of Thanos from the Avengers: Infinity War. He sucks at programming. He used too many variables while writing any program. One day, John gave me a memory dump and asked me to find out what he was doing while he took the dump. Can you figure it out for me?

我的朋友约翰是一位“环保”活动家和人道主义者。他讨厌复仇者联盟中灭霸的观点:无限战争。他编程很烂。他在编写任何程序时使用了太多变量。有一天,约翰给了我一个内存转储,并让我找出他在转储时在做什么。你能帮我弄清楚吗?

Progress

整体下来就是一个常规取证思路,先imageinfo看一下:

inctf Forensic复现 | Memlabs(上)

Vol3给出的建议是Win7SP1X86_23418,查看一下进程信息:

inctf Forensic复现 | Memlabs(上)

看到有运行过cmd.exe,查看一下历史命令行信息:

inctf Forensic复现 | Memlabs(上)

有一个可疑文件,用cmd调用python.exe,这个地方可以用consoles插件,来查看执行的命令行历史记录(扫描_CONSOLE_INFORMATION信息)

inctf Forensic复现 | Memlabs(上)

得到一串字符串335d366f5d6031767631707f

inctf Forensic复现 | Memlabs(上)

看上去是一段乱码:3]6o]`1vv1p.

如果不解密字符串的话,下一步也不知道干什么。

此时结合上面题目描述"environmental" activist环保主义者提示,应该是要查看环境变量

envars查看一下发现太多了。。。果然是个很差的技术员,在编写程序时使用了太多环境变量

不过后面有提到Thanos,尝试在环境变量里面搜一下

inctf Forensic复现 | Memlabs(上)

发现真的有,环境变量指向xor and password

先提取password

inctf Forensic复现 | Memlabs(上)

inctf Forensic复现 | Memlabs(上)

后面这串查不到啊艹,看了WP人家是查到了。。。。。。

inctf Forensic复现 | Memlabs(上)

这是第一部分:flag{you_are_good_but

剩下一部分,来处理提示中的xor,目标字符串应该是前面hex解密出的乱码

不过不清楚异或字符是啥,只能爆破了

a = "335d366f5d6031767631707f".decode("hex")
for i in range(0,255):
    b = ""
    for j in a:
        b = b + chr(ord(j) ^ i)
    print b

inctf Forensic复现 | Memlabs(上)

flag{you_are_good_but1_4m_b3tt3r}

0x02 MemLabs Lab_1 | Beginner’s Luck

下载链接:Lab1

Challenge description

My sister’s computer crashed. We were very fortunate to recover this memory dump. Your job is get all her important files from the system. From what we remember, we suddenly saw a black window pop up with some thing being executed. When the crash happened, she was trying to draw something. Thats all we remember from the time of crash.

Note : This challenge is composed of 3 flags.

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

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

Progress

Flag 1

inctf Forensic复现 | Memlabs(上)

既然有提到突然看到黑色窗口弹出,在执行一些东西,(看描述像是cmd命令行)那么我们用pslist查看一下:

inctf Forensic复现 | Memlabs(上)

确实是有cmd.exe这个进程,consoles查看命令行输出结果:

inctf Forensic复现 | Memlabs(上)

很熟悉的base64,

inctf Forensic复现 | Memlabs(上)

flag{th1s_1s_th3_1st_st4g3!!}

Flag 2

When the crash happened, she was trying to draw something.

在画画,看一下进程列表:

inctf Forensic复现 | Memlabs(上)

看名称,这个进程和画画有关,PID是2424

inctf Forensic复现 | Memlabs(上)

inctf Forensic复现 | Memlabs(上)

修改文件名后缀为data,导入GIMP

调整一下偏移量和宽高,

inctf Forensic复现 | Memlabs(上)

inctf Forensic复现 | Memlabs(上)

翻转一下就是flag

inctf Forensic复现 | Memlabs(上)

flag{Good_Boy_good_girl}

Flag 3

后来才知道,这个地方看的是WinRAR.exe进程,

inctf Forensic复现 | Memlabs(上)

看一下WinRAR.exe进程历史

inctf Forensic复现 | Memlabs(上)

看到了一个RAR压缩包:Important.rar

inctf Forensic复现 | Memlabs(上)

根据地址提取出来:

inctf Forensic复现 | Memlabs(上)

检测是rar文件类型。修改文件名解压发现需要密码:

inctf Forensic复现 | Memlabs(上)

hashdump提取

┌──(root㉿SanDieg0)-[/mnt/d/volatility_2.6_win64_standalone]
└─# ./volatility.exe -f "F:\Memlabs\lab1\Lab1.raw" --profile=Win7SP1x64 hashdump
Volatility Foundation Volatility Framework 2.6
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SmartNet:1001:aad3b435b51404eeaad3b435b51404ee:4943abb39473a6f32c11301f4987e7e0:::
HomeGroupUser$:1002:aad3b435b51404eeaad3b435b51404ee:f0fc3d257814e08fea06e63c5762ebd5:::
Alissa Simpson:1003:aad3b435b51404eeaad3b435b51404ee:f4ff64c8baac57d22f22edc681055ba6:::

hashdump提取有两个HASH,第一个是使用LANMAN算法,这种散列值非常不安全,在Vista以来的Windows系统已经不再采用LANMAN HASH。因此这个hash前会提供一个aad开头的虚拟值。

第二个HASH是我们常说的NTLM HASH,也好不到哪去。

这个地方要解密NTLM,看用户名我盲猜是最后一个f4ff64c8baac57d22f22edc681055ba6

inctf Forensic复现 | Memlabs(上)

拿解密到的字符串怎么试都不对,结果发现,不用解密,换成大写。。。(无语住了)

inctf Forensic复现 | Memlabs(上)

flag{w3ll_3rd_stage_was_easy}

0x03 MemLabs Lab_2 | A New World

下载链接:MemLabs Lab_2

Challenge description

One of the clients of our company, lost the access to his system due to an unknown error. He is supposedly a very popular “environmental” activist. As a part of the investigation, he told us that his go to applications are browsers, his password managers etc. We hope that you can dig into this memory dump and find his important stuff and give it back to us.

Note : This challenge is composed of 3 flags.

我们公司的一位客户由于未知错误而失去了对其系统的访问权限。据推测,他是一位非常受欢迎的“环保”主义者。作为调查的一部分,他告诉我们他的应用程序是浏览器、他的密码管理器等。我们希望你能深入这个内存转储并找到他的重要资料并将其还给我们。

**注意:**这个挑战由3个flag组成

Progress

Flag 1

老规矩:

inctf Forensic复现 | Memlabs(上)

根据题目描述,查看进程,重点查看浏览器和密码管理相关进程:

inctf Forensic复现 | Memlabs(上)

此外,上面还提到了环境变量,envars查看一下:

inctf Forensic复现 | Memlabs(上)

啊!这串熟悉的base64开头

inctf Forensic复现 | Memlabs(上)

flag{w3lc0m3T0$T4g3_!_Of_L4B_2}

Flag 2

回到浏览器,提取浏览器历史记录,volatility是不自带这个插件的

https://github.com/superponible/volatility-plugins

(255条消息) volatility2各类外部插件使用简介_Blus.King的博客-CSDN博客_volatility插件

注意: --plugins后写清插件位置,比如这样:

┌──(root㉿SanDieg0)-[/mnt/d/volatility-master]
└─# python2 vol.py  --plugins=./volatility/plugins/ -f "/mnt/f/Memlabs/lab2/Lab2.raw" --profile=Win7SP1x64 chromehistory

inctf Forensic复现 | Memlabs(上)

发现了一个下载链接,

inctf Forensic复现 | Memlabs(上)

<br />inctf Forensic复现 | Memlabs(上)

上个实验第三部分flag:flag{w3ll_3rd_stage_was_easy}

inctf Forensic复现 | Memlabs(上)

inctf Forensic复现 | Memlabs(上)

flag{oK_So_Now_St4g3_3_is_DoNE!!}

Flag 3

还有一个密码管理器进程KeePass.exe没有用到

KeePass会存储密码在以.kdbx为后缀的数据库中,并用主密码(master password)进行管理

inctf Forensic复现 | Memlabs(上)

inctf Forensic复现 | Memlabs(上)

filescan并进行筛选:

inctf Forensic复现 | Memlabs(上)

inctf Forensic复现 | Memlabs(上)

Hidden.kdbx转储出来后,找密码,文件里面有一张叫Password.png的图片

inctf Forensic复现 | Memlabs(上)

密码右下角:P4SSw0rd_123

有了密码后,在KeePass里面打开这个数据库:

inctf Forensic复现 | Memlabs(上)

右键直接复制出来密码:flag{w0w_th1s_1s_Th3_SeC0nDST4g3!!}

(咦?这个才是第二个flag吗?没事,我懒得改了:)

0x04 MemLabs Lab 3 | The Evil’s Den

下载链接:MemLabs Lab 3

Challenge Descryption

A malicious script encrypted a very secret piece of information I had on my system. Can you recover the information for me please?

Note-1 : This challenge is composed of only 1 flag. The flag split into 2 parts.

Note-2 : You’ll need the first half of the flag to get the second.

You will need this additional tool to solve the challenge,

sudo apt install steghide

The flag format for this lab is: inctf{s0me_l33t_Str1ng}

恶意脚本加密了我系统上的一条非常机密的信息。你能为我恢复信息吗?

**注意-1:**本次挑战只有一个flag,但被分为两个部分。

**注意-2:**你需要得到第一部分的flag才能得到第二部分flag。

Progress

The first part of the flag:

懂得都懂:

inctf Forensic复现 | Memlabs(上)

题目描述说有恶意脚本,看一下cmd的记录:

inctf Forensic复现 | Memlabs(上)

确实有一个叫恶意脚本的py脚本?还有一个vip.txt

inctf Forensic复现 | Memlabs(上)

evilscript.py.py:

import sys
import string

def xor(s):

    a = ''.join(chr(ord(i)^3) for i in s)
    return a

def encoder(x):

    return x.encode("base64")

if __name__ == "__main__":

    f = open("C:\\Users\\hello\\Desktop\\vip.txt", "w")

    arr = sys.argv[1]

    arr = encoder(xor(arr))

    f.write(arr)

    f.close()

vip.txt:

inctf Forensic复现 | Memlabs(上)

呃。。。

看一下脚本过程比较简单,先用一个字符将vip.txt的内容进行异或,然后base64加密一遍,解密也很简单,把过程逆过来就好:

s = 'am1gd2V4M20wXGs3b2U='
d = s.decode('base64')
a = ''.join(chr(ord(i)^3) for i in d)

print a

执行结果:inctf{0n3_h4lf,这是第一部分

The second part of the flag

按照题目描述,还会用到steghide,扫一下图片文件:

inctf Forensic复现 | Memlabs(上)

.jpg都是些临时文件,.jpeg这个可能性最大,而且名字就很可疑?导出来看看:

inctf Forensic复现 | Memlabs(上)inctf Forensic复现 | Memlabs(上)上面说,有了第一部分的flag才能获取到第二部分,那提示很明显了,密码应该就是第一部分flag

inctf Forensic复现 | Memlabs(上)

_1s_n0t_3n0ugh}

综上,flag为:inctf{0n3_h4lf_1s_n0t_3n0ugh}

 

 

原文始发于奇安信社区(AndyNoel):inctf Forensic复现 | Memlabs(上)

版权声明:admin 发表于 2022年11月8日 下午8:53。
转载请注明:inctf Forensic复现 | Memlabs(上) | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...