misc2021 极客大挑战(部分)
Posted woodwhale
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了misc2021 极客大挑战(部分)相关的知识,希望对你有一定的参考价值。
【misc】2021 极客大挑战(部分)
1、今天有被破防吗?
0x1
最早上的一批题目,当时没什么思路。后来pwn神在群里提到了RGB,瞬间懂了!
参考链接:
0x2
下载附件得到一个很长的txt文本,其中每一行都是三个数字。如果知道是RGB就好处理了。
0x3
注意到一共1166400行,那么就是1080*1080的规格
简单的python脚本处理一下图片
from PIL import Image
res = []
with open("./ans.txt","r") as f :
res = f.readlines()
for i in range(len(res)):
res[i] = res[i].strip("\\n")
print(len(res))
x = 1080
y = 1080
im = Image.new("RGB",(y,x))
leng = len(res)
count = 0
for i in range(x):
for j in range(y):
print(f"time --> count")
rgb = res[count].split(' ')
im.putpixel((i,j),(int(rgb[0],16),int(rgb[1],16),int(rgb[2],16)))
count+=1
# im.show()
im.save("./flag.png")
得到一个被打乱的图片
可以看到有flag的块,这里队友用python分割了每一块图片,一共729块,那么每一块就是256*256
之后先用这些拼图碎片拼一张图片
montage *jpg -tile 27x27 -geometry 256x256+0+0 flag.jpg
得到一张分辨率更高的图片
对这张jpg图片进行gaps修复
得到flag
0x4
这里算是后话,其实这一题是队友用ppt将带有文字的图片拼起来的,我只是复盘了gaps的方法。
至于为什么我要用gaps来复线呢?因为大家的gaps都出不来,我要证明gaps的含金量!(bushi
后来发现队友gaps出不来是因为,我用的是分割的碎片出来的jpg之后用montage拼接得到的,像素很高,gaps更好识别。
这个是拼的:
这个是python脚本出来的:
这么看起来还是ppt大法好!
2、这是什么命令
0x1
简单的bash命令的逆向(可以这么说吧?)
首先cat一张图片,进行两次base64加密,然后tac反向,然后nl标号,然后对2号位sort排序,然后将这段内容写入flag.txt中
之后删除flag.png,并且将这个web文件夹用php挂在2333端口
0x2
curl下载一下flag.txt
0x3
注意到base64加密两次之后用了nl标号,那么我们按照标号逆向排序就是cat之后base64两次的结果,之后base64_decode两次即可。
简单的python3逆向处理一下
import base64
lines = []
with open ("./flag.txt","r") as f:
lines = f.readlines()
for line in lines:
line = line.replace("\\n","")
lines.sort(reverse=True)
img_base64 = ""
for line in lines:
line = line.replace("\\n","")
line = line.split("\\t")[1]
img_base64 += line
img_base64 = base64.b64decode(img_base64)
# print(img_base64)
img_base64 = base64.b64decode(img_base64)
with open("./flag.png","wb") as f:
f.write(img_base64)
得到flag.png
注意Every0ne不是One,当时被这个卡住了就离谱。
3、SGA Character
0x1
文件是一张图片
0x2
谷歌搜索关键词:SGA minecraft wiki
发现这个语言是伏魔台出现的
直接开始翻译
0x3
翻译了大概20个词,发现是一句话,直接谷歌,搜到了这个wiki
发现这个和解密后的单词一样,于是直接从后面开始解密了
flag是amazeing game的样式,这里我也忘了。
打上SYC上交就过了。
4、每日一溜
0x1
基础的流量包misc了
0x2
wireshark打开流量包,在tcp流中看到类似png的东西
直接导出
binwakl发现有zip包,导出
0x3
zip中一个1.txt,打开发现一个长的像base的东西
有两行,第一行base64解开乱码,第二行解码得到,一个自己写的base64表,直接用这个表解开上面那段
get flag
5、三叶草聚会
0x1
比较有意思的题目了,用过ssh配置git的应该懂一点。我在做题的时候也是在谷歌东拼西凑出来的。
可以先看看这几篇博文,有助于我们下面的解题:
OPENSSH PRIVATE KEY转换为RSA PRIVATE KEY
0x2
到这里正式开始,首先给我们的文件中有两个文件,第一个key,第二个hint。
hint告诉我们和git有关,key如下:
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAYEAx+nQ8WvPBl47fd98FS4X2G7CYorXjxpZ5zllSMGNfGFGUyRA6H7s
t7sgCD2XSix8Yi8hPjnUZOCHVRKKzX+CNc53PmWS96HUfuGXa9qfHKjfNRo51BNZuuaxE0
0zxrX6VCFnHomeVfI+mzQ817XQFdx1ZrCX8Tsfns0sI1SSf/SS9p75e3rXYwcRxAemaLGJ
whrX+Plqpqzbqnp5A1bOKaDoRRdZaOgpj9BFSVS41rUZDgGMcun9Wvm35Ke92YJ9Iq4xrU
9Cu33y7y+A/NuhswVBHC8JsXrDdfmfWAS8CfLwA578BswtuXF9ovfV7FeG87qLoUBEQgX6
sR/hXuLwiZotuTIbYbcw1O6hx3bIzKLGs3SHRUl6YuEJJVCz/Lr4hs8/nXdKh6M4rXtKxy
ijIZjbEYW3CzJM2fjZGc6AK4SLDp92snrmKazHOEXWv210T4wwI2l2Yv6f0wCNzQY8v/kC
HZ33bNxpsWyrrkdwPg8CUb21iVf5/c0/4GeCOUKzAAAFiBZKowEWSqMBAAAAB3NzaC1yc2
EAAAGBAMfp0PFrzwZeO33ffBUuF9huwmKK148aWec5ZUjBjXxhRlMkQOh+7Le7IAg9l0os
fGIvIT451GTgh1USis1/gjXOdz5lkveh1H7hl2vanxyo3zUaOdQTWbrmsRNNM8a1+lQhZx
6JnlXyPps0PNe10BXcdWawl/E7H57NLCNUkn/0kvae+Xt612MHEcQHpmixicIa1/j5aqas
26p6eQNWzimg6EUXWWjoKY/QRUlUuNa1GQ4BjHLp/Vr5t+SnvdmCfSKuMa1PQrt98u8vgP
zbobMFQRwvCbF6w3X5n1gEvAny8AOe/AbMLblxfaL31exXhvO6i6FAREIF+rEf4V7i8Ima
LbkyG2G3MNTuocd2yMyixrN0h0VJemLhCSVQs/y6+IbPP513SoejOK17SscooyGY2xGFtw
syTNn42RnOgCuEiw6fdrJ65imsxzhF1r9tdE+MMCNpdmL+n9MAjc0GPL/5Ah2d92zcabFs
q65HcD4PAlG9tYlX+f3NP+BngjlCswAAAAMBAAEAAAGBAKoKd27iBHWmMXQfY6ugSSgPDc
hD0JYoE9BZQY1hFLd3Bhox/APF8hNVVymrOcQdkq7w55XGGqKzWGlEHEwu6NJbi5HHU/rN
67EAsYtLqYr3GORSKl35F5miH3wLbr7WitaEkvGmnMb+BcJ97EKOoy/1FOcDzjmh0IOCgM
iMZw/vOBINpqchFZNlr/bNiv4CBOrVal6bx9t9rFqVUdlFPJasBuS9t49D6hYpUMXPCmmW
IHmJV61m2dlIDuKuywz3r3ZNTvgRmpbreCuvqC7mTLLV+md1kBdzsvHaiJbsNGsWepAl0o
Rc90tpXx2VZwbmQAxTQxAJVoF9aY6tUa3Fo2TND+s6UAoBz6HVjcIAupxvDGNc/qZCFgy+
xMgYWrnXFKVXFYX0z7m7ke+yRaBePnyh/gHtMQDpULx0yC/xm20pQBjII/bUgdICiDs66m
0pIm7Ducmceeja8ngjyRm/Z/2Tl7cpBFbZwQy+HKcCvmPI5r8VGbTw915gSZ6KM9/AAQAA
AMEA1h8YzxhvsiM/h2o98Vjn32KT3YeMEmkli92SFzqxWAi/IF0nUuAzY/BbIfBM/XS7mC
gIyP55fqugt7avw6g5vwtBf1msUkcbU3YNGYiHEmD+y2OIxHs+QFvjAZlKa0/KYeWWb+Fy
s8OztW8wS/pm/M6HL53gbh84gCxpyFmK2AyG+Ul2RralVjbildBPUMbzPSZ7SNwLATCuo5
jkyGYyIX/shenkca4ZDvpPIA5swzTnK2ysY/htrnfRdvuIyNuIAAAAwQD2dnRQVAJavBGO
esRexNmqvBNeZ33PmbY1Ty4UiTgMwrJuaGIISnzzZMS41d15cNllPxHyMWdEggcY3Qz3if
1dxx8DfNz9kmoVPYVxyd77MjroGSnw44kLaWYkzUuggEnpqOQDOD+xwv2TiFkxs9G9z/ju
as6ttZHJJTxcG8oYZNm7hvc7Q8RvpBbddMFR/qoJbpPxsrTjlB3Noh4yhtJbGc3jQX4zCh
9woINqV+SW/e2VnKRQgbVgtcOQGuLBVzMAAADBAM+mOkCds2gT0DlusZozmvKrufNYfD69
JXmfl9VQ2IeSh3jZRXJijjM8b2dkqwTqd4mw5a61CsqToBE/vfEWJv/O/pRy1zUJB9WQj7
wvbVuuqyihv3t8TBfi1dFaZL/ufdck6W4cjgBxE8/c8vfAzNuNiYD1o/cVfEnSHxIUiGBm
5/vD3YXyGHA9xFnrqDNxEeEgqC73ZqdK7vnN0vVHRRSnQysTA/RRvUqAIxksghIEsC3ks2
rA5xQEyQfnubpmgQAAABFzeWNsb3ZlckB5ZWFoLm5ldA==
-----END OPENSSH PRIVATE KEY-----
很明显的一个rsa的私钥,但是由于openssh的更新,先在的私钥的格式都是-----BEGIN OPENSSH PRIVATE KEY-----
,而我们熟悉的是-----BEGIN RSA PRIVATE KEY-----
在网上查阅资料,找到上面给出的ssh私钥泄露的博文,通过puttygen来转换得到老版本的rsa private key
但是这篇文章中使用的指令会让openssh变为ssh2 encrypted private key,不是我们想要的,故继续查阅资料:OPENSSH PRIVATE KEY转换为RSA PRIVATE KEY
使用如下指令:
bi0x@pwnable:~/ctfworks/misc/2021geek/party$ puttygen key -o key.ppk
bi0x@pwnable:~/ctfworks/misc/2021geek/party$ puttygen key.ppk -O private-openssh -o key.pem
我们可以发现已经转为rsa格式了,那么有什么用呢?
想到之前提到了git,这里又有ssh私钥,那么查阅资料Git 远程仓库/ssh,发现可以测试登陆。
先在本地添加这个ssh私钥(我这里已经添加了一遍,所以有重复的提示),然后测试github连接
bi0x@pwnable:~/ctfworks/misc/2021geek/party$ ssh-add key.pem
bi0x@pwnable:~/ctfworks/misc/2021geek/party$ ssh -T git@github.com -i key.pem
连接成功!告诉我们ID信息SycloverParty
0x3
到这里访问github,搜索这个SycloverParty用户,发现一个仓库,告诉我们flag可能藏在cake中
我们使用git clone,并且使用ssh连接。
由于我们拥有私钥,所以有clone权限
进入文件夹中有一个fake_flag
那么想到git的更新,使用指令git show显示历史
得到true_flag
SYCH@v3_Fun_F0R_Th15_6AM3cd party!
6、EzForensics
0x1
0x2
内存取证题目,说实话第一次正式的写。
分析题目,下载附件,发现有个flag.txt
告诉我们flag由这些组成,一步一步来!
0x3
首先是top域名网站,这个我第一次做的时候是先用volatility提取了chrome的dump文件然后strings grep得到的,现在复现的时候发现其实可以这样:
那么得到这个网站就是
3v1l.rigelx.top
0x4
下一步找下载文件
使用chromehistory插件没有发现任何东西
那么查看iehistory,发现有一个L0v3r.f
文件
那么这个文件就是我们需要的
0x4
查看本机的hostname
说实话这里刚开始做以为对了,在最后发现其实有问题,就是计算机名其实和hostname有大小写的区别
这里使用systeminfo插件来看,发现hostname其实是计算机名最后一位小写(之前一直以为是p0tt3r)
那么这里的hostname就是P0tt3r
0x5
到这就算卡了2天的地方了
我们都知道volatility有个hashdump的用法,可以看到用户的密码(NTML加密)
这里给出了
R1gelXxXxXx:1002:aad3b435b51404eeaad3b435b51404ee:5a98486ac9f4651e40537abc7baf8a2b:::
于是我和队友使用1个多G的彩虹表爆破,结果就是ji了
后面发现有个插件mimikatz
,可以直接导出用户名和密码
那么密码就是wuhuqifei@
0x6
得到密码和用户名之后,我们去访问这个top网站
输入用户名和密码之后得到一个wav文件。
听一遍感觉像拨号音,用dtmf2num
工具得到
10111011100000
看着也不像二进制转asicc,尝试莫斯电码
0x7
最后将得到的信息用md5加密
get flag
SYC33354bfac7e3de28de8b6598489cc7a8
以上是关于misc2021 极客大挑战(部分)的主要内容,如果未能解决你的问题,请参考以下文章