GeekChallenge2023-misc

窃听风云

一道很新颖的shell分析题

image-20231031210950702

打开来就这么几个包人都给我看傻了

image-20231031211100265

有提示密码在linux下的rockyou.txt里

image-20231031211143952

发现了可以的请求头,去网上搜了一下NTLMSSP流量解密,找到一篇文章9步从pcap文件中提取并破解 NTLMv2 哈希 - 知乎 (zhihu.com)

通过ntlmssp这一字符串进行数据包筛选,获得身份验证的握手包。

找到域名和用户名

image-20231031211459426

深入查找NTLM响应部分,找到NTProofStr字段和NTLMv2的响应。

image-20231031211551277

注意,NTLMv2Response是从ntlmProofStr开始,因此从NTLMv2的响应中删除ntlmProofStr。

在Wireshark的搜索过滤器中输入ntlmssp.ntlmserverchallenge。就会发现NTLM Server Challenge字段,通常这个数据包是在NTLM_Auth数据包之前。将该值作为十六进制字符串复制到文本文档。

image-20231031211700727

将以上的所有值按以下格式保存到crackme.txt:

1
username::domain:ServerChallenge:NTproofstring:modifiedntlmv2response

得到

1
jack::WIDGETLLC:2af71b5ca7246268:2d1d24572b15fe544043431c59965d30:0101000000000000040d962b02edd901e6994147d6a34af200000000020012005700490044004700450054004c004c004300010008004400430030003100040024005700690064006700650074004c004c0043002e0049006e007400650072006e0061006c0003002e0044004300300031002e005700690064006700650074004c004c0043002e0049006e007400650072006e0061006c00050024005700690064006700650074004c004c0043002e0049006e007400650072006e0061006c0007000800040d962b02edd90106000400020000000800300030000000000000000000000000300000078cdc520910762267e40488b60032835c6a37604d1e9be3ecee58802fb5f9150a001000000000000000000000000000000000000900200048005400540050002f003100390032002e003100360038002e0030002e0031000000000000000000

然后在linux运行命令爆破

1
hashcat -m 5600 '/home/kali/Desktop/crackme1.txt' rockyou.txt

得到密码

image-20231031211950398

flag:SYC{iamjackspassword}

DEATH_N1TE

给了两个附件

image-20231101185446735

其中webp就是网站上的图片文件,只不过内存占用更少

因为killer.webp打开来是动图,所以一开始的想法就是把它转换成gif图片然后提取每帧进行拼接

找了一个在线网站WEBP转GIF - 在线转换图像文件 (aconvert.com)

然后找到一个自动拼图的软件

https://github.com/JamesHoi/PuzzleSolver

先用脚本将多张碎片拼接成一张,然后新建进行拼接

最后结果

image-20231101210820842

进行b64解密得到

image-20231102142028638

后半段flag: _14_Ki114R}

后面的MP3隐写没啥思路啊,最后发现是我没见过的msstv隐写

直接先去下载工具mmstv,然后通过手机外放给应用接受音频,最后应用就可以给你画出一张图

image-20231130142507822

得到flag前半部分SYC{H4xr0t0r

所以最后的flga是SYC{H4xr0t0r_14_Ki114R}

时代的眼泪

是一题取证的题,用取证大师打开

从用户痕迹那边找到最近访问的记录,然后找到最近打开或保存的文档,可以看到有一张jpg

image-20231130145249148

去文件分析那边查找这个bliss.jpg

image-20231130145358849

双击打开

image-20231130145415313

flag是SYC{You_defeated_me_after_22_years}

ez_smilemo

下载下来有一个win和一个游戏,游戏通关是不可能的,所以对win下手,队伍里的逆向师傅简单分析了一下游戏,觉得flag是base64编码,然后我就010打开,去搜‘=’,最后还真搜到了

image-20231130151436373

这样做有点看运气,后来了解到了UndertaleModTool这个游戏工具,用它打开.win文件然后左边那一列找到setting,在最后有一个base64的值,提取出来去解密

image-20231130151603459

sm1le_1s_@_n1ce_g@me

最后的flag:SYC{sm1le_1s_@_n1ce_g@me}

extractMe

得到一个7z文件,里面有flag文件,试了很多方法都没把、flag给爆出来,最后竟然是crc爆破,属于是经验不足了

然后去网上找了一个项目

https://github.com/theonlypwner/crc32

当然也可以自己写一个

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import binascii
import itertools
import string

crc_list = [0x8712de1d, 0x06eacbd7, 0x20a8e291, 0x31ee3074, 0x77aacf7f, 0x
35fb7c6c, 0xf978d5aa, 0x016f7a0b]
wordlist = string.printable
data_list = itertools.product(wordlist, repeat=6)
for data in data_list:
data = ''.join(data)
crc = binascii.crc32(data.encode())
if crc in crc_list:
for i in range(len(crc_list)):
if crc == crc_list[i]:
crc_list[i] = data
print(''.join(crc_list))

不过自己写的运行速度比直接用github脚本的运行速度慢好多,接下来是用脚本的解,下载脚本后改一下crc32.py中的

1
map(ord, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_@&#${}'))//改过之后的

相当于把字符集扩大了

然后直接用winrar打开题目的附件可以看到crc,之后就是根据这个crc去爆了

image-20231130154411640

image-20231130154434218

第一部分SYC{,接下来都同理,最后得到flag:SYC{cR@ck_1s_Useful_sometime$}


GeekChallenge2023-misc
http://www.qetx.top/posts/47070/
作者
Qetx.Jul.27
发布于
2023年10月31日
许可协议