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

docker 逃逸突破边界

免责声明

本博客文章仅供教育和研究目的使用。本文中提到的所有信息和技术均基于公开来源和合法获取的知识。本文不鼓励或支持任何非法活动,包括但不限于未经授权访问计算机系统、网络或数据。

作者对于读者使用本文中的信息所导致的任何直接或间接后果不承担任何责任。包括但不限于因使用本文所述技术而可能导致的法律诉讼、财产损失、隐私泄露或其他任何形式的责任。

在进行任何渗透测试或安全研究之前,请确保您已获得所有必要的授权,并遵守适用的法律和道德准则。未经授权的安全测试可能违反法律,并可能导致严重的法律后果。

本文中的内容仅供参考,不应被视为专业建议。在进行任何安全相关活动之前,建议咨询具有相应资质的专业人士。

作者保留对本博客文章的所有权利,并有权在未经通知的情况下进行修改或删除。

正文部分

0x00 环境简介与环境搭建

0x00-1 环境简介 

序号

服务器

角色

网络位置

系统处理器架构

IPv4 地址

1

Kali GNU/Linux Rolling

渗透机器

边缘

x86_64

8.27.11.7

2

Ubuntu

目标服务器

边缘

?

?

3

Windows Server 2008

目标服务器

内网

?

?

4

Windows 7

目标服务器

内网

?

?

0x00-2 环境搭建

0x01 探索发现阶段

0x01-1 主机发现

0x01-2 端口扫描

0x01-3 服务探测

0x01-4 识别 2001 端口的 Web 应用框架及版本

0x01-5 识别 2002 端口的 Web 应用框架及版本

0x01-6 识别 2003 端口的 Web 应用框架及版本

0x01-7 探索发现阶段总结

在探索发现阶段中,通过 nmap 工具识别到 Web 服务器开启了 4 个端口,其中 22 端口为 SSH 服务的默认端口,而 2001端口、2002端口和 2003 端口分别对应了三个不同的 HTTP 服务,通过识别 2001、2002、2003 端口的 Web 应用框架,得出三个 Web 服务的框架分别为 Struts2 框架、Tomcat 框架、phpMyAdmin 框架,2003端口对应的 Web 服务使用的 MySQL 版本为 5.5.62,由于 2001端口、2002 端口和 2003 端口比较特殊,猜测这三个 Web 服务部署在 Docker 容器中

0x02 入侵和感染阶段

0x02-1 使用 Struts2 漏洞检测工具对 Web 应用进行漏洞测试

0x02-1.1 检测漏洞

 

0x02-1.2 利用漏洞上传 webshell

 

0x02-1.3 使用冰蝎连接 webshell

0x02-2 使用 Tomcat 框架漏洞对 Web 应用进行漏洞测试

0x02-2.1 修改数据包

Tomcat 存在任意上传漏洞,使用 BurpSuite 任意拦截一个数据包进行测试。将请求方式修改为 PUT,内容类型修改为表单默认的提交数据格式,内容为冰蝎 jsp 类型的 webshell,当返回包状态码为 201 时,代表上传成功,接下来访问 shell.jsp,确保 webshell 成功上传

0x02-2.2 访问 webshell 文件

成功访问到 shell.jsp,页面显示空白代表文件存在,下面使用冰蝎连接 webshell

0x02-2.3 使用冰蝎连接 webshell

0x02-3 使用 phpMyAdmin 应用漏洞对 Web 应用进行漏洞测试

0x02-3.1 利用框架历史漏洞

版本为 4.8.1 的 phpMyAdmin 应用框架存在任意文件包含漏洞,利用这个漏洞查看系统中的敏感文件

0x02-3.2 查询当前目录路径

在 phpMyAdmin 中进行查询时,会将查询语句保存至一个临时文件,临时文件名为 sess_ 加上 Cookie 值,Cookie 值获取的方式有很多,这里使用最简单的方式进行获取

0x02-3.3 利用文件包含漏洞包含临时文件

发现当前目录为 /var/www/html,可以考虑将 webshell 写入这个目录

0x02-3.4 构造创建 webshell 文件的 PHP 代码

select <?php echo `echo "<?php eval(base64_decode(冰蝎马base64加密内容));?>" > /var/www/html/shell.php`;?>

再次包含临时文件使 PHP 代码执行,从而生成 webshell 到 /var/www/html 目录下

0x02-3.5 使用冰蝎连接 webshell

0x02-4 识别 Web 应用服务器环境

