Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Redcloud — Déploiement automatisé d'infrastructure Red Team avec Docker | Kitploit
Outils/GitHubGitHub/khast3x/redcloud
Frameworks de Tests d'IntrusionSécurité des ConteneursFrameworks d'ExploitationRed Teaming
GitHubkhast3x/redcloud

Redcloud

Déploiement automatisé d'infrastructure Red Team avec Docker

Voir le dépôt
1.3k204il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Bulletin météo. Nuageux avec risque de shells !

Version précoce. Suivez-moi sur Twitter pour rester informé du développement de Redcloud.
💁☁️🐚🌱


Démarrage rapide - Architecture - Cas d'utilisation - Captures d'écran


Introduction

Redcloud est une boîte à outils puissante et conviviale pour déployer une infrastructure Red Team complète en utilisant Docker. Exploitez la vitesse du cloud pour vos outils. Déploie en quelques minutes. Utilisez-la et gérez-la avec son interface web élégante.

Idéal pour vos tests d'intrusion, terrains d'entraînement, red teaming et chasses aux bugs !

Auto-hébergez votre infrastructure d'attaque sans douleur, déployez votre propre infrastructure offensive vivante, scalable et résiliente en quelques minutes.

Démo

La démo suivante montre le déploiement de Redcloud via SSH, suivi de Metasploit. Ensuite, nous examinons Traefik et un volume live attaché à Metasploit. Enfin, nous vérifions que la base de données de Metasploit est fonctionnelle avec le terminal web, supprimons le conteneur, et terminons Redcloud.


Fonctionnalités

  • Déployer Redcloud localement ou à distance en utilisant les fonctions SSH intégrées, et même docker-machine.
  • Déployer Metasploit, Empire, GoPhish, des cibles vulnérables, un Kali complet, et bien d'autres en quelques clics.
  • Surveiller et gérer votre infrastructure avec une belle interface web.
  • Déployer des redirections, un proxy socks ou Tor pour tous vos outils.
  • Gestion de réseau et partage de volumes sans douleur.
  • Gestion des utilisateurs et mots de passe.
  • Terminal web
  • Globalement très confortable 🐣

Quick Start```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:~
Déploiement:```bash
> git clone https://github.com/khast3x/redcloud.git
> cd redcloud
> python redcloud.py

Redcloud utilise PyYAML pour afficher la liste des modèles disponibles. Il est installé par défaut sur la plupart des systèmes.
Si ce n'est pas le cas, exécutez simplement :```bash

Use pip3 if default python version is 2.x

pip install -r requirements.txt

root@kitploit:~
Redcloud a 3 méthodes de déploiement différentes :
1. **Localement**
2. **À distance, via ssh**. Nécessite que votre clé publique soit dans le fichier `authorized_keys` de votre cible.
3. **À distance, via docker-machine**. Exécutez la ligne `eval (docker-machine env deploy_target)` pour précharger votre environnement avec votre docker-machine, puis lancez `redcloud.py`. Redcloud devrait détecter automatiquement votre docker-machine et mettre en évidence les éléments de menu pertinents pour un déploiement docker-machine.

___

<h4 align="center">
  <b>Modèles</b> 
  <br>
  <br>

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

___

**En bref,**

