2021-深育杯


misc

  • login
  • disk
  • bridge

login

文件中有一段伪加密的,zipcenop来解伪加密。
login-1.png

伪加密解压出一个文件和源文件来做明文攻击。
crc32值相同。且是从zip文件内解出的一个,在加密,与原来的zip文件做明文攻击,
login-3.png

解出来密码是qwe@123
login-2.png

每个文件只有6个字节,尝试用crc32爆破

1
2
3
4
5
1 21137233
2 4b8f7be7
3 1028c889

welc0me_shang_forctf

login-4.png
最后就是用vim -r来恢复文件
login-5.png

还有种是用bkcarck解出三个key。在用pkcrack解,未尝试
login-6.png


disk

解压出一个奇怪的文件,根据后缀分析可能会是veracrypt加密的文件。文件名其实就是键盘密码,描出来就是pvd。
zse456tfdyhnjimko0-=[;.,.vera
disk-1.jpg

在加载的驱动器中在拷出东西
一个没用的txt和一个没有后缀的文件
disk-2.png

010可以看到是7z的文件,解压出来是dos的一个分区表,可以看成是windows的一个分区,磁盘。再用7z打开分出两个img

这步可以不分开,也可以根据官方wp中是直接改名vmd来解。后续都一样的

disk-3.png

img文件是bitlocker加密的。
disk-4.png

1
2
3
bitlocker2john -i 1.Basic\ data\ partition.img

echo "$bitlocker$0$16$6c1fbe8314e64b4042110147cb1632d2$1048576$12$a0348897f591d70103000000$60$fb026c1039aec7a85c77964d9cf2b63f6261579f431dfdb675322ab91e44acab870c75a64b5722be3500b35bcee969dc59e31ffdf88c1cb3a07776fa" > hash.txt

这边用虚拟机的linux下的hashcat是有问题。新版的hashcat会检测是不是虚拟机运行。
就用windows下的hashcat,把linux下的hash.txt和字典下载下来。解出密码是abcd1234

1
2
3
4
5
6
cd /usr/share/wordlist

gzip -d rockyou.txt.gz

如果没有给他-m,应该就会都去尝试,hashcat -h的时候可以看到bitlocker的m是22100,可以加上-m 22100
hashcat.exe hash.txt rockyou.txt --show

disk-6.png

用diskgenius解开来。在回收站里发现了hint和一个很大的文件
disk-7.png

可以看到还是一个7z的文件,解出来直接用bmc来。根据提示来吧,file和fvp都出不来是什么文件
disk-8.png

disk-9.png

在把两张图拼起来
disk-10.png

还有一种用bmc-viewer-backup解的
disk-11.png

base64解出flag为rdpcache-bmc,套上flag格式


bridge

exif文件看到copyright有一串,给他解密掉得到一串字符串
brige-1.png

原图lsb,bgr通道最低位可以看到有一张png
brige-2.png

遍历像素点的时候发现,每一位的b有信息,遂提出,存为一个zip,用之前exif的密码解出一个stl的文件

1
2
3
4
5
6
7
8
9
10
11
12
from PIL import Image
im=Image.open("1.png")
width,height=im.size[0],im.size[1]
src_list=im.load()
with open("pixel.txt","w") as f:
for i in range(0,width):
for j in range(0,height):
data=hex((src_list[i,j])[2])[2:]
# print(type(data))
if(len(data)==1):
data="0"+str(data)
f.write(str(data))

brige-4.png

再回过头来看原图的结构,idat块倒数第二块没填满就进入了下一块,判断最后一块是添加进去的
brige-3.png

提出最后一个idat块,从指向的位置开始提,去掉前面的idat块标识,最后的png文件结尾不要提取,最后在存起来。脚本给他解出来,zlib解密

1
2
3
4
5
6
import zlib
data=open("tq","rb").read()
# print(zlib.decompress(data)[0:10]) b'Rar!\x1a\x07\x01\x00J\x97'
data = zlib.decompress(data)
rar = open('1.rar','wb')
rar.write(data)

brige-5.png

得到一个rar文件(flag2)”如果你不知道这是什么东西,可以去看看flag1!”,提示看解出一个没有后缀的文件。判断也是stl文件。解两个stl文件

3d文件,打开两个文件
brige-6.png

brige-7.png
拼起来得到flag

1
czzPnz-vyChYzObI5cLjuX0oo62qb2qT

flow hunter