关于USV-CTF的介绍以及下载地址如下:https://www.vulnhub.com/entry/usv-2016-v101,175/
Difficulty: Beginner/Intermediate
Instructions: The CTF is a virtual machine and has been tested in Virtual Box. It has all required drivers if you want it to run on VMware or KVM (virtio). The network interface of the virtual machine will take it`s IP settings from DHCP.
Flags: There are 7 flags that should be discovered in form of: Country_name Flag: [md5 hash]. In CTF platform of the CTF-USV competition there was a hint available for each flag, but accessing it would imply a penalty. If you need any of those hints to solve the challenge, send me a message on Twitter @gusu_oana and I will be glad to help.
下载完ova之后在VMware中打开,看到登陆界面出现Success就说明是成功的。
按照惯例先用nmap扫描端口:
开了几百个端口,我们先从熟悉的地方入手吧。分析一下:
22端口SSH,80端口HTTP,3129端口Squid(正常应该是3128),3306端口Mysql。
10000以上的端口应该都是做了端口欺骗的。21211端口vsFTP。
我们看到80端口是开放的,尝试访问:
403。查看网页源代码没发现什么特别的,用Burp抓包:
在Response看到一串很奇怪的很像Base64的字符串。把这串字符串进行Base64解码得到:
【Flag1】Croatia Flag: 0c326784214398aeb75044e9cd4c0ebb
接下来看到SSH端口打开了,尝试练一下,发现了登陆的banner:
下面有个字符串:
wDOW0gW/QssEtq5Y3nHX4XlbH/Dnz27qHFhHVpMulJSyDCvex++YCd42tx7HKGgB
在这条龙上还有几个字母:A E S E C B
尾巴上有一串xxxxx0000000xxxxxx
我们可以联想到AES的ECB加密方式,对这个字符串进行解密,密钥是xxxxx0000000xxxxxx:
【Flag2】Italy Flag: 0047449b33fbae830d833721edaef6f1
接下来看3129端口对应的Squid。网站直接打开403,如果使用代理访问呢?使用FoxyProxy插件做个代理:
然后重新访问网站:可以看到出来东西了:
使用nkito对网站进行扫描,也可以使用AWVS进行扫描:
nikto -host 192.168.235.131 -useproxy 192.168.235.131:3129
可以看到有个blog的目录,访问是一个博客:
看到blog下面有个hodor的文件夹,访问:
点一下message,发现有个zip文件下载,解压是一个hodor文件。不知道是什么类型。一个办法是使用Ultraedit打开,看到Hex是FFD8推测是jpg文件,或者是扔到Kali里面用file指令查看文件类型:
修改文件后缀名为.jpg,打开图片:
惯例Base64解码:
【Flag3】Portugal Flag: a2663b23045de56c7u96a406429f733f
在博客的最下方有篇文章要密码:
没什么线索,想办法进行爆破。我们使用CEWL根据网站生成一个字典:
cewl -w 1.txt -m 5 192.168.235.131/blog --proxy_port 3129 --proxy_host 192.168.235.131
生成字典之后就可以用Burp爆破了。这里挂上代理:
这里选上:
然后开始爆破:
爆破出来的密码是Westerosi。
【Flag4】Paraguay Flag: 4761b65f20053674657c7e6186628a29
这里还有几个关键信息:
The mother_of_dragons has a password which is in front of your eyes
She uses the Field Training Preparation for her army.
从第二句话我们可以猜测是有个FTP服务可以进去,第一句话猜测用户名是mother_of_dragons,密码是in front of your eyes。
之前我们看到FTP的端口是21211。
我们把两个文件下载了,打开:
从note.txt中我们可以获取到,博客密码就是她的儿子名字。查了一下名字应该是Drogon,Viserion,Rhaegal,于是尝试用名字进行组合,最后得出密码是RhaegalDrogonViserion。
这个博客是WordPress(http://192.168.235.131/blog/wp-admin/),用户名是mother_of_dragons,密码RhaegalDrogonViserion。
进来之后就各种翻,终于翻到了:
【Flag5】Thailand Flag: 6ad7965d1e05ca98b3efc76dbf9fd733
进来后台之后就考虑提权。将index.php的内容替换成php-reverse-shell(下载地址http://pentestmonkey.net/tools/web-shells/php-reverse-shell)。注意修改ip和端口。
保存后进行nc反弹:
查看目录,看到一个srv的不常见目录,进去之后就看到在http目录下有个reward_flag.txt,打开:
【Flag6】Mongolia Flag: 6b49c13cccd91940f09d79e142108394
还有一个可执行的winterfell_messenger。
用strings看下:
执行这个文件:
也就是说这个执行文件会读取root/message.txt。
先绕过cat这个语句看接下来会做什么。
在linux中cat所在的路径是/usr/bin,环境变量的路径是:
我们制造一个假的cat命令:
输入id:
可以看到现在是以root的权限在执行,这是一个提权工具。
在root目录下ls-al可以看到一个.flag.txt文件,将文件复制出来之后打开: