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 等痕迹

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/69677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SaaS+AI应用架构:业务场景、智能体、大模型、知识库、传统工具系统

SaaSAI应用架构&#xff1a;业务场景、智能体、大模型、知识库、传统工具系统 大家好&#xff0c;我是汤师爷~ 在SaaS与AI应用的演进过程中&#xff0c;合理的架构设计至关重要。本节将详细介绍其五个核心层次&#xff1a; 业务场景层&#xff1a;发现和确定业务场景智能体层…

使用 Visual Studio Code (VS Code) 开发 Python 图形界面程序

安装Python、VS Code Documentation for Visual Studio Code Python Releases for Windows | Python.org 更新pip >python.exe -m pip install --upgrade pip Requirement already satisfied: pip in c:\users\xxx\appdata\local\programs\python\python312\lib\site-pa…

运放放大器

1 运放是什么 1.1 运算放大器&#xff0c;常用于做信号处理。如:信号放大、滤波、积分、微分、整流、甚至可以用来做电路主控等等。其功能非常强大 1.2 运放的重要特性 虚短 &#xff08;前提是要有负反馈&#xff09; 1.2.1 虚短的概念是指运放在正常工作过程中&#xff0c…

RDK新一代模型转换可视化工具!!!

作者&#xff1a;SkyXZ CSDN&#xff1a;SkyXZ&#xff5e;-CSDN博客 博客园&#xff1a;SkyXZ - 博客园 之前在使用的RDK X3的时候&#xff0c;吴诺老师wunuo发布了新一代量化转换工具链使用教程&#xff0c;这个工具真的非常的方便&#xff0c;能非常快速的完成X3上模型的量化…

玩转适配器模式

文章目录 解决方案现实的举例适用场景实现方式适配器模式优缺点优点:缺点:适配器模式可比上一篇的工厂模式好理解多了,工厂模式要具有抽象的思维。这个适配器模式,正如字面意思,就是要去适配某一件物品。 假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格…

LIMO:上海交大的工作 “少即是多” LLM 推理

25年2月来自上海交大、SII 和 GAIR 的论文“LIMO: Less is More for Reasoning”。 一个挑战是在大语言模型&#xff08;LLM&#xff09;中的复杂推理。虽然传统观点认为复杂的推理任务需要大量的训练数据&#xff08;通常超过 100,000 个示例&#xff09;&#xff0c;但本文展…

渗透利器工具:Burp Suite 联动 XRAY 图形化工具.(主动扫描+被动扫描)

Burp Suite 联动 XRAY 图形化工具.&#xff08;主动扫描被动扫描&#xff09; Burp Suite 和 Xray 联合使用&#xff0c;能够将 Burp 的强大流量拦截与修改功能&#xff0c;与 Xray 的高效漏洞检测能力相结合&#xff0c;实现更全面、高效的网络安全测试&#xff0c;同时提升漏…

企业数据集成案例:吉客云销售渠道到MySQL

测试-查询销售渠道信息-dange&#xff1a;吉客云数据集成到MySQL的技术案例分享 在企业的数据管理过程中&#xff0c;如何高效、可靠地实现不同系统之间的数据对接是一个关键问题。本次我们将分享一个具体的技术案例——通过轻易云数据集成平台&#xff0c;将吉客云中的销售渠…

windows生成SSL的PFX格式证书

生成crt证书: 安装openssl winget install -e --id FireDaemon.OpenSSL 生成cert openssl req -x509 -newkey rsa:2048 -keyout private.key -out certificate.crt -days 365 -nodes -subj "/CN=localhost" 转换pfx openssl pkcs12 -export -out certificate.pfx…

win10 llamafactory模型微调相关① || Ollama运行微调模型

目录 微调相关 1.微调结果评估 2.模型下载到本地 导出转换&#xff0c;Ollama运行 1.模型转换&#xff08;非常好的教程&#xff01;&#xff09; 2.Ollama 加载GGUF模型文件 微调相关 1.微调结果评估 【06】LLaMA-Factory微调大模型——微调模型评估_llamafactory评估-C…