`redcloud.py` déploie une pile [Portainer](https://www.portainer.io/), **préchargée avec de nombreux modèles d'outils pour vos engagements offensifs**, propulsée par Docker. Une fois déployé, contrôlez Redcloud avec [l'interface web](#captures-d'écran). Utilise [Traefik](https://traefik.io/) comme proxy inverse. Déploiement à distance facile vers votre serveur cible en utilisant le `ssh` système ou `docker-machine`.
  

* :rocket: Vous avez toujours voulu lancer un Kali dans le cloud en quelques clics ?  
* :package: Avoir des silos propres entre vos outils, techniques et étapes ?  
* :ambulance: Surveiller la santé de vos scans et C2 ?  
* :fire: Éviter les tâches d'administration système pour configurer une campagne de phishing et pirater plus vite ?  
* :smiling_imp: Curieux de savoir comment vous construiriez *la* infrastructure d'attaque idéale ?


Utilisez l'interface web pour surveiller, gérer et **interagir avec chaque conteneur**. Utilisez le terminal web réactif comme vous le feriez avec le vôtre. Créez des volumes, des réseaux et des redirections de ports à l'aide de l'interface simple de Portainer.

Déployez et gérez tous vos outils et techniques préférés avec la puissance d'Internet de qualité centre de données :rocket:

___

*Dans la section suivante, nous irons plus en détail dans les concepts de conception de Redcloud. Vous pouvez commencer sans avoir à plonger dedans.*

___

* :book: **Table des matières**
  - [Introduction](#introduction)
  - [Fonctionnalités](#fonctionnalités)
  - [Démarrage rapide](#démarrage-rapide)
  - [Détails](#détails)
    - [Architecture de Redcloud](#architecture-de-redcloud)
    - [Flux de déploiement](#flux-de-déploiement)
    - [Réseaux](#réseaux)
    - [Volumes](#volumes)
    - [Accéder aux conteneurs depuis le terminal](#accéder-aux-conteneurs-depuis-le-terminal)
    - [Accéder aux fichiers](#accéder-aux-fichiers)
    - [Certificats SSL](#certificats-ssl)
    - [Arrêter Redcloud](#arrêter-redcloud)
    - [Modèles d'applications Portainer](#modèles-dapplications-portainer)
    - [Proxy inverse Traefik](#proxy-inverse-traefik)
    - [Considérations de sécurité de Redcloud](#considérations-de-sécurité-de-redcloud)
  - [Candidats de déploiement testés](#candidats-de-déploiement-testés)
  - [Dépannage](#dépannage)
  - [Cas d'utilisation](#cas-dutilisation)
  - [Captures d'écran](#captures-décran)
  - [Guide de contribution](#guide-de-contribution)
  - [Hébergement de Redcloud](#hébergement-de-redcloud)
  - [Inspirations et remerciements](#inspirations-et-remerciements)

___

## Détails

### Architecture de Redcloud

* `redcloud.py`: Démarre/Arrête l'interface Web et les Modèles d'applications, en utilisant Docker et Portainer.
* `portainer`: Interface web Portainer.
* `traefik`: Conteneur proxy inverse Traefik pour l'interface web, l'api et les conteneurs de fichiers. Certains modèles ont des routes préconfigurées pour plus de commodité. Voir le `templates.yml`. 
* `templates`: Conteneur `http.server` python3 qui alimente les Modèles d'applications. Vit dans un réseau "interne".
* `cert_gen`: Le conteneur [omgwtfssl](https://github.com/paulczar/omgwtfssl) qui génère les certificats SSL en utilisant les meilleures pratiques courantes.
* https://your-server-ip/portainer: Interface web Redcloud une fois déployée.
* https://your-server-ip/files: Volume `redcloud_files` de Redcloud. Vous pouvez également accéder au contenu du conteneur `redcloud_log`, protégé par le même `.htpasswd` que Traefik. Identifiants par défaut : `admin:Redcloud`
* https://your-server-ip/api: Page de surveillance de l'état de santé du proxy inverse Traefik. Affiche des statistiques en direct sur les itinéraires, les backends, les codes de retour. Affichera également les données de rappel inverse de l'implant si configurées via Traefik.


### Flux de déploiement


**Le flux de déploiement de Redcloud est le suivant :**
1. Clonez/Téléchargez le dépôt Redcloud.
2. Lancez `redcloud.py`.
3. Choisissez le candidat de déploiement dans le menu (local, ssh, docker-machine).
4. `redcloud.py` automatiquement :
   * vérifie la présence de `docker` et `docker-compose` sur la machine cible.
   * installe `docker` et `docker-compose` si absents.
   * déploie la pile web sur la cible en utilisant `docker-compose`.
5. Une fois le déploiement terminé, `redcloud.py` affichera l'URL. Rendez-vous sur https://your-deploy-machine-ip/portainer.
6. Définissez le nom d'utilisateur/mot de passe depuis l'interface web.
7. Sélectionnez le point d'accès (le seul dans la liste).
8. Accédez aux modèles via l'élément de menu "Modèles d'applications" sur la gauche :rocket:

**Le déploiement d'un modèle d'application est le suivant :**
1. Choisissez un modèle.
2. Si vous souhaitez ajouter des options supplémentaires, sélectionnez "+ Afficher les options avancées".
3. Ajoutez le mappage de ports, les options de réseau et le mappage de volumes comme bon vous semble.
4. Sélectionnez "Déployer le conteneur".
5. Portainer lancera le conteneur. Cela peut prendre quelques minutes s'il doit récupérer l'image. Si votre serveur est dans un centre de données, cette étape sera très rapide.
6. Le conteneur devrait être en cours d'exécution :rocket:
7. Portainer vous redirigera vers la page "Conteneurs". De là, vous pouvez :  
   a. Voir les logs en direct du conteneur.  
   b. Inspecter les détails du conteneur (`docker inspect`).  
   c. Voir les statistiques en direct du conteneur (mémoire/processeur/réseau/processus).  
   d. Utiliser un shell web pour interagir avec votre conteneur.  
   e. Selon le modèle d'application, utilisez soit `bash` soit `sh`. Choisissez en conséquence dans le menu déroulant.  


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

### Réseaux

Redcloud facilite l'expérimentation avec les réseaux et les conteneurs.  
Vous pouvez créer des réseaux supplémentaires avec différents pilotes et attacher vos conteneurs comme bon vous semble. Redcloud est livré avec 2 réseaux, `redcloud_default` et `redcloud_inside`.

### Volumes

Vous pouvez partager des données entre conteneurs en partageant des volumes. Redcloud est livré avec 3 volumes :

* `certs`: Conteneur avec les certificats générés par [omgwtfssl](https://github.com/paulczar/omgwtfssl).
* `files`: Volume de partage de fichiers standard. Pour l'instant, les fichiers sont disponibles lors de la navigation sur https://your-server-ip/files, et sont servis par le conteneur proxy inverse Traefik directement depuis le volume `files`. Un cas d'utilisation typique est d'attacher le volume à un conteneur Metasploit, de générer votre payload directement dans le volume `files`. Vous pouvez maintenant servir votre nouveau payload directement via Traefik vers la route du serveur de fichiers.
* `logs`: Disponible pour les logs, servi également par le serveur de fichiers. L'accès nécessite une authentification de base. Par défaut `admin:Redcloud`.


### Accéder aux conteneurs depuis le terminal

Si vous souhaitez rester dans votre terminal pour travailler avec les conteneurs déployés, c'est très facile avec Docker. Gardez ces points à l'esprit :
* La plupart des conteneurs ont `bash`, mais certains utilisent `sh` à la place
* Tous les noms de conteneurs des modèles d'applications Redcloud commencent par `red_`, comme `red_msf-postgresql`
* Avec Docker, vous pouvez utiliser `docker exec` ou `attach` pour interagir avec un conteneur
  * `exec` est préféré car il crée un nouveau processus
  * `attach` vous place directement sur le processus en cours d'exécution, ce qui pourrait tuer votre conteneur en cours d'exécution
* Si vous exécutez Redcloud :
  * Localement ou via `docker-machine`, tapez simplement ces commandes dans votre shell local
  * Via `ssh`, connectez-vous d'abord en ssh à votre cible de déploiement pour exécuter les commandes suivantes

Pour commencer à interagir avec le conteneur déployé souhaité :```bash
> docker exec -it red_container-name /bin/bash
root@70a819ef0e87:/#

Si vous voyez le message suivant, cela signifie que bash n'est pas installé. Dans ce cas, remplacez simplement /bin/bash par /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:~
Pour utiliser `docker attach`, exécutez simplement :```bash
> docker attach red_container-name

Si vous utilisez attach, le conteneur doit être démarré en mode interactif afin d'aboutir à un shell interactif.

Accès aux fichiers

Pointez votre navigateur vers https://votre-ip-redcloud/files.
Veuillez vous référer au volume files pour plus d'informations.

Certificats SSL

Redcloud génère un nouveau certificat SSL non signé lors du déploiement.
Le certificat est généré par omgwtfssl, implémentant la plupart des bonnes pratiques. Une fois généré :

Il déposera les certificats générés dans /certs par défaut et les affichera également sur stdout sous une forme YAML standard, ce qui les rend faciles à consommer dans Ansible ou d'autres outils utilisant YAML.

Les certificats sont stockés dans un volume Docker partagé appelé certs. Vos conteneurs peuvent accéder à ce volume si vous l'indiquez dans "+ Advanced Settings" lors du déploiement. Le proxy inverse Traefik récupère les certificats directement depuis son fichier de configuration. Si vous souhaitez remplacer ces certificats par les vôtres, remplacez-les simplement sur ce volume.

Cela signifie également que vous pouvez partager les certificats générés dans d'autres conteneurs, comme Empire ou Metasploit pour vos callbacks inversés, ou pour une campagne de phishing. La plupart des configurations liées au SSL se trouvent dans traefik/traefik.toml ou le fichier docker-compose.yml.

Arrêt de Redcloud

Vous pouvez arrêter Redcloud directement depuis le menu.
Les modèles d'applications déployés doivent être arrêtés manuellement avant d'arrêter Redcloud. Vous pouvez les arrêter via l'interface web de Portainer, ou docker rm -f nom-du-conteneur.
Si vous souhaitez forcer l'arrêt des conteneurs Portainer exécutant Redcloud, exécutez simplement docker-compose kill dans le dossier redcloud/. L'option d'arrêt local et docker-machine est la même, donc elles sont combinées dans la même option.

Modèles d'applications Portainer

Redcloud utilise Portainer pour orchestrer et interagir avec le moteur Docker. Portainer en soi est un projet fantastique pour gérer les déploiements Docker à distance. Portainer inclut également un système de modèles très pratique, qui est le composant majeur pour notre déploiement Redcloud.
Les modèles se trouvent dans ./templates/templates.yml. Portainer récupère le fichier de modèles depuis un conteneur dédié (templates).

Proxy inverse Traefik

Traefik est un merveilleux « routeur de périphérie cloud-native ». Il a remplacé la configuration précédente du proxy inverse NGINX.
Une image Traefik est construite lors du déploiement, en utilisant le Dockerfile situé dans traefik/Dockerfile. Il ajoute un fichier .htpasswd avec les identifiants admin:Redcloud.

Par défaut, le déploiement génère les routes suivantes :

  • https://votre-ip-serveur/portainer
  • https://votre-ip-serveur/files
  • https://votre-ip-serveur/api

Les authentifications sont basées sur les données du .htaccess.

Depuis l'interface web de l'api Traefik, vous pouvez visualiser vos routes déployées, surveiller l'état de santé ainsi que les métriques en temps réel. C'est très pratique.

Vous pouvez ajouter des étiquettes supplémentaires qui indiquent à Traefik où router le trafic, en utilisant :

  • le fichier traefik/traefik.toml
  • le fichier docker-compose.yml
  • le fichier templates.yml
  • l'interface web de Portainer

Voir la documentation officielle pour plus d'informations.

api

Considérations de sécurité de Redcloud

Redcloud se déploie avec un certificat https auto-signé et proxyfie toutes les interactions avec la console web via celui-ci.
Cependant, le réseau par défaut expose les ports de vos conteneurs vers l'extérieur.

Vous pouvez :

  • Supprimer les ports exposés et accéder au port normal depuis une machine à l'intérieur du réseau Docker
  • Ajouter des labels personnalisés pour créer des routes avec Traefik. Voir le fichier docker-compose.yml pour l'inspiration.
  • Démarrer un Ubuntu ou Kali avec noVNC (VNC via http) à partir des modèles, l'ajouter à la fois à un réseau « interne » et « externe », et accéder aux interfaces exposées depuis l'intérieur.
  • Ajouter des configurations .htaccess

De plus :

  • Les installations docker & docker-machine nécessitent des privilèges root. Vous pouvez réduire les exigences de privilèges en suivant la documentation officielle.
  • Le script d'installation est directement tiré des dépôts officiels Docker.
  • redcloud.py récupère l'adresse IP publique de Redcloud en utilisant icanhazip.com.

Candidats de déploiement testés

Cible de déploiementStatut
Ubuntu Bionic✔️
Ubuntu Xenial✔️
Debian Stretch✔️

Dépannage

  • Vérifiez votre version par défaut de Python avec python --version. Redcloud nécessite Python 3+.
  • Utilisez python3 au lieu de python sur un système plus ancien.
  • redcloud.py exige que le candidat au déploiement ait la clé publique dans son .ssh/authorized_keys, et gère l'authentification sans mot de passe en utilisant la clé publique de l'utilisateur. C'est la configuration par défaut pour la plupart des workflows VPS.
  • Le déploiement docker-machine nécessite que l'utilisateur ait déjà une docker-machine en fonctionnement sur une infrastructure cloud (telle que AWS, GCP, Linode et beaucoup d'autres). Une fois déployé, exécutez simplement la commande eval comme illustré ci-dessus.
  • Les installations docker & docker-machine nécessitent des privilèges root. Vous pouvez réduire les exigences de privilèges en suivant la documentation officielle
  • Si vous ne voyez pas l'élément de menu "App Templates" juste après le déploiement, actualisez la page web et assurez-vous de ne pas être dans le menu de sélection du point de terminaison.
  • Si vous souhaitez créer une nouvelle combinaison nom d'utilisateur/mot de passe, supprimez les données persistantes de Portainer sur le candidat au déploiement : rm -rf /opt/portainer/data

Cas d'utilisation

  • Créez votre laboratoire de pentest personnel et pratiquez vos compétences en hacking avec des amis et collègues.
  • Protégez votre infrastructure offensive à l'aide de honeypots.
  • Recréez une infrastructure APT avec équilibrage de charge des implants inversés, serveurs répartis géographiquement et opérations multi-couches.
  • Automatisez la génération de payloads avec Metasploit ou Empire, le contournement AV avec gscript, servis instantanément via l'URI /files/.
  • Effectuez vos pipelines de bug bounty beaucoup plus rapidement que vos concurrents.
    • Lancez Sniper via l'API Portainer lorsqu'un nouveau bug bounty est publié, récupérez les logs via l'URI /files/.
  • Utilisez le proxy inverse pour couvrir Metasploit ou Empire.
  • Lancez des scans derrière votre propre proxy Tor.
  • Visualisez des sites .onion en utilisant Tor + Ubuntu VNC.
  • OSINT avancé avec Spiderfoot et un conteneur Tor comme proxy.

Captures d'écran

  • Liste des modèles

  • Déploiement d'un conteneur

  • Utilisation de msfconsole de Metasploit via l'interface web

  • Données en temps réel de Traefik sur les routes du proxy inverse

  • Déploiement via ssh


Lignes directrices pour la contribution

Toute aide est appréciée. C'est un projet annexe, donc il manque probablement quelques boulons et vis. Avant tout :

  • Signaler ou corriger les bugs et bizarreries de Redcloud.
  • Ajouter des modèles. Veuillez les garder propres et, si possible, provenant du dépôt Docker Hub du créateur.
  • Ajouter de la documentation.
  • Détailer des cas d'utilisation dans des articles de blog. J'ajouterai des liens vers les articles de blog ici, alors n'hésitez pas à me contacter si vous en écrivez un ! ✌️
  • Intégrer Traefik avec plus de modèles. J'ai actuellement des problèmes avec spiderfoot et ubuntu novnc par exemple.
  • Fautes de frappe en issues. (pas de pull requests s'il vous plaît)

Hébergement de Redcloud

Vous pouvez héberger Redcloud sur n'importe quel serveur Unix qui exécute Docker.
Redcloud est conçu pour être utilisé dans un environnement cloud, comme un simple VPS avec ssh, ou même AWS EC2, GCP, etc.

Un grand nombre de fournisseurs cloud offrent des crédits gratuits pour se familiariser avec leurs services. De nombreuses listes et tutoriels couvrent la façon d'obtenir des crédits d'hébergement gratuits auprès des grands fournisseurs. Cette liste est un bon point de départ.

En ce qui concerne la méthode de déploiement, je préfère personnellement travailler avec docker-machine car il devient extrêmement facile de créer de nouvelles machines et de les gérer une fois que vous avez configuré le driver de votre fournisseur cloud. Si vous préférez utiliser ssh, assurez-vous de jeter un œil au projet shellz d'evilsocket pour gérer vos clés et profils.


Inspirations et remerciements

  • 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 pour le logo - Assurez-vous de consulter son repo !


Enfin, si vous souhaitez voir votre outil intégré, contactez-moi sur Twitter. Ce projet est maintenu sur mon temps libre. Gardez un œil sur la branche dev pour les fonctionnalités à venir.
Redcloud a été initialement développé pour faciliter le déploiement d'environnements de formation pour les étudiants en sécurité informatique.


Si vous souhaitez rester informé de ce projet :

twitter

Télécharger l’outil
  • Si vous rencontrez des erreurs Python, vous devrez peut-être installer le paquet python3-distutils en utilisant apt-get install python3-distutils sur une base debian/ubuntu.
  • Si vous obtenez une erreur lors du déploiement d'un modèle d'application indiquant que le "nom du conteneur existe déjà", c'est probablement parce que vous essayez de déployer le même modèle d'application sans avoir supprimé un précédent modèle déployé. Supprimez simplement l'ancien conteneur portant le même nom, ou modifiez le nom de votre nouveau conteneur.
  • Si quelque chose semble anormal avec votre conteneur, la procédure standard consiste à vérifier les logs du conteneur depuis l'interface web.
  • Si vous exécutez un déploiement local sur OSX, portainer ne pourra pas utiliser son emplacement de volume par défaut /opt/. Pour résoudre ce problème, ouvrez le fichier docker-compose.yml, remplacez /opt/portainer/data:/data par un dossier avec un accès en écriture, par exemple : /tmp/portainer/:/data et créez le répertoire /tmp/portainer avant d'exécuter Redcloud.
  • Si vous avez des problèmes avec le terminal web, essayez de désactiver certains modules complémentaires, d'utiliser la navigation privée, ou d'essayer avec un navigateur différent. Si tout échoue, connectez-vous à votre conteneur via le terminal.