Vulnhub-DC-2
环境配置
vulnhub 下载此靶机,下载地址如下:
1 | https://download.vulnhub.com/dc/DC-2.zip |
将靶机设置为 NAT 模式,开机即可,配置说明如下:
1 | 攻击机ip:192.168.52.128 |
信息收集
端口扫描
首先使用 Nmap 的 Ping 扫描快速发现活跃主机,发现靶机 ip 为 192.168.52.148
1 | nmap -sP 192.168.52.0/24 |
使用 Nmap 全面扫一下开放的端口和运行的服务
1 | nmap -sT -A -p1-65535 -T4 -O -sV 192.168.52.148 |
扫描结果如下:系统开放了一个 HTTP 服务(80 端口)、一个 SSH 服务(7744 端口)
1 | PORT STATE SERVICE VERSION |
网站信息收集
需要将域名解析到对应的 IP 地址才能访问网站,可以通过修改本地的 hosts 文件,添加如下映射:
1 | 192.168.52.148 dc-2 |
正常访问,可以看到 flag1,说是要使用 cewl 工具生成密码字典
了解了一下,cewl 可以根据用户指定的 URL 和默认的脚本配置(爬取深度:2;密码长度大于等于 3),爬取站点内容并打印出字典
1 | cewl http://dc-2/ -w ./crew.txt |
同时,很容易发现这是一个 WordPress 站点
使用工具 wpscan 枚举出账号信息,命令如下:
1 | wpscan --url http://dc-2/ -e u |
发现三个账号,将这三个账号写进 user.txt 里,再用 wpscan 爆破账号密码
1 | wpscan --url http://dc-2/ -U user.txt -P cewl.txt |
爆破得到两个账号密码信息
1 | jerry/adipiscing |
目录扫描
有了账号密码,需要找到能登陆的地方,使用 dirsearch 来扫一下目录看看有什么泄露的路径
1 | python .\dirsearch.py -u http://dc-2/ |
果然扫到一个登陆页面 /wp-login.php,使用 jerry 账号成功登陆进去,拿到 flag2
漏洞利用
SSH 登陆
提示说是需要换其他方法,从 ssh 端口入手,这个 ssh 特意更改了默认端口,肯定可以利用,直接用 tom/parturient 密码复用,成功登陆
Rbash 绕过
但是连上之后给的是一个 rbash shell,很多命令无法执行,尝试绕过 rbash 限制
先查看有哪些可用的命令
1 | compgen -c |
发现 vi 可以用,使用 vi 来绕过 rbash 限制,具体步骤如下:
1 | vi |
操作之后你就得到了一个完整的 shell
先查找权限内可以看到的 flag
1 | find / -name "*flag*" 2>/dev/null |
发现 flag3 和 flag4,查看一下,提示让切换到 jerry 用户看看,还是密码复用,用 WordPress 得到的密码 adipiscing 登陆就能成功切换
权限提升
发现这个账号还没 tom 的权限高,需要提权,经尝试发现是 sudo 提权
首先用 sudo -l 看一下有哪些无密码的 root 文件可以利用,发现 git 文件
1 | sudo -l |
在 GTFOBins 网站查找 git 的提权,发现可以通过 sudo 来提权
挨个尝试发现第二种方式可行,成功提权
1 | sudo git -p help config |
在 root 目录下找到最终 flag