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

从Apache OFBiz 17.12.01的反序列化漏洞到Docker逃逸的渗透之红队思路

目录

📖 文章概述

🛠️ 技术栈概览

技术组件

红队视角扩展

🔍 初始侦察:发现内部Web服务

技术原理

渗透步骤

核心技术解析

红队思维

🕸️ Web枚举:定位Apache OFBiz

技术原理

渗透步骤

核心技术解析

红队思维

🕳️ CVE-2020-9496:反序列化漏洞剖析

漏洞原理

技术细节

渗透步骤

红队思维

🐳 Docker逃逸:突破容器限制

技术原理

渗透步骤

核心技术解析

红队思维

🔗 攻击链串联

技术关联

协议衔接

🛠️ 红队视角:实战总结与心得

攻击链总结

红队建议

📝 结语


📖 文章概述

  • 本文基于对某目标站点的渗透测试案例,深入剖析了Apache OFBiz 17.12.01中的反序列化漏洞(CVE-2020-9496),并结合前期漏洞(如LFI和RCE)与SSH端口转发技术,展示了从初始访问到Docker环境逃逸的完整红队攻击链。
  • 我将探讨漏洞利用的技术原理、渗透步骤的逻辑关联以及红队视角下的实战思维,目的是在为小伙伴提供一个结构清晰、技术深入的参考。
  • 核心内容

    • CVE-2020-9496的技术剖析与利用流程。

    • SSH端口转发的实现及其在内部服务访问中的关键作用。

    • Docker逃逸的原理与操作细节。

    • 攻击链的完整串联与红队策略优化。

  • 目标:通过隐藏敏感字段(如IP、凭据和具体命令),保留技术逻辑与思维,给一些些渗透思路 ,觉得还Ok得点个赞吧 !!!!


🛠️ 技术栈概览

技术组件

  • Web服务:Apache(虚拟主机,HTTP/HTTPS)、Apache OFBiz(Java ERP系统)

  • 编程语言:Java(反序列化漏洞利用)、PHP(LFI触发)、Bash(脚本执行)

  • 协议

    • HTTP/HTTPS:漏洞触发与服务访问

    • SSH:端口转发与远程登录(TCP)

    • TCP:反弹Shell传输

    • ICMP:RCE验证

    • UNIX域套接字:Docker逃逸

  • 工具

    • ysoserial:生成反序列化Payload

    • Burp Suite:拦截与修改请求

    • gobuster:目录枚举

    • netcat:文件传输与Shell监听

    • tcpdump:流量分析

    • linpeas:权限提升枚举

  • 漏洞类型

    • LFI(路径遍历)

    • RCE(SQL注入)

    • 反序列化(CVE-2020-9496)

    • 弱凭据

    • Docker逃逸

红队视角扩展

红队在技术栈选择上注重灵活性与隐蔽性:

  • 协议选择:优先使用HTTPS加密流量,避免IDS检测。

  • 工具组合:结合Burp Suiteysoserial实现手动与自动化利用的平衡。

  • 环境适应:针对Docker环境,使用linpeas快速定位逃逸点。


🔍 初始侦察:发现内部Web服务

技术原理

在目标主机上,通过SSH会话运行网络枚举命令,发现本地监听的Web服务(127.0.0.1:8443)。由于该服务仅对本地开放,红队利用SSH端口转发技术,将内部端口映射到攻击机本地,实现远程访问。

渗透步骤

  1. 网络枚举

    • 使用netstat -ant列出目标开放端口,发现tcp 127.0.0.1:8443

  2. SSH端口转发

    • 执行SSH命令,将目标的127.0.0.1:8443映射到攻击机的本地端口。

    • 访问映射后的https://127.0.0.1:8443,确认服务存在(返回404页面)。

