文章目录
- 1. 主机发现
- 2. 端口扫描
- 3. 服务枚举
- 4. 服务探查
- 5. 系统提权
- 6. 写在最后
靶机地址:https://download.vulnhub.com/haclabs/Deception.ova
1. 主机发现
目前只知道目标靶机在192.168.56.xx网段,通过如下的命令,看看这个网段上在线的主机。
$ nmap -sP 192.168.56.0/24
锁定靶机IP地址为192.168.56.109。
2. 端口扫描
通过下面的命令进行端口扫描。
$ sudo nmap -p- 192.168.56.109
端口比较少。
3. 服务枚举
端口比较少,直接枚举一下服务。
$ sudo nmap -p22,80 -A -sV -sT 192.168.56.109
4. 服务探查
枚举出来没啥特别的,目前知道的是80端口上运行了apache服务,并且靶机系统应该是ubuntu,直接浏览器访问一下。
是apache的默认页面,没啥好看的,直接枚举一下目录吧。
$ dirsearch -u http://192.168.56.109
又是phpmyadmin,又是wordpress,数量不多,信息量还不少,手工简单看了一下,phpmyadmin有一个登录页面。
然后在/phpmyadmin/doc/html/index.html页面下,暴露了phpmyadmin的版本信息,如下图。
wordpress下面有一个首页,里面暴露了一个用户信息。
并且在这个页面上,很多link都指向了localhost,把localhost写道/etc/hosts文件中,不过这个意义不大,因为指向的都是https://localhost。另外就是wp的登录页面。
既然有wordpress,先用wpscan扫描一下。
$ wpscan --url http://192.168.56.109/。
本来怕有遗漏,想直接从根上扫描,竟然提示貌似没有运行Wordpress,修改成从/wordpress路径扫描。
$ wpscan --url http://192.168.56.109/wordpress/ -e u
枚举出来了两个用户,以及wordpress的版本信息。直接用wpscan对这俩用户爆破一下。
$ wpscan --url http://192.168.56.109/wordpress/ -U yash -P /usr/share/wordlists/rockyou.txt
在爆破用户的过程中,咱们别闲着,既然有php页面,直接挂上dirb挂上big字典专门扫描一下php页面
$ dirb http://192.168.56.109/ /usr/share/wordlists/dirb/big.txt -X .php
显然不可能是0个啊,我们都已经扫出来了前面,缩小一下范围,只扫/phpmyadmin和/wordpress下面,顺便扫描一下.html页面。
$ dirb http://192.168.56.109/phpmyadmin/ /usr/share/wordlists/dirb/big.txt -X .php
$ dirb http://192.168.56.109/wordpress/ /usr/share/wordlists/dirb/big.txt -X .php
$ dirb http://192.168.56.109/phpmyadmin/ /usr/share/wordlists/dirb/big.txt -X .html
$ dirb http://192.168.56.109/wordpress/ /usr/share/wordlists/dirb/big.txt -X .html
这次确实扫描出来一些之前没有发现的php页面,进去看看,/phpmyadmin下面的页面都需要登录才能访问,/wordpress下面的没啥实质内容。对于.html的扫描,只在/wordpress下面有所发现,如下图。
名字,有点靶机的尿性,尤其是hint.html。手工访问看看。
这个hint页面的信息,有很大的嫌疑,这里应该是个线索,再看看另外两个页面。
这个robots页面也有些嫌疑,貌似提供一个数据,显示搜索结果,进一步看页面代码,知道了一些逻辑。
大意是通过ID查询50次?随便输入一下试试看
确实随着输入次数的增多,这个计数在减少,页面刷新后,计数清零,除此之外没发现啥。接下来看看那个homepage的API tokens是个啥,这里的homepage也不知道是wordpress的homepage还是phpmyadmin的,也或者是根目录/,都看一下吧。首先在/phpmyadmin的请求响应中带有9个token,不过都是同一个值,如下图。
除此之外,在根路径/的返回中也有一个比较有意思的信息,就是有API old0、API old1、API old2,以及API new,如下图所示。
目前这两处的token和API还不知道怎么使用,并且base64解吗也是失败的。直接把API的那几个按照编号顺序拼装到一起(API new放最后),再base64解吗试试看。
仍然失败。回到刚才wordpress密码爆破的地方,15分钟过去了,针对yash用户爆了将近36000个密码,没有结果。
用同样的方法针对haclabs用户爆一下。
$ wpscan --url http://192.168.56.109/wordpress/ -U haclabs -P /usr/share/wordlists/rockyou.txt
也没有爆破出结果。当目前为止,wordpress上没啥进展,searchsploit也没找到合适的漏洞。
还是在phpmyadmin上做做文章吧,先找一下对应版本有没有什么漏洞。
理论上有搞头,实在没招的时候,来试试。先用前面找出来的两个账号爆破一下phpmyadmin的登录页面。
$ hydra -l yash-P /usr/share/wordlists/rockyou.txt -vV 192.168.56.109 http-post-form "/phpmyadmin/index.php:pma_username=^USER^&pma_password=^PASS^:Error"
$ hydra -l haclabs -P /usr/share/wordlists/rockyou.txt -vV 192.168.56.109 http-post-form "/phpmyadmin/index.php:pma_username=^USER^&pma_password=^PASS^:Error"
两个用户一起爆破还是挺壮观的,效率也比较高。爆破的同时,看看上面searchsploit扫描出来的漏洞,也没有什么有价值的发现。回过头来看一下爆破结果,都没有成功。到目前为止,phpadmin页面爆破了,wordpress页面爆破了,都没有找到密码。前面找到的token和API字符串也不知道怎么用。剩下的就是ssh的登录了,先试试yash和haclabs是否可以ssh,如果可以的话,也爆破一下,先用token和API的字符串爆破,不行再用rockyou。
至少证明两个用户都可以爆破,按照前面的思路爆破一下。构建的字典如下,找出来的token,API字符串,以及四个API字符串的排列组合。
爆破一下。
$ hydra -l yash -P mydict.txt 192.168.56.109 ssh
卧槽,太变态了,yash的密码爆出来了,竟然是那四个API字符串的排列组合中的一个,5F4DCC3B5AA765D61D8327DEB882CF99,貌似就是我们第一次组装出来的,可惜我们前面直接去base64解吗了,谁能想到会是这么变态的密码啊。登录进去,获得yash用户的flag。
5. 系统提权
查看系统信息。
64位的ubuntu 18.04.3。直接跑一下linpeas。首先是可能有问题的三个CVE漏洞,这个我感觉都不是很靠谱,放到最后。
接下来就是巨多的SUID相关的内容,如下图。
看来就在这里了,尤其是linpeas自动高亮出来的python2.7,但是不太会用,这是个二进制文件,咋写SUID啊,查找一下gtfobins。
有类似的用法,这里试用一下。
yash@haclabs:/tmp$ /usr/bin/python2.7 -c "import os; os.execl('/bin/sh', 'sh', '-p')"
貌似成功了,验证一下。
这算成功吗?感觉应该算哈。获取一下flag,如果获取到,就算,可惜的是老天不作美,死活没有找到flag。
除了原来发现的flag1之外,在haclabs用户下还发现了flag2。最后上网搜索了一下,这个靶机的flag在/root/deception下面,如下图。
到此结束。
6. 写在最后
这个靶机有些意思,有不同的思路,还有网友找到了haclabs用户的密码位haclabs987654321,通过haclabs用户进行提权,这个我没有试过,大家可以试试。