CTF学习交流群 第六期writeup大放送

WriteUp 5年前 (2020) admin
1,227 0 0

前言

CTF学习交流群(群号 473831530)日前已关闭入群,现公布第6期题目的writeup,感谢札克利师傅、七友师傅、Processor师傅提供的题目。第7期题目将在6月份的某一天开放,届时将开放入群。


札克利的BrainOverFlow

wp作者:札克利
https://www.bilibili.com/video/BV1Hv411z75h
(也可点击最底部的“原文链接”。)

CTF学习交流群 第六期writeup大放送

(pcat内心吐槽:一个wp视频都可以剪辑到31分钟多,膜拜。多给札师傅投币,三连走起。)

本游戏未完待续,敬请期待Vol2。


七友的etl

wp作者:七友
拿到题目,发现是一个etl文件,对windows有经验的同学很快就可以发现这是windows netsh中的trace功能捕获的数据包,要分析的话我们先要把它转化为pcap格式,然后再用wireshark分析,我们可以使用微软的windows message analyzer,不过还有更快的,用微软这个项目:https://github.com/microsoft/etl2pcapng

转换

etl2pcapng.exe ctf.etl ctf.pcap

转换之后用wireshark打开,数据包不多,发现有多个SMB协议的数据包,其中发现了一个通过SMB复制了flag.zip

CTF学习交流群 第六期writeup大放送

flag.zip提取出来,发现有多个flag,一个一个试显然不太现实。

CTF学习交流群 第六期writeup大放送

回到数据包中发现也有SMB登陆时候的数据

CTF学习交流群 第六期writeup大放送

猜测应该是从数据包中提取Net-NTLM hash,然后用提取出来的flag.zip爆破。Net-NTLM hash的格式为:username::domain:challenge:HMAC-MD5:blob,然后我们可以从数据包中逐个提取出来。

username为:administrator,domain为空

CTF学习交流群 第六期writeup大放送

challenge为:8b1ca28f73d4de6b

CTF学习交流群 第六期writeup大放送

HMAC-MD5也就是数据包中的NTProofStr1c4d7b101dabb5d9efccce3d6f9d9075

CTF学习交流群 第六期writeup大放送

blob就是数据包中Response去掉NTProofStr的后半部分:

0101000000000000c6a7b132cde7d5012a4bfb2ba66158e90000000002000a005100490059004f00550001001e00570049004e002d0051004600500048004a0053004d0031004c0037004700040012007100690079006f0075002e0063006f006d0003003200570049004e002d0051004600500048004a0053004d0031004c00370047002e007100690079006f0075002e0063006f006d00050012007100690079006f0075002e0063006f006d0007000800c6a7b132cde7d5010600040002000000080030003000000000000000010000000020000060c22a597a1da37d0ad6f1c6e64f9cdf757a4377b789ff764b727dfb87e971080a001000000000000000000000000000000000000900280063006900660073002f003100390032002e003100360038002e003100340031002e003100340035000000000000000000

CTF学习交流群 第六期writeup大放送

然后可以构造出完整的Net-NTLM hash,用在数据包中发现字典爆破即可

Net-NTLM hash

administrator:::8b1ca28f73d4de6b:1c4d7b101dabb5d9efccce3d6f9d9075:0101000000000000c6a7b132cde7d5012a4bfb2ba66158e90000000002000a005100490059004f00550001001e00570049004e002d0051004600500048004a0053004d0031004c0037004700040012007100690079006f0075002e0063006f006d0003003200570049004e002d0051004600500048004a0053004d0031004c00370047002e007100690079006f0075002e0063006f006d00050012007100690079006f0075002e0063006f006d0007000800c6a7b132cde7d5010600040002000000080030003000000000000000010000000020000060c22a597a1da37d0ad6f1c6e64f9cdf757a4377b789ff764b727dfb87e971080a001000000000000000000000000000000000000900280063006900660073002f003100390032002e003100360038002e003100340031002e003100340035000000000000000000

Net-NTLM hash我们可以用hashcat爆破,flag不到1秒出来了:

