社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker容器信息收集

哈拉少安全小队 • 1 年前 • 187 次点击  

文章前言

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

信息收集

环境确定

确定当前环境是否真的为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


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/147412
 
187 次点击