Title

vulnhub靶场之VULNCMS: 1

准备:

攻击机:虚拟机kali、本机win10。

靶机:VulnCMS: 1,下载地址:https://download.vulnhub.com/vulncms/VulnCMS.ova,下载后直接vbox打开即可。

知识点:Joomla框架的注入漏洞、Drupal框架的命令执行漏洞、敏感信息泄露、journalctl提权。

信息收集:

通过nmap扫描下网段内的存活主机地址,确定下靶机的地址:nmap -sn 192.168.5.0/24,获得靶机地址:192.168.5.94。

扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.5.94,显示开放了22、80、5000、8081、9001端口,开启了ssh服务、http服务。

WEB服务-80:

访问80端口的web服务并进行目录扫描,命令:gobuster dir -u http://192.168.5.94 -x php,html,txt,zip,ba -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt,发现index.html、about.html等页面。

访问http://192.168.5.94/about.html页面,发现一些信息疑是账户信息:mobley、elloit,但是告诉我们不要爆破,那这里先放在这。

访问:http://192.168.5.94/vulnerable/页面获得6张图片信息,使用steghide、binwalk进行了尝试读取图片文件信息,但是均是失败。

WEB服务-5000:

访问:http://192.168.5.94:5000/页面,访问hellworld进行跳转时跳转到了域名:fsociety.web,因此需要进行dns解析。win:打开C:\Windows\System32\drivers\etc\hosts文件,添加:192.168.5.94 fsociety.web,linux:修改/etc/hosts文件。emmmm,但是后续发现这里好像没啥用。

对5000端口的web服务进行目录扫描,命令:gobuster dir -u http://192.168.5.94:5000 -x php,html,txt,zip,ba -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt,发现wp-login.php、/rss等目录。

访问:http://fsociety.web:5000/rss/页面发现wp框架的版本信息:5.7.2。其实直接使用wappalyzer插件直接获取版本信息也行。

搜索下wordpress框架版本:5.7.2的漏洞信息,但是这个版本没搜索到有用的漏洞信息。顺带使用wpscan进行了以下扫描,但是也没发现什么信息,命令:wpscan --url http://192.168.5.94:5000 --enumerate t。

WEB服务-8081:

对8081端口的web服务进行目录扫描,命令:gobuster dir -u http://192.168.5.94:8081-x php,html,txt,zip,ba -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt,发现README.txt、configuration.php、robots.txt、/administrator等目录和文件。

使用joomscan进行扫描,发现Joomla系统的版本信息:3.4.4,以及一些漏洞信息。

搜索下Joomla系统版本:3.4.4的漏洞信息,发现msf中存在该利用方式,那就直接在msf获取下数据(或者看下脚本的利用过程,使用sqlmap也是一样的,可能获取的数据会更直观),获取的数据保存在:/home/kali/.msf4/loot/20230115112446_default_192.168.5.94_joomla.users_428555.txt文件,读取该文件信息获得数据库内数据,猜测是系统账户和密码信息(这里如果能注意到有个邮箱信息不一样联想到是密码,那这里就可以直接获取一个较高权限的shell,后面还是用的这个地方升级的shell权限)。

[{"activation":"0","block":"0","email":"Fluntence54@armyspy.com","id":"46","lastResetTime":"0000-00-00 00:00:00","lastvisitDate":"2021-05-31 09:14:41","name":"Super User","otep":"","otpKey":"","params":"","password":"$2y$10$EYc6SKfMLzlLE/IcD9a6XeAe2Uv7WTBFlbbqRrnpht1K0M1bLrWee","registerDate":"2021-05-29 10:08:24","requireReset":"0","resetCount":"0","sendEmail":"1","username":"joomlaCMS_admin"},{"activation":"","block":"1","email":"5T3e!_M0un7i@N","id":"47","lastResetTime":"0000-00-00 00:00:00","lastvisitDate":"0000-00-00 00:00:00","name":"elliot","otep":"","otpKey":"","params":"{\u0026quot;admin_style\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;admin_language\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;language\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;editor\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;helpsite\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;timezone\u0026quot;:\u0026quot;\u0026quot;}","password":"$2y$10$jddnEQpjriJX9jPxh6C/hOag4ZZXae4iVhL7GVRPC9SHWgqbi4SYy","registerDate":"2021-05-31 09:16:30","requireReset":"0","resetCount":"0","sendEmail":"0","username":"elliot"}]                                                                                                                                                 

WEB服务-9001:

对9001端口的web服务进行目录扫描,命令:gobuster dir -u http://192.168.5.94:9001-x php,html,txt,zip,ba -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt,发现README.txt、CHANGELOG.txt等目录和文件。

在CHANGELOG.txt文件中发现Drupal框架的版本信息:7.54。

搜索下Drupal系统版本:7.54的漏洞信息,发现msf中存在该利用方式,那就直接在msf中利用该漏洞获取shell权限。

提权-elliot:

获取shell后在/var/www/html/joomla的configuration.php和/var/www/html/wordpress/public_html的wp-config.php文件中发现对应的数据库信息,但是数据库中密码均是加密的,未破解成功。

这时候想起来上面利用漏洞获取的Joomla数据库中的信息,存在的账户:elliot,但是其密码同样破解失败,但是发现其email:5T3e!_M0un7i@N与正常的邮箱后缀不太一样,猜测其是密码,进行ssh连接:ssh elliot@192.168.5.94,成功获得elliot权限的shell,并读取user.txt文件获得flag值。

提权-tyrell:

通过:find / -perm -4000 -type f 2>/dev/null来查找可疑文件进行提权,发现了/usr/lib/policykit-1/polkit-agent-helper-1,利用其漏洞信息进行提权,但是均提权失败。

然后这里思绪断了以下,后面忽然间想起来还有另一个账户:tyrell,是不是他的密码隐藏在某个文件中,那就查找以下,命令:find / -type f 2>/dev/null | grep tyrell,发现/var/www/html/drupal/misc/tyrell.pass文件。

读取该文件信息,成功获得tyrell账户信息:tyrell/mR_R0bo7_i5_R3@!_,使用获得账户信息成功切换到tyrell账户。

提权-root:

查看下当前账户是否存在可以使用的特权命令或文件:sudo -l,发现存在/bin/journalctl命令。

查找下journalctl的提权命令,按照sudo方式进行提权,成功提权到root账户并在root目录下发现root.txt文件,读取该文件获得flag值。

posted @ 2023-01-15 15:38  upfine  阅读(424)  评论(0编辑  收藏  举报