hashcat64.exe -m 5600 administrator:::8b1ca28f73d4de6b:1c4d7b101dabb5d9efccce3d6f9d9075:0101000000000000c6a7b132cde7d5012a4bfb2ba66158e90000000002000a005100490059004f00550001001e00570049004e002d0051004600500048004a0053004d0031004c0037004700040012007100690079006f0075002e0063006f006d0003003200570049004e002d0051004600500048004a0053004d0031004c00370047002e007100690079006f0075002e0063006f006d00050012007100690079006f0075002e0063006f006d0007000800c6a7b132cde7d5010600040002000000080030003000000000000000010000000020000060c22a597a1da37d0ad6f1c6e64f9cdf757a4377b789ff764b727dfb87e971080a001000000000000000000000000000000000000900280063006900660073002f003100390032002e003100360038002e003100340031002e003100340035000000000000000000 ./flag.txt --force

CTF学习交流群 第六期writeup大放送


Processor的life_or_flag

wp作者:天河
整个文件通过逆向还原流程,首先从flag文件中读取二十个字符,而后在400AAC算MD5放在V6中

CTF学习交流群 第六期writeup大放送

在402358 4024dd上进行两次check,当返回值为1时退出。
402358这个函数是类似于一个约束条件。

CTF学习交流群 第六期writeup大放送

对flag中的四个字节做出了约束,4024DD函数中对输入进行简单处理,最终比较在堆栈上定义的数据。

CTF学习交流群 第六期writeup大放送

最后在以下部分对md5进行校验。


CTF学习交流群 第六期writeup大放送

通过爆破即可解出,当同一字节有多个满足条件的值可通过计算hash 确定最终结果。

flag_encode=[204,110,95,51,61,47,118,57,87,50,115,228,86,47,49,37,25,118,31,123]
print len(flag_encode)
def deal(a):
    s=a&3
    if s==1:
        a=a-2
    if s==2:
        a=(a*2)&0xff
    if s==3:
        a=a/2
    if s==0:
        a=a+2
    return a
s=[]
for i in range(20):
    z=[]
    for j in range(128):
        k=deal(j)
        if k==flag_encode[i]:
            z.append(j)
    s.append(z)
print s
dd=s[5]
ddd=s[9]
dddd=s[13]
ddddd=s[16]
for v2 in dd:
    for v3 in ddd:
        for v4 in dddd:
            for v5 in ddddd:
                if 9 * v3 + 6 * v2 + 3 * v4 + 8 * v5 == 1281 and 2 * v2 + 11 * v3 + 22 * v4 + 3 * v5 == 1857 and 3 * v3 + 7 * v2 + 9 * v4 + 4 * v5 == 1132 and 19 * v3 + 11 * v2 + 20 * v4 + v5 == 2482:
                    print v2,v3,v4,v5
                    a=[]
                    a.append(v2)
                    s[5]=a
                    a=[]
                    a.append(v3)
                    s[9]=a
                    a=[]
                    a.append(v4)
                    s[13]=a
                    a=[]
                    a.append(v5)
                    s[16]=a
print s

z=""
for i in s:
    if len(i)>1:
        z+="*"
    else:
        for j in i:
            z+=chr(j)

print z


第7期预告

札克利的BrainOverFlow Vol2:

CTF学习交流群 第六期writeup大放送

脱离了脑海中的幻境,天河一行人发现自己已经处于巨大的研究设施的核心,如何逃脱警戒重重的BOF设施,摆脱AI的追兵,成了他们目前最大的难题,这座设施中似乎隐藏着更多的秘密,神秘组织Charon似乎也已经察觉,巨大的阴谋即将浮出水面。
尽请期待Vol.2,崭新的游戏引擎,更加丰富的人物设定,以及更多的挑战等着你~


ps. CTF学习交流群跟ChaMd5安全团队无关,本文乃投稿。

end


ChaMd5 ctf组 长期招新

尤其是crypto+reverse+pwn+合约的大佬

欢迎联系[email protected]



CTF学习交流群 第六期writeup大放送

原文始发于微信公众号(ChaMd5安全团队):CTF学习交流群 第六期writeup大放送

版权声明:admin 发表于 2020年5月31日 上午9:25。
转载请注明:CTF学习交流群 第六期writeup大放送 | CTF导航

相关文章

暂无评论

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