docker容器详细信息(docker容器间如何通信)

文章前言

本篇文章我们主要介绍在渗透测试过程中在获取到容器权限的情况下对容器进行有效的信息收集

信息收集

环境确定

确定当前环境是否真的为Docker容器环境,常见的方式有以下几种:

方式一:检查/.dockerenv文件是否存在

ls -al /

方式二:检查是否存在container环境变量(感觉不是很靠谱)

env

docker容器详细信息(docker容器间如何通信)

export

docker容器详细信息(docker容器间如何通信)

方式三:检查/proc/1/cgroup内是否包含\\”docker\\”等字符串

cat /proc/1/cgroup

docker容器详细信息(docker容器间如何通信)

权限信息

其次我们还需要确定我们当前具备的权限,一般dockers启动都是以root权限运行的:

whoami

docker容器详细信息(docker容器间如何通信)

特权模式

检测当前环境是否以特权模式启动,如果输出结果为0000003fffffffff,则说明是以特权模式启动的

cat /proc/self/status | grep CapEff
CAP信息
#查看容器docker ps -a 
#容器进程docker top 5713dea
#容器CAPgetpcaps 51776

docker容器详细信息(docker容器间如何通信)

docker容器详细信息(docker容器间如何通信)

位置信息

其次我们还需要确定当前所处的位置

docker容器详细信息(docker容器间如何通信)

系统信息

查看当前系统版本信息确定是否可以通过内核漏洞进行权限提升或者实现容器逃逸,例如:DirtyCow

lsb_releasen -a

docker容器详细信息(docker容器间如何通信)

可用命令

查看当前系统可用的命令

ls /usr/bin

docker容器详细信息(docker容器间如何通信)

是否出网

检测当前主机是否出网,这对后期反弹shell等具有很重要的作用

curl www.baidu.com

docker容器详细信息(docker容器间如何通信)

网络信息

Docker中默认是不提供ifconfig命令的:

ifconfigip addr

docker容器详细信息(docker容器间如何通信)

在出网且提供系统软件安装命令的情况下可以通过安装命令进行安装操作

#Ubuntuapt-get install net-tools
#CentOSyum install net-tools

docker容器详细信息(docker容器间如何通信)

进程服务

有时候我们进入容器的方式是通过容器提供的Web服务,有时候也可能是容器自身的安全漏洞,在我们获取到容器的权限后我们可以对当前容器所运行的其他Web服务进行一个简单探测,探测方式可以是本地端口服务也可以是进程信息:

ps -auxnetstat -ntlp

docker容器详细信息(docker容器间如何通信)

计划任务

查看容器中的计划任务,如果有计划任务列表可以通过增加计划任务的方式来实现反弹shell的目的

    ls /var/spool/ls /var/spool/cron/crontabscat /var/spool/cron/crontabs/root

    docker容器详细信息(docker容器间如何通信)

    SSH私钥
      ls -al ~/ls -al ~/.sshcat ~/.ssh/id_rsa

      历史命令

      查看历史命令记录来检索是否有敏感的历史连接记录以及连接账户密码信息等:

      cat ~/.bash_history

      原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34311.html

      (0)
      七芒星实验室's avatar七芒星实验室
      上一篇 2024年4月6日 上午6:23
      下一篇 2024年4月6日 上午6:25

      相关推荐

      发表回复

      您的邮箱地址不会被公开。 必填项已用 * 标注