5000 - Pentesting Docker Registry

从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

基本信息

一个名为Docker registry的存储和分发系统用于存放命名的 Docker 镜像,这些镜像可能有多个版本,通过标签进行区分。这些镜像在注册表中的Docker repositories中组织,每个存储库存储特定镜像的各个版本。提供的功能允许用户下载镜像到本地或上传到注册表,前提是用户具有必要的权限。

DockerHub 作为 Docker 的默认公共注册表,但用户也可以选择运行开源 Docker 注册表/分发的本地版本,或选择商业支持的Docker Trusted Registry。此外,还可以在线找到各种其他公共注册表。

要从本地注册表下载镜像,使用以下命令:

docker pull my-registry:9000/foo/bar:2.1

这个命令从my-registry域名上端口9000处的本地注册表中获取foo/bar镜像版本2.1。相反,要从DockerHub下载相同的镜像,特别是如果2.1是最新版本,则命令简化为:

docker pull foo/bar

默认端口: 5000

PORT    STATE SERVICE  VERSION
5000/tcp open  http    Docker Registry (API: 2.0)

发现

发现运行此服务的最简单方法是在nmap的输出中找到它。无论如何,请注意,由于它是基于HTTP的服务,可能在HTTP代理后面,nmap无法检测到它。 一些指纹:

  • 如果访问 /,响应中不会返回任何内容

  • 如果访问 /v2/,则会返回 {}

  • 如果访问 /v2/_catalog,可能会获得:

  • {"repositories":["alpine","ubuntu"]}

  • {"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}

枚举

HTTP/HTTPS

Docker注册表可能配置为使用HTTPHTTPS。因此,您可能需要做的第一件事是找出正在配置的是哪种:

认证

Docker注册表也可以配置为需要认证

如果Docker Registry需要身份验证,您可以尝试使用此方法进行暴力破解如果找到有效凭据,您将需要使用它们来枚举注册表,在curl中可以像这样使用它们:

使用 DockerRegistryGrabber 进行枚举

DockerRegistryGrabber 是一个用于枚举/转储 Docker 仓库(无需或带有基本身份验证)的 Python 工具。

使用curl进行枚举

一旦您获得对Docker注册表的访问权限,以下是您可以使用的一些命令进行枚举:

使用 Docker 进行枚举

在WordPress镜像中植入后门

在发现一个保存WordPress镜像的Docker Registry的情况下,你可以对其进行后门操作。 创建后门:

创建一个 Dockerfile:

创建新镜像,检查其是否已创建,并推送它:

在SSH服务器镜像中植入后门

假设你发现了一个带有SSH镜像的Docker Registry,并且想要在其中植入后门。 下载该镜像并运行它:

从SSH镜像中提取sshd_config文件:

并修改它以设置:PermitRootLogin yes

创建一个如下所示的 Dockerfile

```bash FROM 10.10.10.10:5000/sshd-docker-cli COPY sshd_config /etc/ssh/ RUN echo root:password | chpasswd ``` **创建**新镜像,**检查**其是否已创建,并**推送**它: ```bash docker build -t 10.10.10.10:5000/sshd-docker-cli . #Create docker images docker push registry:5000/sshd-docker-cli #Push it ``` ## 参考资料 * [https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/](https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)

支持HackTricks的其他方式:

最后更新于