核心技术解析

  • SSH本地端口转发(-L)

    • 原理:通过SSH隧道,攻击机本地端口的流量被转发至目标主机的指定地址。

    • 流程:

      1. 建立SSH连接至目标。

      2. 攻击机监听本地端口(如8443)。

      3. 请求通过隧道转发至目标的127.0.0.1:8443

    • 注意:隧道依赖SSH会话,必须保持连接。

红队思维

  • 为何选择SSH转发:内部服务通常受防火墙限制,SSH转发是低调且高效的突破手段。

  • 侦察价值:404页面暗示Web应用存在,为后续枚举奠定基础。

  • 隐蔽性建议:使用SSH密钥登录而非密码,减少日志痕迹。


🕸️ Web枚举:定位Apache OFBiz

技术原理

目标的127.0.0.1:8443运行Apache OFBiz(Java开源ERP系统)。通过目录枚举工具,发现管理路径/content/control/main,并确认版本为17.12.01,存在CVE-2020-9496反序列化漏洞。

渗透步骤

  1. 目录枚举

    • 使用gobuster扫描https://127.0.0.1:8443,发现/content/control/main

  2. 版本验证

    • 访问路径,确认OFBiz版本,并在漏洞数据库中匹配CVE-2020-9496。

核心技术解析

  • gobuster:高效枚举工具,结合常见目录词表(如directory-list-2.3-medium.txt)快速定位关键路径。

  • HTTPS访问:绕过SSL验证(-k选项),适应未受信任证书场景。

红队思维

  • 枚举策略:从通用路径入手,逐步聚焦业务逻辑接口(如/control)。

  • 版本情报:版本号是漏洞利用的起点,红队需熟练利用Exploit-DB等资源。

  • 效率提升:可结合Burp Suite的Intruder模块,加速枚举并验证响应。


🕳️ CVE-2020-9496:反序列化漏洞剖析

漏洞原理

CVE-2020-9496是OFBiz中XML-RPC端点(/webtools/control/xmlrpc)的反序列化漏洞。由于未严格验证serializable字段,攻击者可注入恶意Java对象,通过ysoserial的CommonsBeanutils1链触发命令执行。

技术细节

  • XML-RPC:基于HTTP的远程调用协议,OFBiz依赖其处理请求。

  • 反序列化流程

    1. 服务器解析XML-RPC请求,调用ObjectInputStream.readObject()

    2. 利用PriorityQueueBeanComparator,触发Runtime.getRuntime().exec()

    3. 执行Payload中的任意命令。

渗透步骤

  1. 环境准备

    • 配置Java 8环境,下载ysoserial

  2. Payload生成

    • 使用ysoserial生成下载、权限设置和执行脚本的三步Payload。

  3. 攻击执行

    • 搭建HTTP服务器托管反弹Shell脚本。

    • 发送XML-RPC POST请求,触发Payload。

    • 通过netcat监听反弹Shell。

红队思维

  • 分步执行:将复杂命令拆分为下载、授权和执行,降低失败率。

  • 隐蔽性优化:使用加密Payload或混淆脚本,避免WAF拦截。

  • 检测规避:在/tmp下操作临时文件,并及时清理痕迹。


🐳 Docker逃逸:突破容器限制

技术原理

在Docker容器内获得Shell后,通过docker0接口和/proc/self/cgroup确认环境。利用宿主机共享的/var/run/docker.sock,创建挂载宿主根目录的新容器,实现逃逸。

渗透步骤

  1. 环境确认

    • 检查cat /proc/self/cgroupip a,验证Docker环境。

  2. 定位Socket

    • 查找/var/run/docker.sock

  3. 逃逸执行

    • 运行新容器,挂载宿主//mnt,访问敏感文件。

核心技术解析

  • Docker Socket:UNIX域套接字,允许容器与宿主Docker守护进程通信。

  • 挂载逃逸:通过-v /:/mnt参数,直接操作宿主文件系统。

