容器环境检测方法总结

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

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

方式一:查询cgroup信息

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

cat /proc/1/cgroup

docker 环境下:

f7ff7807154036745e11b27165453530.pngK8s环境下:

2535d1599908bd08f686a2b3074779de.png

虚拟机环境下:

2842db1f2b9812ec84f896a99b9c5e89.png

方式二:检查/.dockerenv文件

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

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

d51b63634e9672d0a84cc20d59908591.png

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

cb99d27ea5e6705aed52f97b85a155d4.png

方式三:检查mount信息

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

K8s&docker环境下:

1928bd8fe3c16aad17b4769db7bf67b1.png

虚拟机环境下:

3c1f3a684c266a1c5a7ec43b1340263a.png

方式四:查看硬盘信息

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

K8s&docker环境下:

b522370ce0921a976cfc95ad67497738.png

虚拟机环境下:

d9725da1a530a33a8f9e711c440da3a0.png

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

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

K8s&docker环境下:

7e931d32b5df32a0ef35624dd6eb4162.png

虚拟机环境:

f4b88c5812a41ef2a7aaca197c770f60.png

方式六:环境变量

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

K8s环境下:

4739e3f45b79397ab3449e4dc1ff3b85.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bypass--

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值