Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Redcloud — 使用 Docker 自动化部署红队基础设施 | Kitploit
工具/GitHubGitHub/khast3x/redcloud
渗透测试框架容器安全漏洞利用框架红队
GitHubkhast3x/redcloud

Redcloud

使用 Docker 自动化部署红队基础设施

查看仓库
1.3k20464年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

天气预报。有云,局部有 shell!

早期发布。在 Twitter 上关注我,以了解 Redcloud 的最新动态。
💁☁️🐚🌱


快速开始 - 架构 - 用例 - 截图


简介

Redcloud 是一个强大且用户友好的工具箱,用于通过 Docker 部署功能齐全的 红队基础设施。利用云端加速你的工具部署。几分钟即可完成部署。通过其精美的 Web 界面进行使用和管理。

非常适合渗透测试、射击场、红队演练和漏洞赏金!

轻松自托管你的攻击基础设施,在几分钟内部署你自己的实时、可扩展且弹性的攻击基础设施。

演示


以下演示展示了通过 SSH 部署 Redcloud,然后部署 Metasploit。接着查看 Traefik 和附加到 Metasploit 的实时卷。最后,检查 Web 终端中 Metasploit 的数据库是否正常,删除容器,然后终止 Redcloud。


特性

  • 使用内置的 SSH 功能,甚至在远程或本地部署 Redcloud,还能使用 docker-machine。
  • 通过几次点击,部署 Metasploit、Empire、GoPhish、脆弱目标、完全堆叠的 Kali 以及更多工具。
  • 通过精美的 Web 界面监控和管理你的基础设施。
  • 为你的所有工具部署重定向、socks 或 Tor 代理。
  • 轻松的网络管理和卷共享。
  • 用户和密码管理。
  • Web 终端
  • 总体而言非常舒适 🐣

快速开始

设置:```bash

If deploying using ssh

cat ~/.ssh/id_rsa.pub | ssh root@your-deploy-target-ip 'cat >> .ssh/authorized_keys'

If deploying using docker-machine, and using a machine named "default"

eval (docker-machine env default)

Check your Python version

Use python3 if default python version is 2.x

python --version

root@kitploit:~
部署:```bash
> git clone https://github.com/khast3x/redcloud.git
> cd redcloud
> python redcloud.py

