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

发布于:2025-06-14 ⋅ 阅读:(23) ⋅ 点赞:(0)

目录

📖 文章概述

🛠️ 技术栈概览

技术组件

红队视角扩展

🔍 初始侦察:发现内部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逃逸揭示了容器安全的薄弱环节。
  • 防御者需关注补丁更新、输入校验和容器隔离,以对抗此类攻击。

网站公告

今日签到

点亮在社区的每一天
去签到