VulnHub靶场学习:HA: Infinity Stones
HA: Infinity Stones
靶机下载地址: https://www.vulnhub.com/entry/ha-infinity-stones,366/
靶机说明:
Thanos thinks that if he kills half of all life in the universe, he’ll restore balance. To do so, he needs all six Infinity Stones to power his Infinity Gauntlet, which in turn will give him the ability to bend time, space, energy, and the laws of physics and reality. But the Avengers are one step ahead of Thanos this time. Avengers have hidden all the Infinity Stones all over this CTF. Help Thanos to get all the Infinity Stones and restore the balance of the universe.
This machine contains 6 Infinity Stones with Six different flags to test your skills.
Space Stone
Mind Stone
Reality Stone
Time Stone
Power Stone
Soul Stone
Each stone can be found in a different way.
ENUMERATION IS THE KEY!!!!!
Visit our website http://hackingarticles.in
运行环境:攻击机kali linux和主机 靶机HA: Infinity Stones
网络设置:均为Nat模式
目标:获得6个无限宝石的flag
首先登陆,Ubuntu的登陆界面,有两个用户

获取ip,扫端口

443端口一眼就看到了{xxxxx}这种明显的flag形式,拿到第一个宝石心灵宝石的flag
80端口:炫酷的界面,有两个按钮

Home就是当前页,Aether会跳转到一个类似答题的页面,不过没有提交按钮

有一句类似提示的话:Computers tells us Binary is the path to Reality.
二进制是通向现实的路
8080端口是jenkins服务器
试了几个无需登录的jenkins的漏洞,不过没有成功,看来还是得进到后台才行

扫目录:

images和img目录下是图片
img下单独有一张空间宝石的图片,可能是一个提示,下载下来查看代码,果然发现了第二个宝石空间宝石的flag
SPACESTONE:{74E57403424607145B9B77809DEB49D0}


wifi目录有两个文件

pwd.txt:


character应该是作者写错了,character字母
看起来是密码的提示,组成是gam+一个大写字母+两个数字+两个小写字母+2012
relity.cap:
打开后查看:

一个802.11协议的数据包,也就是说这是wifi的包,而且路径为/wifi也证实了这一点,pwd提示的密码应该就是这个wifi的密码
使用kali自带的crunch工具,根据提示构造好参数crunch 12 12 -t gam,%%@@2012

生成密码字典,然后用aircrack-ng工具破解WPA加密的wifi (aircrack-ng是一个与802.11标准的无线网络分析有关的安全软件)

破解到密码是gamA00fe2012 ,拿它去jenkins登陆页面爆破,试了常用字典没成功,后来尝试发现它是路径,
拿到了第三个宝石现实宝石的flag

REALITYSTONE:{4542E4C233F26B4FAF6B5F3FED24280C}
拿到这个flag后就没有头绪了,看了网上大牛们的做题过程,才知道那个答题页面要怎么解,
回答该页的题目,结果是F T T F T F F T,即01101001,该路径下有个hints.txt文件

BrainFuck编码(https://tool.bugku.com/brainfuck/?wafcloud=1)解码后:admin:avengers

用这个用户名和密码成功登陆进后台,Jenkins 2.176.3版本

访问/script,发现脚本控制台能执行命令

写个powershell进去,不可直接写入,需要对其中的特殊字符进行转义,不然反弹不了,
这里我使用了java base64编码(http://www.jackson-t.ca/runtime-exec-payloads.html),
想执行系统命令要构造Groovy脚本中调用cmd命令的方法(println “cmd命令”.execute().text)

之后kali开启监听,执行run,反弹shell成功:



靶机python3.6版本,执行python3 -c 'import pty;pty.spawn("/bin/bash")'建立交互式shell
发现没有权限很多文件看不了,要提权,查看版本,发现该版本存在本地提权漏洞CVE-2017-16995
但是我将编译好的exp下载到靶机上后,试了好几个文件夹,也赋予了777权限,但是都没办法运行,只能尝试别的方法

试着用用SUID提权,先尝试查找具有root权限的SUID的文件find / -perm -u=s -type f 2>/dev/null

找到一个/opt/script 像脚本一样的东西,运行这个脚本后找到了第四个宝石时间宝石的flag

在opt目录下还看到了一个kdbx文件,copy到web目录,把它下载下来


源码是一堆乱码,我没见过这种文件,百度搜了下,这是可以用KeePass打开的数据文件

用keepass2john从密钥文件中提取哈希值,然后利用john破解哈希值得到密码:princesa

输入密码就能打开morag.kdbx文件了

在FLAG里面找到了第五个宝石力量宝石的flag

Creds选项里有一串base64加密的文本

解密:morag:yondu

尝试切换到该用户:

列出用户能以sudo方式执行的所有命令,发现有ftp的root权限

sudo打开ftp后,使用 ! [linux系统命令] 在ftp服务器中可以执行系统命令

在/root下找到了final.txt文件,得到最后一个宝石灵魂宝石的flag

结束

浙公网安备 33010602011771号