Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Redcloud — Автоматизированное развертывание инфраструктуры Red Team с использованием Docker | Kitploit
Инструменты/GitHubGitHub/khast3x/redcloud
Фреймворки для пентестаБезопасность контейнеровФреймворки для эксплойтовRed Teaming
GitHubkhast3x/redcloud

Redcloud

Автоматизированное развертывание инфраструктуры Red Team с использованием Docker

Репозиторий
1.3k2043 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Прогноз погоды. Облачно с вероятностью шеллов!

Ранний выпуск. Подписывайтесь на меня в Twitter, чтобы быть в курсе разработки Redcloud.
💁☁️🐚🌱


Быстрый старт - Архитектура - Варианты использования - Скриншоты


Введение

Redcloud — это мощный и удобный инструментарий для развертывания полнофункциональной инфраструктуры Red Team с использованием Docker. Используйте скорость облака для ваших инструментов. Развертывается за минуты. Используйте и управляйте им с помощью полированного веб-интерфейса.

Идеально подходит для тестов на проникновение, полигонов, red teaming и bug bounty!

Размещайте свою атакующую инфраструктуру самостоятельно без проблем, разверните свою собственную живую, масштабируемую и отказоустойчивую наступательную инфраструктуру за считанные минуты.

Демо

Следующая демонстрация показывает развертывание Redcloud через SSH, затем Metasploit. Затем мы смотрим на Traefik и живой том, подключенный к Metasploit. Наконец, мы проверяем, что база данных Metasploit работает через веб-терминал, удаляем контейнер и завершаем работу Redcloud.


Возможности

  • Развертывание Redcloud локально или удаленно с помощью встроенных функций SSH и даже docker-machine.
  • Развертывание Metasploit, Empire, GoPhish, уязвимых целей, полноценной Kali и многих других в несколько кликов.
  • Мониторинг и управление инфраструктурой через красивый веб-интерфейс.
  • Развертывание перенаправлений, socks или Tor-прокси для всех ваших инструментов.
  • Безболезненное управление сетью и общими томами.
  • Управление пользователями и паролями.
  • Веб-терминал.
  • В целом очень удобно 🐣

Быстрый старт

