Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >容器环境检测方法总结

容器环境检测方法总结

作者头像
Bypass
发布于 2023-09-01 00:19:20
发布于 2023-09-01 00:19:20
43300
代码可运行
举报
文章被收录于专栏:BypassBypass
运行总次数:0
代码可运行

渗透测试过程中,我们的起始攻击点可能在一台虚拟机里或是一个Docker环境里,甚至可能是在K8s集群环境的一个pod里,我们应该如何快速判断当前是否在容器环境中运行呢?

当拿到shell权限,看到数字和字母随机生成的主机名大概率猜到在容器里了,查看进程,进程数很少,PID为1的进程为业务进程,这也是容器环境的典型特征。当然,以上这两种都是比较主观的判断。接下来,我们再来盘点下比较常用的几种检测方式。

方式一:查询cgroup信息

最简单精准的方式就是查询系统进程的cgroup信息,通过响应的内容可以识别当前进程所处的运行环境,就可以知道是在虚拟机、docker还是kubepods里。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /proc/1/cgroup

docker 环境下:

K8s环境下:

虚拟机环境下:

方式二:检查/.dockerenv文件

通过判断根目录下的 .dockerenv文件是否存在,可以简单的识别docker环境。

K8s&docker环境下:ls -alh /.dockerenv 可以找到文件。

虚拟机环境下:是没有这个.dockerenv文件的。

方式三:检查mount信息

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

K8s&docker环境下:

虚拟机环境下:

方式四:查看硬盘信息

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

K8s&docker环境下:

虚拟机环境下:

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

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

K8s&docker环境下:

虚拟机环境:

方式六:环境变量

docker容器和虚拟机的环境变量也有点区别,但不好判断,但pod里面的环境变量其实是很明显的。

