4

【笔记】利用路径穿越漏洞为iKuai的Docker提权

 1 year ago
source link: https://loli.fj.cn/2023/04/15/%E5%88%A9%E7%94%A8%E8%B7%AF%E5%BE%84%E7%A9%BF%E8%B6%8A%E6%BC%8F%E6%B4%9E%E4%B8%BAiKuai%E7%9A%84Docker%E6%8F%90%E6%9D%83/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【笔记】利用路径穿越漏洞为iKuai的Docker提权

2023-04-152023-04-16

iKuai的Docker插件默认无法使用特权模式(--privileged),因为iKuai没有给用户root权限
利用路径穿越漏洞为iKuai的Docker插件提权,使其可以使用特权模式,可以使用docker命令部署任意容器

  • iKuai已安装Docker插件

下载Ubuntu镜像

  • 高级应用->插件管理->Docker->镜像管理->添加->选择镜像库下载->通过ubuntu关键字搜索->进入下载页

01.png
  • 向下翻页,找到20.04,选择下载

02.png

部署Ubuntu容器

  • 挂载目录通过路径穿透漏洞挂载iKuai的宿主机目录
源路径 目标路径 备注
/../../var/run/docker.sock /var/run/docker.sock 挂载Docker运行时文件,使操作Ubuntu直接操作iKuai的Docker运行时
/../../ /host 挂载iKuai宿主机的根目录(也可以挂载到其他目录,只要是Ubuntu默认镜像中存在的无用的目录即可)

在Ubuntu安装docker命令

apt update && apt install docker.io -y
  • 在Ubuntu中直接通过docker命令愉快的部署任意容器

绝对路径的注意事项

  • 当在Ubuntu系统中操作iKuai系统中的Docker时(通过Ubuntu挂载iKuai根目录的情况下),如果在docker启动命令上指定-v /aa/bb:/xx路径映射时,实际上是iKuai根目录下的/aa/bb,而不是Ubuntu根目录下的/aa/bb

映射外置存储器的注意事项

  • 当在Ubuntu系统中操作iKuai系统中的Docker时(通过Ubuntu挂载iKuai根目录的情况下),如果在Docker启动命令上指定外置存储器空间(外置硬盘或U盘)作为路径映射时,不能通过mount命令手动挂载iKuai上的外置存储器空间,因为Ubuntu的root环境只能操作Ubuntu上的挂载而不能操作iKuai的挂载,不过由于iKuai可以在Web页面进行外置存储器的挂载,所以实际上可以直接在iKuai的绝对路径下寻找到外置存储器的挂载点目录
  1. 查看挂载点目录名(iKuai在挂载外置存储器时会使用UUID生成随机的目录名)

/host:在Ubuntu上的iKuai根目录的挂载点
ssd:在iKuai的Web管理页面指定的外置存储器备注名

ls /host/etc/disk_user/

lrwxrwxrwx 1 root root 46 Apr 14 23:29 ssd -> /etc/disk/57786b76-38f0-4773-b351-2ec17d86aaa4
  1. 通过挂载点找到外置存储器根目录作为Docker的路径映射参数

因为在绝对路径的注意事项有提到,在Docker命令指定路径映射时实际上是从iKuai的根目录开始的,所以这里无需指定Ubuntu上的iKuai根目录挂载点/host

docker -v /etc/disk/57786b76-38f0-4773-b351-2ec17d86aaa4:/xxx

恩山无线论坛——great轻狂


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK