这个题本来是有提示的,buu这里没给
An otaku used VeraCrypt to encrypt his favorites.
Password: rctf
Flag format: rctf{a-zA-Z0-9_}
下载得到encrypt.vmdk
,winhex瞅一下,得到半段flag:rctf{unseCure_quick_form4t_vo1ume
,出题人还是很贴心的,怕我们看不到,重复了这么多次
用7z解压这个vmdk文件,得到0.fat,然后用VeraCrypt
挂载0.fat
挂载完后打开对应的盘,有两个文件,txt和70056639_useless_file_for_ctf_just_ignore_it.jpg
注意到jpg的图片名,和txt中的提示,回过头使用密码RCTF2019
重新挂载,注意到这是一个隐藏分区
这个隐藏分区无法直接访问,所以使用DiskGenius
找到另一半flag,当然也可以使用winhex查看,工具
→打开磁盘
→选择磁盘
最终flag:rctf{unseCure_quick_form4t_vo1ume_and_corrupted_1nner_v0lume}
拿到一个镜像文件,分析一波
python vol.py -f memory.img imageinfo
INFO : volatility.debug : Determining profile based on KDBG search...
Suggested Profile(s) : Win2003SP0x86, Win2003SP1x86, Win2003SP2x86 (Instantiated with Win2003SP2x86)
AS Layer1 : IA32PagedMemoryPae (Kernel AS)
AS Layer2 : FileAddressSpace (/home/volcano/桌面/volatility/memory.img)
PAE type : PAE
DTB : 0xe02000L
KDBG : 0x8088e3e0L
Number of Processors : 1
Image Type (Service Pack) : 1
KPCR for CPU 0 : 0xffdff000L
KUSER_SHARED_DATA : 0xffdf0000L
Image date and time : 2019-04-25 08:43:06 UTC+0000
Image local date and time : 2019-04-25 16:43:06 +0800
看一下进程:python vol.py -f memory.img --profile=Win2003SP1x86 pslist
Offset(V) Name PID PPID Thds Hnds Sess Wow64 Start Exit
---------- -------------------- ------ ------ ------ -------- ------ ------ ------------------------------ ------------------------------
0x81f8f020 System 4 0 56 319 ------ 0
0xfe2f8448 smss.exe 380 4 3 18 ------ 0 2018-12-07 16:20:54 UTC+0000
0xfe2caa60 csrss.exe 516 380 12 509 0 0 2018-12-07 16:21:00 UTC+0000
0xfe304298 winlogon.exe 580 380 25 504 0 0 2018-12-07 16:21:04 UTC+0000
0xfe2fdd88 services.exe 648 580 16 303 0 0 2018-12-07 16:21:05 UTC+0000
0xfe2e5530 lsass.exe 660 580 38 458 0 0 2018-12-07 16:21:05 UTC+0000
0xfe2f9290 vmacthlp.exe 880 648 1 26 0 0 2018-12-07 16:21:06 UTC+0000
0xfe34d658 svchost.exe 932 648 6 93 0 0 2018-12-07 16:21:07 UTC+0000
0xfde05020 svchost.exe 984 648 10 268 0 0 2018-12-07 16:21:07 UTC+0000
0xfddf4c08 svchost.exe 1040 648 10 138 0 0 2018-12-07 16:21:08 UTC+0000
0xfddeb020 svchost.exe 1072 648 15 168 0 0 2018-12-07 16:21:08 UTC+0000
0xfdde9a70 svchost.exe 1096 648 79 1271 0 0 2018-12-07 16:21:08 UTC+0000
0x81e5a7d0 spoolsv.exe 1668 648 14 151 0 0 2018-12-07 16:21:26 UTC+0000
0xfe7385e8 msdtc.exe 1700 648 16 166 0 0 2018-12-07 16:21:26 UTC+0000
0xfddb7b18 svchost.exe 1800 648 2 54 0 0 2018-12-07 16:21:27 UTC+0000
0xfddb1020 svchost.exe 1848 648 2 37 0 0 2018-12-07 16:21:27 UTC+0000
0xfdda8020 VGAuthService.e 1920 648 2 65 0 0 2018-12-07 16:21:28 UTC+0000
0xfdc6eb18 vmtoolsd.exe 300 648 8 244 0 0 2018-12-07 16:21:36 UTC+0000
0xfe3d5600 svchost.exe 484 648 16 135 0 0 2018-12-07 16:21:40 UTC+0000
0xfe3d4cb0 dllhost.exe 736 648 22 239 0 0 2018-12-07 16:21:41 UTC+0000
0xfe30ed88 dllhost.exe 1052 648 22 236 0 0 2018-12-07 16:21:42 UTC+0000
0xfdc40638 wmiprvse.exe 1368 932 9 215 0 0 2018-12-07 16:21:44 UTC+0000
0xfdc1bb18 explorer.exe 1992 1664 16 386 0 0 2018-12-07 16:21:50 UTC+0000
0xfdc1ad88 vssvc.exe 2040 648 7 112 0 0 2018-12-07 16:21:51 UTC+0000
0xfdbd3418 vmtoolsd.exe 1596 1992 6 166 0 0 2018-12-07 16:22:01 UTC+0000
0xfdbd2110 ctfmon.exe 1840 1992 1 69 0 0 2018-12-07 16:22:01 UTC+0000
0xfdbbc330 conime.exe 1792 1636 1 32 0 0 2018-12-07 16:22:16 UTC+0000
0xfdba5320 wmiprvse.exe 1128 932 8 165 0 0 2018-12-07 16:22:24 UTC+0000
0xfdb90930 wuauclt.exe 2224 1096 5 116 0 0 2018-12-07 16:22:44 UTC+0000
0xfdb6a638 DumpIt.exe 3660 1992 1 26 0 0 2019-04-25 08:43:04 UTC+0000
发现最后这个DumpIt.exe
有点可疑,把它dump下来
python vol.py -f memory.img --profile=Win2003SP1x86 memdump -p 1992 --dump-dir=./
key: Th1s_1s_K3y00000
iv: 1234567890123456
扫码得到:jfXvUoypb8p3zvmPks8kJ5Kt0vmEw0xUZyRGOicraY4=
给了一个流量包,wireshark打开
从这个位置开始,打印了一串字符串
到这里结束
字符串拼接起来得到Q1RGe0p1c3RBUzBuZ0FiMHV0UDFuZ1Awbmd9
base64解码得到CTF{JustAS0ngAb0utP1ngP0ng}
扫码得到网址
https://cn.bing.com/search?q=key%E4%B8%8D%E5%9C%A8%E8%BF%99%E9%87%8C&m=10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568&qs=n&form=QBRE&sp=-1&sc=0-38&sk=&cvid=2CE15329C18147CBA4C1CA97C8E1BB8C
直接访问是得不到flag的,这里注意到m=10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568
这一串字符,可以分割为102、 108、 97… 写脚本转换
from urllib.parse import unquote
s="10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568"
x=len(s)//2
flag=""
for i in range(x):
if len(s) != 0:
if int(s[:3])< 127:
flag += chr(int(s[:3]))
s = s[3:]
else:
flag += chr(int(s[:2]))
s = s[2:]
print(unquote(flag, 'utf-8')) #url解码一次
跑完出flag
下载得到一个gif
这六个竖杠,看起来颜色有细微的差别,用ps
打开,使用取色器查看每部分的颜色
结果如下:
8b8b61
8b8b61
8b8b70
8b8b6a
8b8b65
8b8b73
发现只有最后两位不同,把它们连起来:6161706a6573
图片这个位置有点怪
放大看
把黑的换成1,白的换成0,这块数据不大,挺容易的
00110001001
10010001100
11001101000
01101010011
01100011011
10011100000
好家伙,dat文件,前几天刚在bugku做过,可以参考我这篇博客的FileStoragedat
解出来这样一张图
然后就是根据LTE定位基站地址
,不过没找到合适的查询网站
flag{桂林电子科技大学花江校区}
得到一个流量包,用wireshark分析,追踪TCP流,挨个看
在流18这里看到一个ssc.key
,而且这里是TLS协议
再往下看,在流19发现私钥,把它保存为1.key
接下来编辑
->首选项
->protocols
->TLS
,再把1.key导入,就可以解密出内容了
再去流80追踪TLS流
0ZWZtemNxaWRvZmd0ZnFnYmFkaWNubWhvdGlvbm9iZnlubGdvenRkYXZ2aW14b2JvdGlra2Z4d2lyb3JwZmNjdXpob3BoZmRjaWVrY2p5b21lamtjZ2Zmam51bmhvcGFkdGZndG1sdA==
两段拼在一起,base64解码
import base64
f = open("1.txt","r")
txt=f.read().replace(".","")
f.close()
print(base64.b64decode(txt))
得到的结果保存在2.txt中,结合题目名,开始词频统计
f = open("2.txt","r")
txt=f.read().replace(" ","")
f.close()
d={
}
for i in txt:
d[i] = d.get(i,0)+1
ls=list(d.items())
ls.sort(key=lambda x:x[1],reverse =True)
for i in ls:
print(i[0],end="")
结果:actfplokmijnuhbygvrdxeszwq}{
所以:flag{plokmijnuhbygvrdxeszwq}