深入容器世界:渗透测试下的信息收集与权限探测

文章前言

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

信息收集

环境确定

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

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

ls -al /
图片[1]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛

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

env
图片[2]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
export
图片[3]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛

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

cat /proc/1/cgroup
图片[4]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
权限信息

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

whoami
图片[5]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
特权模式

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

cat /proc/self/status | grep CapEff
CAP信息
#查看容器
docker ps -a 

#容器进程
docker top 5713dea

#容器CAP
getpcaps 51776
图片[6]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
图片[7]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
位置信息

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

图片[8]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
系统信息

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

lsb_releasen -a
图片[9]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
可用命令

查看当前系统可用的命令

ls /usr/bin
图片[10]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
是否出网

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

curl www.baidu.com
图片[11]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
网络信息

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

ifconfig
ip addr
图片[12]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛

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

#Ubuntu
apt-get install net-tools

#CentOS
yum install net-tools
图片[13]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
进程服务

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

ps -aux
netstat -ntlp
图片[14]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
计划任务

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

ls /var/spool/
ls /var/spool/cron/crontabs
cat /var/spool/cron/crontabs/root
图片[15]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
SSH私钥
ls -al ~/
ls -al ~/.ssh
cat ~/.ssh/id_rsa
图片[16]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
历史命令

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

cat ~/.bash_history
图片[17]-深入容器世界:渗透测试下的信息收集与权限探测-山海云端论坛
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容