Redcloud 使用 PyYAML 来打印可用模板列表。它默认安装在大多数系统上。
如果没有,只需运行:```bash

Use pip3 if default python version is 2.x

pip install -r requirements.txt

root@kitploit:~
Redcloud 有 3 种不同的部署方式:
1. **本地部署**
2. **远程部署,使用 ssh**。需要将你的公钥添加到目标的 `authorized_keys` 文件中。
3. **远程部署,使用 docker-machine**。运行 `eval (docker-machine env deploy_target)` 命令以预加载 docker-machine 的环境,然后运行 `redcloud.py`。Redcloud 会自动检测你的 docker-machine,并高亮与 docker-machine 部署相关的菜单项。

___

<h4 align="center">
  <b>模板</b> 
  <br>
  <br>

</h4>
<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/345/e38f19fa9cc10216030f7856b99170a4ac7c35399c2dd9daf19156a6e9b75e46.png" width="540" title="Redcloud 模板">
</p>

___

**简要说明:**

`redcloud.py` 部署一个 [Portainer](https://www.portainer.io/) 堆栈,**预加载了许多供你攻击行动使用的工具模板**,基于 Docker 运行。部署完成后,通过 [Web 界面](#screenshots) 控制 Redcloud。使用 [Traefik](https://traefik.io/) 作为反向代理。可使用系统自带的 `ssh` 或 `docker-machine` 轻松远程部署到你的目标服务器。

* :rocket: 是否曾想过只需点击几下就能在云中启动一个 Kali?  
* :package: 想在工具、技术和阶段之间建立清晰的隔离?  
* :ambulance: 监控你的扫描和 C2 的健康状况?  
* :fire: 跳过设置钓鱼活动的系统管理工作,更快地获取权限?  
* :smiling_imp: 好奇如何构建*理想的攻击基础设施?

使用 Web UI 监控、管理并**与每个容器交互**。使用流畅的 Web 终端,就像使用自己的终端一样。通过 Portainer 简洁的 UI 创建卷、网络和端口转发。

借助数据中心级互联网的力量,部署并处理所有你喜爱的工具和技术 :rocket:

___

*在接下来的部分,我们将更深入地探讨 Redcloud 的设计理念。不过你也可以直接上手,无需深入了解。*

___

* :book: **目录**
  - [简介](#introduction)
  - [特性](#features)
  - [快速开始](#quick-start)
  - [细节](#details)
    - [Redcloud 架构](#redcloud-architecture)
    - [部署工作流](#deployment-workflow)
    - [网络](#networks)
    - [卷](#volumes)
    - [从终端访问容器](#accessing-containers-from-the-terminal)
    - [访问文件](#accessing-files)
    - [SSL 证书](#ssl-certificates)
    - [停止 Redcloud](#stopping-redcloud)
    - [Portainer 应用模板](#portainer-app-templates)
    - [Traefik 反向代理](#traefik-reverse-proxy)
    - [Redcloud 安全注意事项](#redcloud-security-considerations)
  - [经过测试的部署候选方案](#tested-deployment-candidates)
  - [故障排除](#troubleshooting)
  - [用例](#use-cases)
  - [截图](#screenshots)
  - [贡献指南](#contribution-guideline)
  - [托管 Redcloud](#hosting-redcloud)
  - [灵感与致谢](#inspirations--shout-outs)

___

## 细节

### Redcloud 架构

* `redcloud.py`:使用 Docker 和 Portainer 启动/停止 Web 界面和应用模板。
* `portainer`:Portainer Web 界面。
* `traefik`:Traefik 反向代理容器,用于 Web 界面、API 和文件容器。某些模板已预先配置路由以方便使用。参见 `templates.yml`。
* `templates`:提供应用模板的 python3 `http.server` 容器。位于“内部”网络中。
* `cert_gen`:生成 SSL 证书的 [omgwtfssl](https://github.com/paulczar/omgwtfssl) 容器,采用常见最佳实践。
* https://your-server-ip/portainer:部署后的 Redcloud Web 界面。
* https://your-server-ip/files:Redcloud 的 `redcloud_files` 卷。你还可以访问 `redcloud_log` 容器内容,受与 Traefik 相同的 `.htpasswd` 保护。默认凭据:`admin:Redcloud`
* https://your-server-ip/api:Traefik 反向代理健康监控页面。显示路由、后端、返回码的实时统计信息。如果通过 Traefik 配置了反向回调植入数据,也会显示这些信息。

### 部署工作流

**Redcloud 部署工作流如下:**
1. 克隆/下载 Redcloud 仓库。
2. 运行 `redcloud.py`。
3. 从菜单中选择部署候选方案(本地、ssh、docker-machine)。
4. `redcloud.py` 自动执行:
   * 检查目标机器上是否存在 `docker` 和 `docker-compose`。
   * 如果缺失,则安装 `docker` 和 `docker-compose`。
   * 使用 `docker-compose` 在目标上部署 Web 堆栈。
5. 部署完成后,`redcloud.py` 会输出 URL。前往 https://your-deploy-machine-ip/portainer。
6. 从 Web 界面设置用户名/密码。
7. 选择端点(列表中唯一的一个)。
8. 点击左侧菜单中的“应用模板”以访问模板 :rocket:

**应用模板部署工作流如下:**
1. 选择模板。
2. 如果你希望添加额外选项,选择“+ 显示高级选项”。
3. 根据需要添加端口映射、网络选项和卷映射。
4. 选择“部署容器”。
5. Portainer 将启动容器。如果需要拉取镜像,可能需要几分钟。如果你的服务器位于数据中心,此步骤会非常快。
6. 容器应已运行 :rocket:
7. Portainer 将重定向到“容器”页面。在那里,你可以:
   a. 查看容器实时日志。
   b. 检查容器详细信息(`docker inspect`)。
   c. 查看容器实时统计信息(内存/CPU/网络/进程)。
   d. 使用 Web shell 与容器交互。
   e. 根据应用模板选择使用 `bash` 或 `sh`。从下拉菜单中相应选择。

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/345/cf013b73e9bb7dc6f94dafbd31d9d158f7736fc676f94995c64de133ad9bebbe.png" width="540" title="Redcloud 菜单">
</p>

### 网络

Redcloud 让你轻松试验网络和容器。  
你可以创建使用不同驱动程序的额外网络,并按需将容器附加到这些网络。Redcloud 自带两个网络:`redcloud_default` 和 `redcloud_inside`。

### 卷

你可以通过共享卷在容器之间共享数据。Redcloud 自带 3 个卷:

* `certs`:包含由 [omgwtfssl](https://github.com/paulczar/omgwtfssl) 生成的证书的容器。
* `files`:标准文件共享卷。目前,当你浏览 https://your-server-ip/files 时,文件可用,并由 Traefik 反向代理容器直接从 `files` 卷提供。典型用例是将该卷附加到 Metasploit 容器,直接将有效载荷生成到 `files` 卷中。现在你可以通过 Traefik 的文件服务器路由直接提供你新鲜的有效载荷。
* `logs`:用于日志,也通过文件服务器提供。访问需要基本身份验证。默认为 `admin:Redcloud`。

### 从终端访问容器

如果你希望留在终端中与已部署的容器交互,使用 Docker 非常容易。需注意以下几点:
* 大多数容器有 `bash`,但有些使用 `sh`
* 所有 Redcloud 应用模板的容器名称以 `red_` 开头,例如 `red_msf-postgresql`
* 使用 Docker,你可以使用 `docker exec` 或 `attach` 与容器交互
  * 推荐使用 `exec`,因为它会创建一个新进程
  * `attach` 会直接连接到正在运行的进程,可能导致容器终止
* 如果 Redcloud 运行在:
  * 本地或使用 `docker-machine`,直接在本地 shell 中输入命令即可
  * 使用 `ssh`,首先 SSH 进入你的部署目标,然后运行以下命令

要开始与所需的已部署容器交互:```bash
> docker exec -it red_container-name /bin/bash
root@70a819ef0e87:/#

