学校这次的实习,其中一个内容就是一些vulnhub的相关中等难度的项目 。
现在我们开始其中一个项目:bluemoon
bluemoon靶机是在VBox编辑的,而我的虚拟机是vmware,使用kali无法检测到靶机的IP,包括arp-scan、nmap存活主机探测、netdiscover均未检测到靶机的IP地址,也就无法进行下一步工作,因此在进入时要改一下配置。
由于不知道靶机账号密码,不能直接进入靶机修改配置文件。但可以通过所谓拯救模式进行操作。我把攻击机kali与靶机都放在同一个局域网(我设置的是NAT模式下10.1.1.0/24网段),按shift启动再按e,把其中ro改为rw signie init=/bin/bash,然后按ctrl+x运行,就可以进入靶机了,而且是root用户。
查看靶机网卡配置文件/etc/network/interfaces,可以看到其配置网卡与vmware网卡名称并不一致,我们网卡当然无法正常启动。我们必须修改为与本地相对应的网卡名称。把/etc/network/interfaces内的网卡名改为ens33(VMware虚拟网卡名都是ens33),再重启网卡服务/etc/init.d/networking restart,结果成功获取到IP地址。
先探测网内存活主机
arp-scan -l
发现靶机ip:10.1.1.130
探测靶机开放端口
nmap -A -p- 10.1.1.130
在现实环境中,nmap的使用是很有讲究的。因为现实环境很大,必须根据具体情况考虑执行速度。例如只是探测存活主机,用nmap -sV 就可以了,-A探测主机全部情况就不需要了。对于端口,也不一定需要弄清除全部,可以考虑常用就不加p,或者p 1-5000之类,提供信息搜集的速度。
我的模拟靶机环境当然很小,无多大所谓nmap速度,所以就习惯-A全部探测了。
发现开放端口:21、22、80
21 端口运行着 vsftp,版本号是 3.0.3,vsftp有所谓笑脸漏洞之类漏洞,影响的是3.0.2以前旧版本,现版本还禁止匿名登录。
22 端口运行了 openssh,版本号是 7.9p1,同样不受漏洞影响。
80 端口运行了 apache,版本号是 2.4.38,发现2.4.39前存在高危提权漏洞。
对于这么个不见任何普通按钮,敏感文字的网页,只好先看看源代码
还是没有发现可以利用的地方。
对于80端口直接处理网页漏洞的,常见的方法就是进行目录爆破。
dirb http://10.1.1.130
没有发现可以利用的目录。
再执行dirb http://10.1.1.130
发现敏感目录hidden_text
点击其中超链接
显然要解读这个二维码。
方便起见,直接用手机扫描,不下载扫描工具了
为ftp的用户名即账户和密码,可以登录试试:
成功登录。查找文件发现information.txt 和 p_lists.txt,
查看information.txt发现用户名robin,p_lists.txt为密码表
用 hydra 爆破p_lists.txt
hydra -l robin -w 10 -P /root/p_lists.txt -t 10 -f 10.1.1.130 ssh
账号robin的登录密码为 k4rv3ndh4nh4ck3r
ssh 10.1.1.130登录(可以说等于在靶机直接登录)
登录成功,我们得到了低权限用户 robin 的 shell
得到第一个flag
==> Fl4g{u5er1r34ch3d5ucc355fully}
见有用户jerry,可以提权到jerry看看。先用sudo -l查看robin可以执行和不可执行的指令
发现可以不使用密码以 jerry 用户运行 /home/robin/project/feedback.sh
执行该脚本,我们可以输入变量feedback,然后执行变量feedback。该变量可控。
cd /home/robin/project/ chmod 777 feedback.sh sudo -u jerry ./feedback.sh #以jerry身份运行脚本
将 /bin/bash 赋值给 feedback ,就能得到 jerry 的 shell
查看进程top
发现root用户运行了docker jerry用户在同样的docker组
运行着容器alpine,将靶机上的目录挂载到容器中,就能访问受限目录
docker run -it -v /root:/mnt/hhh alpine
把靶机root目录挂载到docker容器的/mnt/hhh中
得到Root-Flag
Fl4g{r00t-H4ckTh3P14n3t0nc34g41n}