红队思维

  • 逃逸优先级:Docker环境是高价值目标,需快速验证逃逸可能性。

  • 权限利用:Socket存在表明配置疏忽,可作为提权突破口。

  • 防御启示:建议禁用容器内的Socket挂载,或限制Docker权限。


🔗 攻击链串联

技术关联

  1. LFI到RCE:LFI泄露数据库凭据,触发Cacti RCE。

  2. RCE到权限提升:RCE获Shell,枚举SSH凭据。

  3. 权限提升到端口转发:SSH登录并转发内部服务端口。

  4. 端口转发到反序列化:访问OFBiz,触发CVE-2020-9496。

  5. 反序列化到Docker逃逸:容器Shell利用Socket提权。

协议衔接

  • HTTP/HTTPS:贯穿漏洞触发。

  • SSH/TCP:支持转发与Shell。

  • UNIX域套接字:实现Docker逃逸。


🛠️ 红队视角:实战总结与心得

攻击链总结

  • 侦察LFI凭据泄露RCEShell权限提升端口转发反序列化Docker逃逸

红队建议

  • 隐蔽性:加密流量,清理日志,避免触发警报。

  • 灵活性:根据目标Java版本调整Payload链。

  • 自动化:借助Metasploit模块加速利用。

  • 思维延伸:每个步骤都可能成为新攻击的起点,保持发散性探索。


📝 结语

  • 通过LFI、RCE、SSH端口转发、CVE-2020-9496反序列化及Docker逃逸,本文展示了红队如何系统性地攻破目标。
  • SSH转发解决了内部访问难题,反序列化利用了Java漏洞,而Docker逃逸揭示了容器安全的薄弱环节。
  • 防御者需关注补丁更新、输入校验和容器隔离,以对抗此类攻击。
http://www.xdnf.cn/news/14004.html

相关文章:

  • GaussDB 分布式数据库调优(架构到全链路优化)
  • C#实战:解决NPOI读取Excel单元格数值0.00001显示为1E-05的问题
  • [特殊字符] Harmony OS Next里的Web组件:网页加载的全流程掌控手册
  • macOS 查看当前命令行的ruby的安装目录
  • 大语言模型的分类与top3
  • Spark 之 Subquery
  • matlab实现非线性Granger因果检验
  • 深度学习:PyTorch张量基本运算、形状改变、索引操作、升维降维、维度转置、张量拼接
  • 将后端数据转换为docx文件
  • 京东零售基于Flink的推荐系统智能数据体系 |Flink Forward Asia 峰会实录分享
  • 论文阅读:arxiv 2025 How Likely Do LLMs with CoT Mimic Human Reasoning?
  • 自动化模型管理:MediaPipe Android SDK 中的模型文件下载与加载机制
  • Flutter:步骤条组件
  • Wi-Fi 6 在 2.4GHz 频段的速率与优化分析
  • Unit 3 训练一个Q-Learning智能体 Frozen-Lake-v1
  • 基于springboot视频及游戏管理系统+源码+文档+应用视频
  • RTP MOS计算:语音质量的数字评估
  • STM32HAL库发送字符串,将uint8_t数据转为字符串发送,sprintf函数的使用方法
  • 声学成像仪在电力行业的应用品牌推荐
  • Java从入门到精通 - 面向对象高级(一)
  • vllm eagle支持分析
  • 燃气从业人员资格证书:开启职业大门的 “金钥匙”
  • Ntfs!NtfsInitializeRestartTable函数分析
  • 资金分析怎么做?如何预防短期现金流风险?
  • 刀客doc:WPP走下神坛
  • 中国AI Top30 访问量排行榜 - 2025年05月
  • 外部记忆的组织艺术:集合、树、栈与队列的深度解析
  • 燃气从业人员资格证书:职业发展的 “助推器”
  • 灌区信息化智能一体化闸门系统解决方案
  • 学习STC51单片机36(芯片为STC89C52RCRC)智能小车3(PWM差速小车)