如何在Vue中实现事件处理

在Vue中&#xff0c;事件处理是一个核心概念&#xff0c;它让我们能够响应用户的操作&#xff0c;比如点击按钮、输入文本等。Vue提供了一个简洁而强大的方式来绑定事件和处理事件。本文将介绍如何在Vue中实现事件处理&#xff0c;覆盖事件绑定、事件修饰符以及事件处理函数等内…

国产编辑器EverEdit - 各种符号显示的效果

1 符号显示详解 打开主菜单查看 -> 符号显示可以展开如下相关显示选项菜单 1.1 各符号显示开关说明 1.1.1 当前行 打开该选项时&#xff0c;光标所在行会有淡淡的背景色&#xff0c;如下图所示&#xff1a; 如果用户不喜欢当前行的背景色&#xff0c;可以自行调整&#…

【深度学习】Java DL4J 2024年度技术总结

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

Spring基于文心一言API使用的大模型

有时做项目我们可能会遇到要在项目中对接AI大模型 本篇文章是对使用文心一言大模型的使用总结 前置任务 在百度智能云开放平台中注册成为开发者 百度智能云开放平台 进入百度智能云官网进行登录&#xff0c;点击立即体验 点击千帆大模型平台 向下滑动&#xff0c;进入到模型…

内容中台赋能人工智能技术提升业务创新能力

内容概要 在当今快速变化的市场环境中&#xff0c;企业需要不断寻求创新以保持竞争力。内容中台作为一种新型的内容管理架构&#xff0c;能够极大地提升企业在内容创建、管理和分发方面的效率。通过与人工智能技术的深度融合&#xff0c;企业能够将海量的数据和信息转化为有价…

大语言模型需要的可观测性数据的关联方式

可观测性数据的关联方式及其优缺点 随着现代分布式架构和微服务的普及&#xff0c;可观测性&#xff08;Observability&#xff09;已经成为确保系统健康、排查故障、优化性能的重要组成部分。有效的可观测性数据关联方式不仅能够帮助我们实时监控系统的运行状态&#xff0c;还…

【JavaWeb10】服务器渲染技术 --- JSP

文章目录 &#x1f30d;一. JSP❄️1.JSP介绍❄️2.JSP 运行原理❄️3.page 指令(常用的)❄️ 4.JSP 三种常用脚本1.声明脚本2.表达式脚本3.代码脚本 ❄️5.JSP 内置对象❄️6.JSP 域对象 &#x1f30d;二. EL❄️1.EL 表达式介绍❄️2.EL 运算操作❄️3.EL 的 11 个隐含对象 &…

Unity Dots理论学习-5.与ECS相关的概念

DOTS的面向数据编程方式比你在MonoBehaviour项目中常见的面向对象编程方式更适合硬件开发。可以尝试理解一些与数据导向设计&#xff08;DOD&#xff09;相关的关键概念&#xff0c;以及这些概念如何影响你的代码&#xff0c;对你在MonoBehaviour项目中的C#编程通常是较少涉及的…

Git 与 Git常用命令

Git 是一个开源的分布式版本控制系统&#xff0c;广泛用于源代码管理。与传统的集中式版本控制系统不同&#xff0c;Git 允许每个开发者在本地拥有完整的代码库副本&#xff0c;支持离线工作和高效的分支管理。每次提交时&#xff0c;Git 会对当前项目的所有文件创建一个快照&a…

1 推荐系统概述

推荐系统概述 1 推荐系统的意义平台方信息生产者&#xff08;物品&#xff09;信息消费者&#xff08;用户&#xff09;推荐和搜索的区别 2 推荐系统架构系统架构算法架构 3 推荐系统技术栈算法画像层召回/粗排精排重排序 工程 1 推荐系统的意义 信息生产者&#xff08;平台方…