K8s环境下:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Bypass 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
云原生安全攻防--快速识别虚拟机、Docker和K8s集群环境
对于攻击者而言,随着云原生应用普及,当攻击者获得一个shell权限时,那么这个shell可能处于虚拟主机里,也有可能在一个Docker环境里,或者在K8s集群环境的一个pod里面。
Bypass
2024/06/03
2070
云原生安全攻防--快速识别虚拟机、Docker和K8s集群环境
docker、k8s 面试总结
Docker 是基于容器技术实现的,容器技术最开始是基于 Linux Container(简称 LXC)技术实现的,通过内核提供的 Namespace 和 Cgroup 机制,实现了对应用程序的隔离以及物理资源的分配。
lincoln
2022/03/02
1.6K0
Kubernetes家族容器小管家Pod在线答疑?
本文主要理解的一个核心点,什么是Pod?我们先不关注Pod怎么使用,怎么调度,如何实现最佳实践。这些问题后续继续讨论,在不懂为什么k8s要有Pod的情况下,去先深究最佳实践没有实际意义。
囧么肥事
2022/03/09
3990
Kubernetes家族容器小管家Pod在线答疑?
轻松构建微服务之docker和高效发布
docker在创建容器进程的时候可以指定一组namespace参数,这样容器就只能看到当前namespace所限定的资源,文件,设备,网络。用户,配置信息,而对于宿主机和其他不相关的程序就看不到了,PID namespace让进程只看到当前namespace内的进程,Mount namespace让进程只看到当前namespace内的挂载点信息,Network namespace让进程只看到当前namespace内的网卡和配置信息,
kubernetes中文社区
2019/08/15
7750
轻松构建微服务之docker和高效发布
K8s迁移cgroup v2的checklist
随着Kubernetes 1.25关于cgroup v2 特性的正式发布(GA), kubelet容器资源管理能力得到加强。本文针对K8s迁移cgroup v2做了如下的checklist,主要分为:cgroup v2是什么,对于K8s意味着什么以及如何迁移等相关内容。
zouyee
2023/08/26
7990
K8s迁移cgroup v2的checklist
Docker容器逃逸
由于传播、利用本公众号亿人安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号亿人安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
亿人安全
2023/12/25
7660
Docker容器逃逸
【云原生攻防研究】容器逃逸技术概览
近年来,容器技术持续升温,全球范围内各行各业都在这一轻量级虚拟化方案上进行着积极而富有成效的探索,使其能够迅速落地并赋能产业,大大提高了资源利用效率和生产力。随着容器化的重要甚至核心业务越来越多,容器安全的重要性也在不断提高。作为一项依然处于发展阶段的新技术,容器的安全性在不断地提高,也在不断地受到挑战。与其他虚拟化技术类似,在其面临的所有安全问题当中,「逃逸问题」最为严重——它直接影响到了承载容器的底层基础设施的保密性、完整性和可用性。
绿盟科技研究通讯
2020/02/25
3.3K0
【云原生攻防研究】容器逃逸技术概览
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载
Docker 是一个开放源代码软件,是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。 Docker 容器与虚拟机类似,但二者在原理上不同,容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。
没事就要多学习
2024/07/18
2580
云上攻防-云原生篇&Docker安全&权限环境检测&容器逃逸&特权模式&危险挂载
【云原生攻防研究】针对容器的渗透测试方法
近期笔者在进行相关调研时,读到一篇总结容器环境下渗透测试方法的2020年毕业论文,作者是Joren Vrancken,就读于荷兰奈梅亨大学计算机科学专业。
绿盟科技研究通讯
2020/04/26
2.6K0
【云原生攻防研究】针对容器的渗透测试方法
在k8s中解决pod资源的正确识别
在使用docker作为容器引擎的时候,可以通过添加--memory、--cpus及更多参数来限制容器可用的cpu和内存,具体参数可以参考docker资源限制,docker对容器进行限制的原理实际上是利用Linux内核的cgroups实现的,cgroups可以限制、记录、隔离进程组所使用的物理资源(包括:CPU、memory、IO 等),为容器实现虚拟化提供了基本保证,是构建Docker等一系列虚拟化管理工具的基石
仙人技术
2021/03/29
2.3K0
在k8s中解决pod资源的正确识别
深入剖析容器技术基础
按照费曼学习法中的输入、回顾、输出、传授过程,从这篇文章开始,会将容器、k8s 等相关的知识通过一系列文章跟大家分享。若理解有偏差,还请给个及时的 Feedback。看了有收获的麻烦点个关注哦!
码农小余
2022/12/05
5480
深入剖析容器技术基础
手动部署java项目到k8s中
但是组成这么一整套的资源比较大,不利于个人安装学习。所以本文就介绍在只有k8s集群的环境下部署java项目到容器环境中。
余生大大
2022/11/02
1.6K0
手动部署java项目到k8s中
技术干货 | Docker 容器逃逸案例汇集
当获得一个Webshell,我们的攻击点可能处于服务器的一个虚拟目录里,一台虚拟机或是一台物理机,甚至是在一个Docker容器里。
Bypass
2020/08/09
3K0
【K8S专栏】Docker容器技术剖析
由于Docker的诞生,带动了容器技术的大火,以至于后面很多时候说的容器都指向Docker,其实除了Docker,还有许多其他的容器技术,比如RKT,LXC,Podman等。
没有故事的陈师傅
2022/09/15
6850
【K8S专栏】Docker容器技术剖析
容器技术基础
容器本身没有价值,有价值的是“容器编排” 一旦“程序”被执行起来,它就从磁盘上的二进制文件,变成了计算机内存中的数据、寄存器里的值、堆栈中的指令、被打开的文件,以及各种设备的状态信息的一个集合。像这样一个程序运行起来后的计算机执行环境的总和,就是我们今天的主角:进程。 容器技术核心功能,就是通过约束和修改进程的动态表现,从而为其创造出一个“边界”
Dlimeng
2023/06/30
2130
容器技术基础
【k8s学习笔记一】容器及Docker基础
在该OS上再运行应用进程;而容器的应用进程直接运行在宿主的内核,没有自己的内核,也没有硬件虚拟,比传统虚拟机更轻便。
fankhu
2021/08/06
1.1K0
面试官留步!听我跟你侃会儿Docker原理
开发人员开发完一个电商项目,该 Jar 项目包含 Redis、MySQL、ES、Haddop等若干组件。开发人员自测无误后提交给测试进行预生产测试了。
sowhat1412
2022/09/20
8540
面试官留步!听我跟你侃会儿Docker原理
在Kubernetes中利用 kubevirt 以容器方式运行虚拟机
随着Docker和Kubernetes生态圈的发展,云计算领域对容器的兴趣达到了狂热的程度。 容器技术为应用程序提供了隔离的运行空间,每个容器内都包含一个独享的完整用户环境空间, 容器内的变动不会影响其他容器的运行环境。因为容器之间共享同一个系统内核,当同一个库被多个容器使用时, 内存的使用效率会得到提升。基于物理主机操作系统内核的,那就意味着对于不同内核或者操作系统需求的应用是不可能部署在一起的。
SammyLiu
2019/06/28
15.9K1
在Kubernetes中利用 kubevirt 以容器方式运行虚拟机
容器中的隔离与限制:namespace和cgroups
容器和虚机都可以运行在Linux操作系统上,他们的不同是虚机是一个靠硬件技术虚拟出来的一个真实的操作系统环境,里面包含了ghost os,而容器只是操作系统上的一个进程,它只是模拟了操作系统的环境,进行自我管理。
jinjunzhu
2020/08/20
1.3K0
云原生基础设施之容器技术
「 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波」
山河已无恙
2023/03/02
7810
云原生基础设施之容器技术
相关推荐
云原生安全攻防--快速识别虚拟机、Docker和K8s集群环境
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验