为了验证之前的猜想,接下来在三个 Web 服务器中查询 docker 容器的特征文件 —— .dockerenv 文件,经过查询后发现三台 Web 服务器都处于 docker 容器中,因此需要从容器中逃逸到物理主机,为后续的内网渗透做准备,接下来需要使用 cdk_linux_amd64 工具检测 docker 容器是否存在可逃逸的条件,所以先将工具上传至目标服务器。

正常情况下需要先对 docker 的处理器架构信息进行收集,根据处理器架构类型上传对应的工具。由于 docker 容器和宿主机公用同一个内核,即 docker 容器的处理器架构和宿主机的大多完全相同,当然也存在借助其他工具实现不同处理器架构运行在宿主机上的情况

工具下载地址:https://github.com/cdk-team/CDK/releases/tag/v1.5.4

0x03 攻击和利用阶段

0x03-1 逃逸 Struts2 应用容器

经检测,并未发现 Struts2 应用容器存在可逃逸条件

0x03-2 逃逸 Tomcat 应用容器

0x03-2.1 检测容器漏洞

发现 Tomcat 应用容器存在可逃逸条件,由于获取到此容器的权限为 root 权限,所以尝试将物理机的根目录挂载至容器的临时目录

0x03-2.2 尝试将宿主机根目录挂载至容器临时目录

可以发现成功将宿主机根目录挂载到了容器的临时目录,并且路径为 /tmp/5ijds,接下来就需要和宿主机之间建立连接

0x03-2.3 生成 SSH 密钥用于 SSH 连接

生成 SSH 密钥,公钥和私钥都保存至 /root/.ssh/ 目录下

将公钥写入宿主机,私钥拷贝至一台 Windows 服务器

使用 MobaXterm 远程连接工具进行 SSH 连接

成功连接至目标服务器宿主机

0x03-3 逃逸 phpMyAdmin 应用容器

经检测,并未发现 phpMyAdmin 应用容器存在可逃逸条件

0x03-4 配置内网代理

0x03-4.1 查看 Web 服务器是否存在内网环境

0x03-4.2 生成木马上线 Web 服务器

查看宿主机处理器架构

生成对应的木马程序

将木马上传给目标服务器

配置监听器

0x03-4.3 添加路由

0x03-4.4 开启 SOCKS 代理服务

msf6 exploit(multi/handler) > use auxiliary/server/socks_proxy
msf6 auxiliary(server/socks_proxy) > options
msf6 auxiliary(server/socks_proxy) > run

0x04 探索感知阶段

0x04-1 查看宿主机 arp 表

0x04-2 扫描内网主机端口及服务

将扫描结果导出为 Excel 表格,发现主机 192.168.183.130 开放了 389 端口,一般只有域控服务器才会开启这个端口,并且发现内网两台机器都开启了 445 端口的 SMB 服务,可以尝试利用 MS17-010 漏洞对其进行检测

0x05 传播阶段

0x05-1 对域控服务器 445 端口的 SMB 服务进行漏洞检测

检测到漏洞存在,但利用失败,猜测可能是由于 MSF 代理不稳定导致,尝试切换代理工具

0x05-1.1 在 Web 服务器上开启 SOCKS 代理服务

0x05-1.2 再次尝试利用域控服务器 SMB 服务的 MS17-010 漏洞

依旧利用失败,尝试利用内网中另一台主机的 MS17-010 漏洞

0x05-1.3 尝试利用域成员主机 SMB 服务的 MS17-010 漏洞

域成员主机成功上线至 MSF,并且接收到的会话用户权限为系统权限

0x05-2 收集域内信息

0x05-2.1 查询域名

0x05-2.2 查询域内主机名

0x05-2.3 查询域控主机名

0x05-2.4 查询完整域名

0x05-2.5 确定域控 IPv4 地址

0x05-2.6 查询域内用户

由于当前权限为系统权限,因此无法获取到域内用户的信息,此时需要将权限降低至域用户权限

0x05-2.6-i 查询域用户进程

0x05-2.6-ii 降低权限至域用户

0x05-2.6-ii 查询域内用户

0x05-3 获取域用户 SID

域用户 demo/douser 用户的 SID 为 S-1-5-21-979886063-1111900045-1414766810-1107,那么就可以得到域 SID 为 S-1-5-21-979886063-1111900045-1414766810

0x05-4 收集域成员机器系统信息以及补丁信息

发现域成员主机没有打 MS14-068 漏洞的补丁,漏洞编号为 KB3011780,因此尝试利用 MS14-068 漏洞将权限提升至域管理员权限

0x05-5 获取域成员主机凭据信息