如果你看到以下消息,说明bash未安装。在这种情况下,只需将/bin/bash替换为/bin/sh:```bash

docker exec -it red_container-name /bin/bash OCI runtime exec failed: exec failed: container_linux.go:344: starting container process caused "exec: "/bin/bash": stat /bin/bash: no such file or directory": unknown

docker exec -it red_container-name /bin/sh

root@kitploit:~
使用 `docker attach`,只需运行:```bash
> docker attach red_container-name

如果使用 attach,容器需要以 交互模式 启动,才能进入交互式 shell。

访问文件

将浏览器指向 https://你的-redcloud-ip/files。
更多信息请参考 files 卷。

SSL 证书

Redcloud 在部署时会生成一个新的 未签名 SSL 证书。
证书由 omgwtfssl 生成,实现了大多数最佳实践。 生成后:

默认情况下,它会将生成的证书转储到 /certs 目录,并同时以标准 YAML 格式输出到标准输出,使其易于在 Ansible 或其他使用 YAML 的工具中使用。

证书存储在一个名为 certs 的共享 Docker 卷中。如果在部署时在“+ 高级设置”中指定,你的容器可以访问此卷。Traefik 反向代理容器直接从其配置文件中获取证书。如果你想用自己的证书替换这些证书,只需替换此卷中的证书即可。

这也意味着你可以将生成的证书共享到其他容器中,例如 Empire 或 Metasploit 用于反向回调,或用于钓鱼活动。 大多数与 SSL 相关的配置可以在 traefik/traefik.toml 或 docker-compose.yml 文件中找到。

停止 Redcloud

