文章前言
本篇文章我们主要介绍在渗透测试过程中在获取到容器权限的情况下对容器进行有效的信息收集
信息收集
环境确定
确定当前环境是否真的为Docker容器环境,常见的方式有以下几种:
方式一:检查/.dockerenv文件是否存在
ls -al /
方式二:检查是否存在container环境变量(感觉不是很靠谱)
env

export

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

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

特权模式
检测当前环境是否以特权模式启动,如果输出结果为0000003fffffffff,则说明是以特权模式启动的
cat /proc/self/status | grep CapEff
CAP信息
#查看容器docker ps -a#容器进程docker top 5713dea#容器CAPgetpcaps 51776


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

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

可用命令
查看当前系统可用的命令
ls /usr/bin

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

网络信息
Docker中默认是不提供ifconfig命令的:
ifconfigip addr

在出网且提供系统软件安装命令的情况下可以通过安装命令进行安装操作
#Ubuntuapt-get install net-tools#CentOSyum install net-tools

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

计划任务
查看容器中的计划任务,如果有计划任务列表可以通过增加计划任务的方式来实现反弹shell的目的
ls /var/spool/ls /var/spool/cron/crontabscat /var/spool/cron/crontabs/root

SSH私钥
ls -al ~/ls -al ~/.sshcat ~/.ssh/id_rsa
历史命令
查看历史命令记录来检索是否有敏感的历史连接记录以及连接账户密码信息等:
cat ~/.bash_history
原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34311.html