《入侵生命周期细分实践指南系列》:容器逃逸攻击

admin 2022年10月1日08:49:29评论21 views字数 1988阅读6分37秒阅读模式

美创科技为了更好地进行入侵检测和防御,参照各种安全威胁框架和自身的实践与思考,提出了基于入侵生命周期的攻击管理模型,作为美创新一代安全架构的三大支柱之一。

入侵生命周期v1.0把入侵过程划分为7个阶段:探索发现、入侵和感染、探索感知、传播、持久化、攻击和利用、恢复。入侵生命周期v1.0同样以ATT&CK作为基本战术知识库,匹配到不同的入侵阶段。需要注意的是,并非所有的入侵都会经历这7个阶段,也没有绝对的线性次序。

1)探索发现

在这个阶段中,攻击者会先锁定攻击对象,然后利用某些技术手段,尽可能多地获取目标暴露出来的信息,如通过端口扫描、指纹探测等方式,发现敏感端口及版本信息,进而寻找攻击点,为下一步入侵做准备。

2)入侵和感染

在这个阶段,攻击者会根据“探索发现”阶段所发现的重要信息,来对目标暴露出的攻击面进行攻击尝试,在“探索发现”阶段收集到的信息越多,攻击对象所暴露的攻击面也就越多,攻击更易成功。

3)探索感知

攻击者在成功进入系统内部后,由于是首次进入所以会出现对内部环境不熟悉的情况,这时攻击者的动作一般会是对当前所处环境进行探索,摸清内部大致的网络结构,常常伴随着被入侵本机的敏感信息收集以及对内网大量的端口进行扫描,后续根据攻击者的目的进行下一步操作。

4)传播

在此阶段,攻击者根据上一阶段在内网探索感知收集到的信息,选择特定的攻击手法。如若发现内部是域环境,攻击者可能会尝试先攻破域控服务器,再传播其他机器。若是工作组环境,可能会利用收集到的端口和服务信息,选择特定漏洞进行批量扫描攻击,来尽可能多地继续获得其他计算机的控制权。

5)持久化

攻击者在对资产进行恶意操作后,为了能够减少再次连接的攻击成本,方便下次进入,会进行“留后门”的操作,常见的后门如:建立计划任务,定时连接远程服务器;设置开机启动程序,在每次开机时触发执行特定恶意程序;新建系统管理员账号等。这样便于攻击者下次快速登录并控制该系统。

6)攻击和利用

攻击者在此阶段便会开始对目标资产进行恶意操作,按照攻击者意愿,对能利用的数据进行窃取、利用;对操作系统、敏感文件进行破坏、删除。所有的防御手段都应该极力阻止攻击者进行到这一阶段。

7)恢复

攻击者在执行所有的攻击操作时,往往会在系统上留下大量的行为日志,因此在这一阶段,攻击者会对记录自身痕迹的所有日志进行处理,或删除或混淆,从而消灭证据,逃避追踪。

本系列文章基于美创科技入侵生命周期1.0架构,细分各阶段攻击者的常用攻击手段,并对相关攻击手段的具体实施方式进行逐一剖析,为安全防御建设提供有力知识补充和反制准备。






  容器逃逸攻击(攻击和利用)

攻击者可能会突破容器以访问底层主机。这可以允许攻击者从主机级别或主机本身访问其他容器化资源。原则上,容器化资源应提供应用程序功能的明确分离,并与主机环境隔离。

攻击者可以通过多种方式逃到宿主环境中。示例包括创建一个容器,该容器配置为使用 bind 参数挂载主机的文件系统,这允许攻击者丢弃有效负载并在主机上执行诸如 cron 之类的控制实用程序,并利用特权容器在底层主机上运行命令。获得对主机的访问可能为攻击者提供实现后续目标的机会,例如建立持久性、在环境中横向移动或在主机上建立命令和控制通道。

从入侵生命周期角度分析,该攻击手法被使用在攻击和利用阶段。

从攻击行为链条的上下文来看,针对容器逃逸输入输出如下

输入:攻击者获得了虚拟容器的权限

输出:攻击者利用虚拟容器的不安全配置逃逸到物理机


针对容器逃逸,可选择攻击手法如下

1、攻击者利用docker remote api未授权访问逃逸到物理机,获取物理机权限。

(1)、目标docker容器以以下命令启动一个镜像

《入侵生命周期细分实践指南系列》:容器逃逸攻击

(2)、攻击者在攻击机器上列出目标容器信息

《入侵生命周期细分实践指南系列》:容器逃逸攻击

(3)、查看目标容器信息

《入侵生命周期细分实践指南系列》:容器逃逸攻击

(4)、将目标服务器物理根目录挂在到新容器的/mnt目录下

《入侵生命周期细分实践指南系列》:容器逃逸攻击

(5)、将反弹shell脚本写入计划任务

《入侵生命周期细分实践指南系列》:容器逃逸攻击

(6)、攻击机器成功接收到反弹shell

《入侵生命周期细分实践指南系列》:容器逃逸攻击

2、攻击者获取docker容器权限,利用docker.sock挂载到容器内部逃逸到物理机。

(1)、docker以以下方式启动

《入侵生命周期细分实践指南系列》:容器逃逸攻击

(2)、在容器中找到docker.sock

《入侵生命周期细分实践指南系列》:容器逃逸攻击

(3)、在容器查看宿主机docker信息

《入侵生命周期细分实践指南系列》:容器逃逸攻击

(4)、运行一个新容器并挂载宿主机根路径到新容器的/test目录下,之后可进行将反弹shell写入计划任务,即可获得物理机权限

《入侵生命周期细分实践指南系列》:容器逃逸攻击

3、攻击者获取docker权限,该docker以特权模式启动,攻击者将宿主机磁盘设备挂载进容器内部,以达到docker逃逸

(1)、docker以特权模式启动容器

《入侵生命周期细分实践指南系列》:容器逃逸攻击

(2)、攻击者获得该docker容器权限

《入侵生命周期细分实践指南系列》:容器逃逸攻击

(3)、在容器内查看磁盘文件

《入侵生命周期细分实践指南系列》:容器逃逸攻击

(4)、将/dev/sda1 挂载到test目录

《入侵生命周期细分实践指南系列》:容器逃逸攻击

(5)、在物理机计划任务中写入反弹shell

《入侵生命周期细分实践指南系列》:容器逃逸攻击

(6)、攻击机成功接收到反弹shell

《入侵生命周期细分实践指南系列》:容器逃逸攻击

《入侵生命周期细分实践指南系列》:容器逃逸攻击


《入侵生命周期细分实践指南系列》:容器逃逸攻击

原文始发于微信公众号(第59号):《入侵生命周期细分实践指南系列》:容器逃逸攻击

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月1日08:49:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   《入侵生命周期细分实践指南系列》:容器逃逸攻击http://cn-sec.com/archives/1326064.html

发表评论

匿名网友 填写信息