回到 meterpreter 执行 rev2self 恢复至系统权限

获取当前主机域用户密码,为后面利用 MS14-068 漏洞做铺垫

由于靶机中在桌面放置了 mimikatz.exe 和 MS14-068 漏洞利用工具,所以可以直接使用,若是在实战中,就需要自己上传工具进行渗透,当然也可以将靶机中的工具保存下来

由于当前权限为系统权限,因此不需要进行提权,直接使用命令 mimikatz.exe "sekurlsa::longonpasswords" exit 获取系统中用户密码

0x05-6 利用 MS14-068 漏洞伪造票据

0x05-6.1 ms14-068.exe 使用方法

0x05-6.2 构造 Payload 生成票据

0x05-6.3 使用 mimikatz 清理主机所有凭证

0x05-6.4 查看当前机器凭证信息

0x05-6.5 注入票据至内存中

0x05-6.6 查看当前机器凭证信息

0x05-7 尝试与域控服务器建立连接

0x05-7.1 与域控服务器建立网络共享资源连接

0x05-7.2 列出该计算机 C 盘根目录下的文件和文件夹信息

0x05-8 夺取域控服务器控制权

0x05-8.1 关闭域控服务器防火墙

0x05-8.1-i 创建关闭防火墙服务

0x05-8.1-ii 执行关闭防火墙任务

这里应该是 sc \\win-ens2vr5tr3n start unablefirewall

0x05-8.2 上线域控服务器至 MSF

0x05-8.2-i 生成正向木马

0x05-8.2-ii 将木马上传至域成员机器

0x05-8.2-iii 将木马拷贝至域控服务器

0x05-8.2-iv 创建执行木马任务

0x05-8.2-v 执行木马程序

0x05-8.2-vi 配置监听器上线域控服务器

0x06 持久化和恢复阶段

0x06-1 降低权限至域管理员权限

0x06-2 生成黄金票据

0x06-2.1 抓取 NTLM Hash

0x06-2.2 获取黄金票据

0x06-2.2-i 返回域成员机器清空票据

0x06-2.2-ii 生成黄金票据

0x06-2.2-iii 导入黄金票据

0x06-2.2-iv 查看域成员票据

0x06-3 创建定时任务维持权限

0x06-3.1 编写 Shell 脚本

0x06-3.2 创建定时任务

0x06-3.3 测试脚本是否定时执行

0x06-4 恢复阶段

恢复主要涉及对 webshell 以及上传的各类文件的删除等操作。通过删除 webshell、删除各类上传病毒以及清除系统日志,达成清理攻击痕迹的目的

0x06-4.1 清理 Windows 系统的攻击痕迹

0x06-4.2 清理 Linux 系统的攻击痕迹

这里没有全部删除,还有 docker 逃逸时用到的工具,php 文件类型的 webshell 等痕迹

 

相关文章:

  • docker 部署nginx,nginx 504
  • ONES 功能上新|ONES Copilot、ONES TestCase、ONES Wiki 新功能一览
  • Python----PyQt开发(PyQt基础,环境搭建,Pycharm中PyQttools工具配置,第一个PyQt程序)
  • 【云安全】云原生-K8S(三) 安装 Dashboard 面板
  • Visual Studio 进行单元测试【入门】
  • 计算机网络(1)基础篇
  • 2025 年前端开发现状分析:卷疯了还是卷麻了?
  • 排序算法整理(冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序、计数排序、桶排序、基数排序)
  • [AI]Mac本地部署Deepseek R1模型 — — 保姆级教程
  • Jsoup 教程:从基础到爬虫实战
  • 柔性数组与c/c++程序中内存区域的划分
  • pycharm如何对比两个文档
  • deepseek:三个月备考高级系统架构师
  • Docker Compose:编排多容器应用
  • 尚硅谷爬虫note002
  • MySQL第五次作业
  • HTTP 请求头、响应头常见字段分析
  • git,bash - 例子整理
  • Calico网络组件本地部署支持IPv6(Kubernetes)
  • deepseek和chatgpt对比
  • 著名植物学家、园艺学家,国际植物园协会原主席贺善安逝世
  • 马上评|“为偶像正名”的正确做法是什么
  • 美国明尼苏达州发生山火,过火面积超80平方公里
  • 脑血管支架:救命神器还是定时炸弹?听听医生的大实话
  • 从“求生”到“生活”:医保纳入创新药让梗阻性肥厚型心肌病患者重拾生活掌控权
  • 5年建成强化城市核心功能新引擎,上海北外滩“风景文化都是顶流”