目录
前言
一. 环境搭建
1. 准备工具
2.靶场准备
二.渗透过程
1.主机发现
2.端口扫描
3.网页信息收集,flag1
4.cewl工具爬取网站密码
5.wpscan提取用户
6.wpscan爆破用户密码
7.dirsearch目录扫描
8.登录wp,flag2
9.ssh连接
10.rbash绕过,flag3
11.su切换用户,flag4
12.提权,final-flag
之前打了DC-1,这次试试DC-2,目标是找到官方设置的5个flag。
虚拟机Kali:
自备,我的kali的IP为192.168.111.129
靶场机:
https://download.vulnhub.com/dc/DC-2.zip
修改网络适配器为Nat模式:
Nmap扫描Nat网段,通过排除法可得到靶机IP为192.168.111.145:
nmap -sP 192.168.111.0/24
Nmap扫描目标靶机开放的端口:
结果只扫出来个80端口,修改一下扫描命令再次扫描:
namp -A -p- 192.168.111.145
这次得到的信息就多了,发现靶机开放了80端口http服务,同时开放了ssh服务,不过是7744端口。
直接在kali访问目标http://192.168.111.145,结果失败了无法查看:
根据提示的信息,发现目标进行了重定向,需要修改本地hosts文件,进行DNS解析:
vim /etc/hosts #编辑hosts文件
192.168.111.145 dc-2 #添加域名
修改后重新访问http://dc-2,即可正常浏览页面,并发现靶机使用的CMS是WordPress:
并在网站内发现了flag1:
根据flag1的提示,我们‘需要cewl与更多的密码’,应该是使用cewl对目标网站生成密码字典:
cewl http://dc-2 -w pass.txt
既然以及得到了密码字典,那么下一步就是要找到用户,使用kali自带的wpscan工具,对目标进行用户扫描:
wpscan --url http://dc-2/ -e u #-e:枚举;u:用户
可以得到三个用户:admin、jerry和tom。
将得到的用户写入字典user,同时利用wpscan与之前的pass字典匹配爆破用户密码:
wpscan --url http://dc-2/ -e -U /root/user.txt -P /root/pass.txt
成功爆出了用户密码:
jerry:adipiscing
tom:parturient
使用dirsearch扫描目录,发现http://dc-2/wp-admin/登录界面:
dirsearch -u http://dc-2 -x 403,404,500
使用刚刚的用户密码登录wordpress:
在Page中发现了flag2:
再使用另一个用户登录,结果空空的什么都没有:
进入wp后可以利用shell脚本木马上线,但根据flag2提示‘如果不能利用wp,但可以尝试其他途径’,结合之前扫出来的ssh服务及端口,那下一步很明显是利用ssh了。
使用用户密码尝试ssh连接,jerry用户连接失败:
Tom用户连接成功:
ssh [email protected] -p 7744
使用tom用户ssh连接后,发现目标设置了rbash限制,导致大部分命令无法使用,不能查看flag3:
测试了一下 ‘vi’可以使用,那利用vi进行rbash绕过,首先vi建立一个文本,文本内输入‘set shell=/bin/bash’,再输入‘shell’,确认后自动退出,最后输入‘export PATH=$PATH:/bin/,即可完成rbash绕过:
vi a
set shell=/bin/bash
shell
export PATH=$PATH:/bin/
并且成功拿到了flag3:
根据flag3的提示‘tom总是落后于jerry,他应该su’,大概是说通过su切换用户为jerry:
su jerry
切换后,cd到/home目录下,发现jerry文件夹,进入/jerry找到了flag4:
到了这一步,接下来的就很明确了,无非就是提权。根据flag4的提示‘go on – git’,那么接下来就用git进行提权。
(说实话一开始没看flag4,导致我尝试了各种提权方法,如suid、crontab、脏牛、cve-2021-3156,直到使用git下载了个exp,我才意识到git可以用,笑了)
使用sudo -l查看一下,发现允许无密码使用git:
sudo -l
输入‘sudo git help config’进入配置文件,在文件末尾输入‘!/bin/bash’,即可成功提权:
sudo git help config
GG #定位到文末
!/bin/bash
最后在/root找到了最终的flag:
总结
靶场还是比较简单的,而且官方给的提示也很明确。
在打靶场时,看得出来已经做了很多限制的安全措施,但做了又跟没做一样,方法总比困难多。所以在平时做防护一定更加要仔细一些,及时做好CMS的更新与维护等等。