你可以直接从菜单停止 Redcloud。
在停止 Redcloud 之前,需要手动停止已部署的应用模板。 你可以使用 Portainer 的 web 界面或 docker rm -f 容器名称 来停止它们。
如果你想强制停止运行 Redcloud 的 Portainer 容器,只需在 redcloud/ 文件夹内运行 docker-compose kill。 本地 和 docker-machine 停止选项相同,因此它们被合并到同一个选项中。

Portainer 应用模板

Redcloud 使用 Portainer 来编排和与 Docker 引擎交互。Portainer 本身是一个很棒的项目,可以远程管理 Docker 部署。Portainer 还包含一个非常方便的模板系统,这是我们 Redcloud 部署的主要组件。
模板可以在 ./templates/templates.yml 中找到。Portainer 从一个专用容器(templates)获取模板文件。

Traefik 反向代理

Traefik 是一个出色的“云原生边缘路由器”。它取代了之前的 NGINX 反向代理设置。
部署期间会构建一个 Traefik 镜像,使用位于 traefik/Dockerfile 的 Dockerfile。它添加了一个包含 admin:Redcloud 凭据的 .htpasswd 文件。

默认情况下,部署会生成以下路由:

  • https://你的服务器-ip/portainer
  • https://你的服务器-ip/files
  • https://你的服务器-ip/api

身份验证基于 .htaccess 数据。

通过 Traefik API web 界面,你可以查看已部署的路由、监控健康状态以及实时指标。非常整洁。

你可以通过以下方式添加额外的标签,告诉 Traefik 将流量路由到哪里:

  • traefik/traefik.toml 文件
  • docker-compose.yml 文件
  • templates.yml 文件
  • Portainer 的 web 界面

更多信息请参见官方文档。

api

Redcloud 安全考虑

Redcloud 部署时使用自签名 https 证书,并通过它代理所有与 web 控制台的交互。
然而,默认网络会暴露你的容器端口到外部世界。

你可以:

  • 移除暴露的端口,并从 Docker 网络内部的机器访问正常端口
  • 添加自定义 labels 以使用 Traefik 创建路由。请参阅 docker-compose.yml 文件获取灵感。
  • 从模板启动一个带 noVNC(通过 http 的 VNC)的 Ubuntu 或 Kali,将其同时添加到“内部”和“外部”网络,并从内部访问暴露的接口。
  • 添加 .htaccess 配置

此外:

  • docker 和 docker-machine 安装需要 root 权限。你可以按照官方文档降低权限要求。
  • 安装脚本直接从官方 Docker 仓库拉取。
  • redcloud.py 使用 icanhazip.com 获取 Redcloud 的公网 IP 地址。

测试过的部署候选环境

部署目标状态
Ubuntu Bionic✔️
Ubuntu Xenial✔️
Debian Strech✔️

故障排除

  • 使用 python --version 检查你的默认 python 版本。Redcloud 需要 python 3+。
  • 如果系统较旧,请使用 python3 而不是 python。
  • redcloud.py 要求部署候选环境在其 .ssh/authorized_keys 中有公钥,并利用用户的公钥进行无密码认证。这是大多数 VPS 工作流程的默认配置。
  • docker-machine 部署要求用户已在云基础设施(如 AWS、GCP、Linode 和许多其他平台)上运行了一个 docker-machine。部署后,只需按上述说明运行 eval 命令即可。
  • docker 和 docker-machine 安装需要 root 权限。你可以按照官方文档降低权限要求。
  • 如果部署后没有立即看到“应用模板”菜单项,请刷新网页并确保没有停留在端点选择菜单。
  • 如果你想创建新的用户名/密码组合,请在部署候选环境中删除 Portainer 的持久化数据:rm -rf /opt/portainer/data
  • 如果遇到 python 错误,你可能需要在 debian/ubuntu 基础上安装 python3-distutils 包:apt-get install python3-distutils。
  • 如果在部署应用模板时收到错误提示“容器名称已存在”,可能是因为你在未移除之前部署的容器的情况下尝试部署同一个应用模板。只需移除同名的旧容器,或更改新容器的名称。
  • 如果感觉容器出了问题,标准流程是从 web 界面检查容器的日志。
  • 如果在 OSX 上运行本地部署,portainer 将无法使用其默认卷位置 /opt/。要解决此问题,请打开 docker-compose.yml 文件,将 /opt/portainer/data:/data 替换为具有写入权限的文件夹,例如:/tmp/portainer/:/data,并在运行 Redcloud 之前创建 /tmp/portainer 目录。
  • 如果遇到 web 终端问题,请尝试禁用某些附加组件、使用隐私浏览模式或尝试其他浏览器。如果所有方法都失败,请通过终端连接到你的容器。