Настройка:```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. После развертывания управляйте Redcloud через [веб-интерфейс](#screenshots). Использует [Traefik](https://traefik.io/) в качестве обратного прокси. Легкое удаленное развертывание на целевом сервере с помощью системного `ssh` или `docker-machine`.
  

* :rocket: Хотели когда-нибудь поднять Kali в облаке всего за несколько кликов?  
* :package: Иметь чистые изолированные среды между вашими инструментами, методами и этапами?  
* :ambulance: Мониторить состояние ваших сканов и C2?  
* :fire: Пропустить задачи системного администратора по настройке фишинговой кампании и начать взламывать быстрее?  
* :smiling_imp: Любопытно, как бы вы построили *идеальную* атакующую инфраструктуру?

Используйте веб-интерфейс для мониторинга, управления и **взаимодействия с каждым контейнером**. Используйте быстрый веб-терминал так же, как ваш собственный. Создавайте тома, сети и проброс портов с помощью простого интерфейса Portainer.

Развертывайте и управляйте всеми вашими любимыми инструментами и методами с мощью интернета дата-центровского уровня :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.
* `portainer`: Веб-интерфейс Portainer.
* `traefik`: Контейнер обратного прокси Traefik для веб-интерфейса, контейнеров API и файлов. Некоторые шаблоны имеют предварительно настроенные маршруты для удобства. См. `templates.yml`.
* `templates`: Контейнер `http.server` на Python3, который обслуживает шаблоны приложений. Находится во "внутренней" сети.
* `cert_gen`: Контейнер [omgwtfssl](https://github.com/paulczar/omgwtfssl), который генерирует SSL-сертификаты с использованием общепринятых лучших практик.
* https://your-server-ip/portainer: Веб-интерфейс Redcloud после развертывания.
* https://your-server-ip/files: Том `redcloud_files` Redcloud. Вы также можете получить доступ к содержимому контейнера `redcloud_log`, защищенному тем же `.htpasswd`, что и Traefik. Учетные данные по умолчанию: `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`.
5. После завершения развертывания `redcloud.py` выведет URL. Перейдите по адресу https://your-deploy-machine-ip/portainer.
6. Задайте имя пользователя/пароль через веб-интерфейс.
7. Выберите конечную точку (единственную в списке).
8. Получите доступ к шаблонам, используя пункт меню "Шаблоны приложений" слева :rocket:

**Развертывание шаблона приложения выглядит следующим образом:**
1. Выберите шаблон.
2. Если вы хотите добавить дополнительные параметры, выберите "+ Показать дополнительные параметры".
3. Добавьте сопоставление портов, сетевые параметры и сопоставление томов по своему усмотрению.
4. Выберите "Развернуть контейнер".
5. Portainer запустит контейнер. Это может занять несколько минут, если потребуется загрузить образ. Если ваш сервер находится в дата-центре, этот шаг будет очень быстрым.
6. Контейнер должен запуститься :rocket:
7. Portainer перенаправит вас на страницу "Контейнеры". Оттуда вы можете:  
   a. Просматривать логи контейнера в реальном времени.  
   b. Просматривать детали контейнера (`docker inspect`).  
   c. Просматривать статистику контейнера в реальном времени (память/ЦП/сеть/процессы).  
   d. Использовать веб-шелл для взаимодействия с контейнером.  
   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`, просто введите эти команды в локальной оболочке
  * При использовании `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, контейнер должен быть запущен в интерактивном режиме, чтобы попасть в интерактивную оболочку.

Доступ к файлам

Откройте браузер по адресу https://ваш-ip-redcloud/files.
Обратитесь к тому files для получения дополнительной информации.

SSL-сертификаты

Redcloud генерирует новый неподписанный SSL-сертификат при развертывании.
Сертификат генерируется с помощью omgwtfssl, реализуя большинство лучших практик. После генерации:

Он поместит сгенерированные сертификаты в /certs по умолчанию, а также выведет их в stdout в стандартной форме YAML, что упрощает их использование в Ansible или других инструментах, работающих с YAML.

Сертификаты хранятся в общем томе Docker под названием certs. Ваши контейнеры могут получить доступ к этому тому, если вы укажете его в "+ Advanced Settings" при развертывании. Обратный прокси-сервер Traefik получает сертификаты непосредственно из своего файла конфигурации. Если вы хотите заменить эти сертификаты на свои, просто замените их в этом томе.

Это также означает, что можно делиться сгенерированными сертификатами с другими контейнерами, такими как Empire или Metasploit для обратных вызовов или для фишинговой кампании. Большинство настроек, связанных с SSL, можно найти в traefik/traefik.toml или в файле docker-compose.yml.

Остановка Redcloud

Вы можете остановить Redcloud непосредственно из меню.
Развернутые шаблоны приложений необходимо остановить вручную перед остановкой Redcloud. Вы можете остановить их через веб-интерфейс Portainer или выполнив docker rm -f имя-контейнера.
Если вы хотите принудительно остановить контейнеры Portainer, которые запускают Redcloud, просто выполните docker-compose kill внутри папки redcloud/. Варианты остановки local и docker-machine одинаковы, поэтому они объединены в один пункт.

Шаблоны приложений Portainer

Redcloud использует Portainer для оркестрации и взаимодействия с Docker-движком. Portainer сам по себе является фантастическим проектом для удаленного управления Docker-развертываниями. Portainer также включает в себя очень удобную систему шаблонов, которая является основным компонентом нашего развертывания Redcloud.
Шаблоны можно найти в ./templates/templates.yml. Portainer получает файл шаблонов из выделенного контейнера (templates).

Обратный прокси-сервер Traefik

Traefik — это замечательный «облачный пограничный маршрутизатор». Он заменил предыдущую настройку обратного прокси на NGINX.
Образ Traefik собирается во время развертывания с использованием Dockerfile, расположенного в traefik/Dockerfile. Он добавляет файл .htpasswd с учетными данными admin:Redcloud.

По умолчанию развертывание создает следующие маршруты:

  • https://ваш-ip-сервера/portainer
  • https://ваш-ip-сервера/files
  • https://ваш-ip-сервера/api

Аутентификация основана на данных из .htaccess.

В веб-интерфейсе Traefik api вы можете просматривать развернутые маршруты, мониторить состояние работоспособности, а также видеть метрики в реальном времени. Это очень удобно.

Вы можете добавлять дополнительные метки, которые сообщают Traefik, куда направлять трафик, используя:

  • файл traefik/traefik.toml
  • файл docker-compose.yml
  • файл templates.yml
  • веб-интерфейс Portainer

Обратитесь к официальной документации для получения дополнительной информации.

api

Соображения безопасности Redcloud

Redcloud разворачивается с самоподписанным HTTPS-сертификатом и проксирует все взаимодействия с веб-консолью через него.
Однако сеть по умолчанию открывает порты ваших контейнеров для внешнего мира.

Вы можете:

  • Удалить открытые порты и получить доступ к обычному порту с машины внутри сети Docker
  • Добавить пользовательские labels для создания маршрутов с помощью Traefik. Вдохновитесь файлом docker-compose.yml.
  • Запустить Ubuntu или Kali с noVNC (VNC через HTTP) из шаблонов, добавить его как во «внутреннюю», так и во «внешнюю» сеть и получить доступ к открытым интерфейсам изнутри.
  • Добавить конфигурации .htaccess

Кроме того:

  • Установка docker и docker-machine требует привилегий root. Вы можете понизить требования к привилегиям, следуя официальной документации.
  • Сценарий установки загружается непосредственно из официальных репозиториев Docker.
  • redcloud.py получает публичный IP-адрес Redcloud с помощью icanhazip.com.

Проверенные кандидаты для развертывания

Цель развертыванияСтатус
Ubuntu Bionic✔️
Ubuntu Xenial✔️
Debian Strech✔️

Устранение неполадок

  • Проверьте версию Python по умолчанию с помощью python --version. Redcloud требует Python 3+.
  • Используйте python3 вместо python в старых системах.
  • redcloud.py требует, чтобы у кандидата на развертывание был открытый ключ в .ssh/authorized_keys, и обрабатывает аутентификацию без пароля, используя открытый ключ пользователя. Это конфигурация по умолчанию для большинства рабочих процессов VPS.
  • Для развертывания docker-machine требуется, чтобы у пользователя уже был запущенный docker-machine в облачной инфраструктуре (например, AWS, GCP, Linode и многие другие). После развертывания просто выполните команду eval, как показано выше.
  • Установка docker и docker-machine требует привилегий root. Вы можете понизить требования к привилегиям, следуя официальной документации.
  • Если вы не видите пункт меню «App Templates» сразу после развертывания, обновите веб-страницу и убедитесь, что вы не находитесь в меню выбора конечной точки.
  • Если вы хотите создать новую комбинацию имени пользователя и пароля, удалите постоянные данные Portainer на целевом узле: rm -rf /opt/portainer/data

Варианты использования

  • Создайте свою личную лабораторию для пентеста и практикуйтесь в навыках взлома с друзьями и коллегами.
  • Защитите свою наступательную инфраструктуру с помощью honeypot'ов.
  • Воссоздайте инфраструктуру APT с балансировкой нагрузки обратных имплантов, географически распределенными серверами и многоуровневыми операциями.
  • Автоматизируйте генерацию полезной нагрузки с помощью Metasploit или Empire, обход AV с помощью gscript, мгновенно предоставляемый через URI /files/.
  • Выполняйте свои конвейеры bug-bounty намного быстрее, чем конкуренты.
    • Запускайте Sniper через API Portainer, когда появляется новое bug-bounty, получайте логи через URI /files/.
  • Используйте обратный прокси для маскировки Metasploit или Empire.
  • Запускайте сканирования через собственный прокси Tor SOCKS.
  • Просматривайте .onion-сайты с помощью Tor SOCKS + Ubuntu VNC.
  • Продвинутый OSINT с Spiderfoot и контейнером Tor в качестве прокси.

Скриншоты

  • Список шаблонов

  • Развертывание контейнера

  • Использование msfconsole Metasploit через веб-интерфейс

  • Данные Traefik в реальном времени о маршрутах обратного прокси

  • Развертывание через SSH


Рекомендации по внесению вклада

Любая помощь приветствуется. Это побочный проект, так что в нем, вероятно, не хватает нескольких болтов и гаек. Прежде всего:

  • Сообщайте об ошибках и странностях Redcloud или исправляйте их.
  • Добавляйте шаблоны. Пожалуйста, держите их в чистоте и, по возможности, из репозитория создателя на Docker Hub.
  • Добавляйте документацию.
  • Подробно описывайте варианты использования в статьях в блогах. Я буду добавлять ссылки на посты в блогах здесь, так что обязательно свяжитесь со мной, если напишете такой! ✌️
  • Интегрируйте Traefik с большим количеством шаблонов. Например, у меня сейчас проблемы со spiderfoot и ubuntu novnc.
  • Орфографические ошибки как issues. (пожалуйста, без pull request'ов)

Хостинг Redcloud

Вы можете разместить Redcloud на любом Unix-сервере, на котором работает Docker.
Redcloud предназначен для использования в облачной среде, например, на простом VPS с SSH или даже на 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 за логотип — обязательно посмотрите его репозиторий!


Наконец, если вы хотите, чтобы ваш инструмент был интегрирован, свяжитесь со мной в Twitter. Этот проект поддерживается в мое свободное время. Следите за новыми функциями в ветке dev.
Redcloud изначально был разработан, чтобы упростить развертывание учебных сред для студентов, изучающих информационную безопасность.


Если вы хотите оставаться в курсе этого проекта:

twitter

Скачать инструмент
  • Если вы столкнулись с ошибками Python, возможно, вам потребуется установить пакет python3-distutils с помощью apt-get install python3-distutils на системах Debian/Ubuntu.
  • Если при развертывании шаблона приложения появляется ошибка «container name already exists», вероятно, вы пытаетесь развернуть тот же шаблон, не удалив ранее развернутый. Просто удалите старый контейнер с тем же именем или измените имя нового контейнера.
  • Если что-то кажется не так с вашим контейнером, стандартная процедура — проверить логи контейнера через веб-интерфейс.
  • При локальном развертывании на OSX portainer не сможет использовать свой том по умолчанию /opt/. Чтобы решить эту проблему, откройте файл docker-compose.yml, замените /opt/portainer/data:/data на папку с правами на запись, например: /tmp/portainer/:/data и создайте каталог /tmp/portainer перед запуском Redcloud.
  • Если у вас возникли проблемы с веб-терминалом, попробуйте отключить некоторые дополнения, использовать приватный просмотр или другой браузер. Если ничего не помогает, подключитесь к контейнеру через терминал.