用例

  • 创建你自己的渗透测试实验室,与朋友和同事一起练习黑客技能。
  • 使用蜜罐保护你的攻击基础设施。
  • 重建 APT 基础设施,包括反向植入负载均衡、跨地域服务器和多层操作。
  • 使用 Metasploit 或 Empire 自动化 payload 生成,使用 gscript 进行反病毒绕过,并通过 /files/ URI 即时提供。
  • 比你的竞争对手更快地执行漏洞赏金管道。
    • 当新的漏洞赏金发布时,使用 Portainer API 启动 Sniper,然后通过 /files/ URI 获取日志。
  • 使用反向代理覆盖 Metasploit 或 Empire。
  • 在你自己的 Tor 代理背后启动扫描。
  • 使用 Tor socks 和 Ubuntu VNC 查看 .onion 站点。
  • 使用 Spiderfoot 和一个 Tor 容器作为代理进行高级 OSINT。

截图

  • 模板列表

  • 部署容器

  • 通过 web 界面使用 Metasploit 的 msfconsole

  • Traefik 反向代理路由的实时数据

  • 使用 ssh 部署


贡献指南

欢迎任何帮助。这是一个副项目,因此可能缺少一些螺丝钉。最重要的是:

  • 报告或修复 Redcloud 的 bug 和问题。
  • 添加模板。请保持整洁,并尽可能使用创建者的 Docker Hub 仓库。
  • 添加文档。
  • 在博客文章中详细说明用例。我会在此处添加博客文章的链接,所以如果你写了文章,请务必联系我!✌️
  • 将 Traefik 集成到更多模板中。例如,我目前在 spiderfoot 和 ubuntu novnc 上遇到了问题。
  • 将错别字作为 issue 提交。(不接受 pull requests)

托管 Redcloud

你可以在任何运行 Docker 的 Unix 服务器上托管 Redcloud。
Redcloud 旨在用于云环境,例如带有 ssh 的简单 VPS,甚至是 AWS EC2、GCP 等。

许多云提供商提供免费额度以便你熟悉其服务。许多列表和教程介绍了从主要供应商获得免费托管额度的方法。这个列表是一个很好的起点。

关于部署方法,我个人更喜欢使用 docker-machine,因为一旦你设置好云提供商的驱动程序,生成新机器并管理它们就会变得非常容易。如果你更喜欢使用 ssh,请务必查看 evilsocket 的 shellz 项目来管理你的密钥和配置文件。


灵感与致谢

  • Red Team Infrastructure Wiki - bluscreenofjeff

  • Automated Red Team Infrastructure Guide - rastamouse

  • Safe Red Team Infrastructure - Tim MalcomVetter

  • Red Baron - Coalfire Research

  • Rapid Attack Infrastructure - Obscurity Labs

  • Decker - Steven Aldinger

  • hideNsneak - Mike Hodges

  • @Ullaakut 提供的 Logo - 请务必查看他的仓库!


最后,如果你希望看到你的工具被集成,请在 Twitter 上联系我。这个项目是在我的业余时间维护的。请关注 dev 分支以获取即将推出的功能。
Redcloud 最初是为了更方便地为信息安全学生部署培训环境而开发的。


如果你想关注此项目的更新:

twitter

下载工具