Code Monkey home page Code Monkey logo

redcloud's Introduction

Weather report. Cloudy with a chance of shells!

Early release. Follow me on Twitter to stay updated on Redcloud's development.
💁☁️🐚🌱


Quick Start - Architecture - Use-cases - Screenshots


Introduction

Redcloud is a powerful and user-friendly toolbox for deploying a fully featured Red Team Infrastructure using Docker. Harness the cloud's speed for your tools. Deploys in minutes. Use and manage it with its polished web interface.

Ideal for your penetration tests, shooting ranges, red teaming and bug bounties!

Self-host your attack infrastructure painlessly, deploy your very own live, scalable and resilient offensive infrastructure in a matter of minutes.

Demo

The following demo showcases deployment of Redcloud through ssh, followed by Metasploit. We then look at Traefik and a live volume attached to Metasploit. Finally, we check that Metasploit's DB is functional with the web terminal, delete the container, and terminate Redcloud.


Features

  • Deploy Redcloud locally or remotely using the built-in SSH functions, and even docker-machine.
  • Deploy Metasploit, Empire, GoPhish, vulnerable targets, a fully stacked Kali, and many more with a few clicks.
  • Monitor and manage your infrastructure with a beautiful web interface.
  • Deploy redirections, socks or Tor proxy for all your tools.
  • Painless network management and volume sharing.
  • User and password management.
  • Web terminal
  • Overall very comfy 🐣

Quick Start

Setup:

# 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

Deploy:

> git clone https://github.com/khast3x/redcloud.git
> cd redcloud
> python redcloud.py

Redcloud uses PyYAML to print the list of available templates. It's installed by default on most systems.
If not, simply run:

# Use pip3 if default python version is 2.x
> pip install -r requirements.txt

Redcloud has 3 different deployment methods:

  1. Locally
  2. Remotely, using ssh. Requires having your public key in your target's authorized_keys file.
  3. Remotely, using docker-machine. Run the eval (docker-machine env deploy_target) line to preload your env with your docker-machine, and run redcloud.py. Redcloud should automatically detect your docker-machine, and highlight menu items relevant to a docker-machine deployment.

Templates


Briefly,

redcloud.py deploys a Portainer stack, preloaded with many tool templates for your offensive engagements, powered by Docker. Once deployed, control Redcloud with the web interface. Uses Traefik as reverse-proxy. Easy remote deploy to your target server using the system ssh or docker-machine.

  • 🚀 Ever wanted to spin up a Kali in a cloud with just a few clicks?
  • 📦 Have clean silos between your tools, technics and stages?
  • 🚑 Monitor the health of your scans and C2?
  • 🔥 Skip those sysadmin tasks for setting up a phishing campaign and get pwning faster?
  • 😈 Curious how you would build the ideal attack infrastructure?

Use the web UI to monitor, manage, and interact with each container. Use the snappy web terminal just as you would with yours. Create volumes, networks and port forwards using Portainer's simple UI.

Deploy and handle all your favorite tools and technics with the power of data-center-grade internet 🚀


In the following section, we'll be going more in-depth inside Redcloud's design concepts. You can get started without having to dive inside though.



Details

Redcloud Architecture

  • redcloud.py: Starts/Stops the Web interface and App Templates, using Docker and Portainer.
  • portainer: Portainer web interface.
  • traefik: Traefik reverse-proxy container to the web interface, api and files containers. Some templates have pre-configured routes for convenience. See the templates.yml.
  • templates: python3 http.server container that feeds the App Templates. Lives in an "inside" network.
  • cert_gen: The omgwtfssl container that generates the SSL certificates using common best practices.
  • https://your-server-ip/portainer: Redcloud Web interface once deployed.
  • https://your-server-ip/files: Redcloud redcloud_files volume. You can also access the redcloud_log container content, protected by the same .htpasswd as Traefik. Default credentials: admin:Redcloud
  • https://your-server-ip/api: Traefik reverse-proxy health monitoring page. Shows live stats about routes, backends, return codes. Will also show reverse-callback implant data if configured through Traefik.

Deployment workflow

Redcloud deployment workflow is as follows:

  1. Clone/Download Redcloud repository.
  2. Launch redcloud.py.
  3. Choose deployment candidate from the menu (local, ssh, docker-machine).
  4. redcloud.py automatically:
    • checks for docker & docker-compose on target machine.
    • installs docker & docker-compose if absent.
    • deploys the web stack on target using docker-compose.
  5. Once deployment is complete, redcloud.py will output the URL. Head over to https://your-deploy-machine-ip/portainer.
  6. Set username/password from the web interface.
  7. Select the endpoint (the only one on the list).
  8. Access the templates using the "App Templates" menu item on the left 🚀

App Template deployment is as follows:

  1. Choose template.
  2. If you wish to add additional options, select "+ Show advanced options".
  3. Add port mapping, networking options, and volume mapping as you see fit.
  4. Select "Deploy the container".
  5. Portainer will launch the container. It may take a few minutes if it needs to fetch the image. If your server is in a data center, this step will be very fast.
  6. Container should be running 🚀
  7. Portainer will redirect you to the "Containers" page. From there, you can:
    a. View live container logs.
    b. Inspect container details (docker inspect).
    c. View live container stats (memory/cpu/network/processes).
    d. Use a web shell to interact with your container.
    e. Depending on the App Template, use either bash or sh. Choose accordingly from the drop-down menu.

Networks

Redcloud makes it easy to play around with networks and containers.
You can create additional networks with different drivers, and attach your containers as you see fit. Redcloud comes with 2 networks, redcloud_default and redcloud_inside.

Volumes

You can share data between containers by sharing volumes. Redcloud comes with 3 volumes:

  • certs: Container with the certificates generated by omgwtfssl.
  • files: Standard file sharing volume. For now, the files are available when browsing https://your-server-ip/files, and are served by the Traefik reverse-proxy container directly from the files volume. A typical use-case is to attach the volume to a Metasploit container, generate your payload directly into the files volume. You can now serve your fresh payload directly through the Traefik to file server route.
  • logs: Available for logs, served by the file-server too. Access requires basic auth. Default is admin:Redcloud.

Accessing containers from the terminal

If you wish to stay in your terminal to work with the deployed containers, its very easy using Docker. Keep these things in mind:

  • Most containers have bash, but some use sh instead
  • All Redcloud App Templates container names start with red_, such as red_msf-postgresql
  • With Docker, you can either use docker exec or attach to interact with a container
    • exec is preferred as it creates a new process
    • attach lands you straight on the running process, potentially killing your running container
  • If running Redcloud:
    • Locally or using docker-machine, simply type these in your local shell
    • Using ssh, first ssh into your deployment target to run the following commands

To start interacting with the desired deployed container:

> docker exec -it red_container-name /bin/bash
root@70a819ef0e87:/#

If you see the following message, it means bash is not installed. In that case simply replace /bin/bash with /bin/sh:

> 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
#

To use docker attach, simply run:

> docker attach red_container-name

If using attach, the container needs to be started in interactive mode, so as to land in a interactive shell.

Accessing files

Point your browser to https://your-redcloud-ip/files.
Please refer to the files volume for more information.

SSL Certificates

Redcloud generates a new unsigned SSL certificate when deploying.
The certificate is generated by omgwtfssl, implementing most best practices. Once generated:

It will dump the certificates it generated into /certs by default and will also output them to stdout in a standard YAML form, making them easy to consume in Ansible or other tools that use YAML.

Certificates are stored in a shared docker volume called certs. Your containers can access this volume if you indicate it in "+ Advanced Settings" when deploying it. The Traefik reverse-proxy container fetches the certificates directly from its configuration file. If you wish to replace these certificates with your own, simply replace them on this volume.

It also means you can share the generated certificates into other containers, such Empire or Metasploit for your reverse callbacks, or for a phishing campaign. Most SSL related configurations can be found in traefik/traefik.toml or the docker-compose.yml file.

Stopping Redcloud

You can stop Redcloud directly from the menu.
Deployed App templates need to be stopped manually before stopping Redcloud. You can stop them using the Portainer web interface, or docker rm -f container-name.
If you wish to force the Portainer containers running Redcloud to stop, simply run docker-compose kill inside the redcloud/ folder. The local and docker-machine stop option is the same, thus they are combined in the same option.

Portainer App Templates

Redcloud uses Portainer to orchestrate and interface with the Docker engine. Portainer in itself is a fantastic project to manage Docker deployments remotely. Portainer also includes a very convenient template system, which is the major component for our Redcloud deployment.
Templates can be found in ./templates/templates.yml. Portainer fetches the template file from a dedicated container (templates).

Traefik reverse-proxy

Traefik is a wonderful "cloud-native edge router". It has replaced the previous NGINX reverse-proxy setup.
A Traefik image is built during deployment, using the Dockerfile located in traefik/Dockerfile. It adds a .htpasswd with admin:Redcloud credentials.

By default, deployment spawns the following routes:

  • https://your-server-ip/portainer
  • https://your-server-ip/files
  • https://your-server-ip/api

Authentications are based of the .htaccess data.

From the Traefik api web interface, you can view your deployed routes, monitor health, as well as real time metrics. Its very neat.

You can add additional labels that tell Traefik where to route traffic, using either:

  • traefik/traefik.toml file
  • docker-compose.yml file
  • templates.yml file
  • Portainer's web interface

See the official documentation for more information.

api

Redcloud security considerations

Redcloud deploys with a self-signed https certificate, and proxies all interactions with the web console through it.
However, the default network exposes your containers' ports to the outside world.

You can:

  • Remove exposed ports and access the normal port from a machine inside the docker network
  • Add custom labels to create routes with Traefik. See the docker-compose.yml file for inspiration.
  • Start an Ubuntu or Kali with noVNC (VNC through http) from templates, add it to both an "inside" and "outside" network, and access exposed interfaces from inside.
  • Add .htaccess configurations

Additionally:

  • docker & docker-machine installations require root privileges. You can downgrade privilege requirements following the official documentation.
  • The install script is pulled directly from the official docker repositories.
  • redcloud.py fetches Redcloud's public IP address using icanhazip.com.

Tested deployment candidates

Deploy Target Status
Ubuntu Bionic ✔️
Ubuntu Xenial ✔️
Debian Strech ✔️

Troubleshooting

  • Check your default python version with python --version. Redcloud needs python 3+.
  • Use python3 instead of python if on an older system.
  • redcloud.py requires that deployment candidate have the public key in their .ssh/authorized_keys, and handles password-less authentication using the user's public key. This is the default configuration for most VPS workflows.
  • docker-machine deployment requires the user to already have a running docker-machine on a cloud infrastructure (such as AWS, GCP, Linode and many others). Once deployed, simply run the eval command as illustrated above.
  • docker & docker-machine installations require root privileges. You can downgrade privilege requirements following the official documentation
  • If you don't see the "App Templates" menu item right after deploying, refresh the web page and make sure you're not at the endpoint selection menu.
  • If you wish to create a new username/password combo, remove Portainer persistent data on deployment candidate: rm -rf /opt/portainer/data
  • If you're running into python errors, you may need to install the python3-distutils package using apt-get install python3-distutils on debian/ubuntu base.
  • If you get an error when deploying an App Template saying the "container name already exists", it's probably because you're trying to deploy the same App Template without having removed a previously deployed one. Simply remove the old container with the same name, or change the name of your new container.
  • If something seems wrong with your container, the standard procedure is to check the container's logs from the web interface.
  • If running a local deployment on OSX, portainer will be unable to use its default volume location /opt/. To solve this, open the docker-compose.yml file, replace /opt/portainer/data:/data with a folder with write-access, for example: /tmp/portainer/:/data and create the /tmp/portainer directory before running Redcloud.
  • if you're getting issues with the web terminal, try disabling some addons, using private browsing, or try with a different browser. If all else fails, connect to your container through the terminal.

Use-cases

  • Create your personal pentest-lab, and practice your hacking skills with friends and colleagues.
  • Protect your offensive infrastructure using honeypots.
  • Recreate an APT infrastructure with reverse implant load-balancing, geo-stretched servers and multi-layered operations
  • Automate payload generation with Metasploit or Empire, AV bypass with gscript, served instantly through the /files/ URI.
  • Perform your bug-bounty pipelines much faster than your competition.
    • Launch Sniper using Portainer api when a new bug-bounty is posted, fetch logs using /files/ URI.
  • Use the reverse proxy to cover Metasploit or Empire.
  • Launch scans behind your own Tor socks proxy.
  • View .onion site using Tor socks + Ubuntu VNC.
  • Advanced OSINT with Spiderfoot and a Tor container as proxy.

Screenshots

  • Template List

  • Deploying a container

  • Using Metasploit's msfconsole through the web interface

  • Traefik real-time data on reverse-proxy routes

  • Deploying using ssh


Contribution guideline

Any help is appreciated. This is a side project, so it's probably missing a few bolts and screws. Above all:

  • Reporting or fixing Redcloud bugs & quirks.
  • Adding templates. Please keep it clean, and from the creator's docker hub repository if possible.
  • Adding documentation.
  • Detailing use cases in blog articles. I'll add links to blog posts here, so please be sure to contact me if you make one! ✌️
  • Integrating Traefik with more templates. I'm currently having issues with the spiderfoot and ubuntu novnc for example.
  • Typos as issues. (no pull requests please)

Hosting Redcloud

You can host Redcloud on any Unix server that runs Docker.
Redcloud is intended to be used in a cloud environment, such as a simple VPS with ssh, or even an AWS EC2, GCP, etc...

A large range of cloud providers offer free credits to get familiar with their services. Many lists and tutorials cover getting free hosting credits from major vendors. This list is a good place to start.

Regarding deployment method, I personally prefer working with docker-machine as it becomes ridiculously easy to spawn new machines and manage them once you've got your cloud provider's driver setup. If you prefer using ssh, be sure to take a look at evilsocket's shellz project to manage your keys and profiles.


Inspirations & Shout-outs


Finally, if you wish to see your tool integrated, hit me up on Twitter. This project is maintained on my free time. Keep an eye out in the dev branch for upcoming features.
Redcloud was originally developed to make deploying training environments for infosec students easier.


If you wish to stay updated on this project:

twitter

redcloud's People

Contributors

adivinaelnombre avatar dhauenstein avatar josephgregg avatar khast3x avatar sofianehamlaoui avatar ullaakut avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

redcloud's Issues

Possibility of switching over to Yacht?

Hey, first of all, thanks for the great work on this project. I liked your menu so much that it inspired me to learn python over continuing to script with bash for internal tools at work. That being said, I'm curious if you'd be interested in switching from portainer to Yacht. The only think it's currently missing is the web terminal functionality. I also have built in theming and support templates in both JSON and YAML as well as docker-compose support (still early).

image

image

I have done a fair amount of work here:
https://github.com/SelfhostedPro/Redcloud

I wasn't able to get Yacht running on a sub-path though (ie. Portainer) but I also don't have much traefik experience.

mac run ???

paulchikkkk@PauldeMBP redcloud % python3 redcloud.py

....----'" '. ..--".-:.-' .' . ,''. ,' --'
" mGk "" _.-'' .-'-.:..
__...--' -._ ,-"' -'
_.--' _.-' .' .' .' `"""""
__.-'' _.-' .-' .' / ~~~
' _.-' .-' .-' .'
_.-' .-' .-' .' .' / R e d C l o u d
_.-' .-' .-' .' .'
_.-' .-' .' .' / ~~~
_.-' .-' .' .' github.com/khast3x
.-' .'

[] protip: redcloud works better using bash or sh
[
] protip: root on candidate is required to install docker

[MAIN MENU]
Choose deploy action:
[1] Deploy redcloud on local machine
[2] Deploy redcloud on remote ssh machine
[3] Deploy redcloud on remote docker-machine
[4] Stop local or docker-machine redcloud deployment
[5] Stop remote ssh redcloud deployment
[6] List available templates
[q] Quit

1
[>] Deploying redcloud locally
[] curl installation found
[
] docker installation found
[~] docker-compose installation found
[>] Deploying redcloud
[+] Running 14/3
✔ cert_gen 4 layers [⣿⣿⣿⣿] 0B/0B Pulled 12.4s
✔ portainer 4 layers [⣿⣿⣿⣿] 0B/0B Pulled 18.2s
✔ public-files 3 layers [⣿⣿⣿] 0B/0B Pulled 23.3s
open /Users/paulchikkkk/.docker/buildx/activity/desktop-linux: permission denied
[!] Something went wrong with running command
Command '['docker-compose', 'up', '--build', '-d']' returned non-zero exit status 1.
None
[>] Done

=========================================================================
[>] Please find your running instance at https://183.179.123.160/portainer
[] Files are available at https://183.179.123.160/files
[
] Live Reverse Proxy data is available at https://183.179.123.160/api

Local deployment fails on macOS

👋🏽@khast3x !

Decided to give Redcloud a try since it looks pretty awesome, but I haven't been able to deploy it locally on my macOS machine.

Screenshot 2019-03-17 at 16 29 39

Here is some info that might help in understanding what's going on:

  • OS: macOS 10.14.3 (18D109) (darwin amd64)
  • docker-compose version: 1.23.2, build 1110ad01
  • docker-py version: 3.6.0
  • Docker client version: 18.09.2 (Docker Desktop)
  • Docker engine version: 18.09.2 (Docker Engine - Community)

When running docker-compose up --build -d manually to get the logs, I'm getting:

Starting portainer-app       ... error
Starting redcloud_cert_gen_1 ...

ERROR: for portainer-app  Cannot start service portainer: b'Mounts denied: \r\nThe path /opt/portainer/data\r\nis not shared from OS X and is not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more iStarting redcloud_cert_gen_1 ... done
portainer-proxy is up-to-date

ERROR: for portainer  Cannot start service portainer: b'Mounts denied: \r\nThe path /opt/portainer/data\r\nis not shared from OS X and is not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.\r\n.'
ERROR: Encountered errors while bringing up the project.

Which seems to be related to the fact that the volume /opt/portainer/data that is specified in the compose file is not shared by default on macOS. Unfortunately, it seems that the current version of Docker for Mac doesn't even allow users to mount anything in /opt 😞

Conclusion

In order to support macOS deployment, it seems all that is needed is to allow users to customize the path in which portainer data is stored 🤔

Let me know if that makes sense to you!

Dependency install documentation is incomplete

Hey again @khast3x,

When attempting to list the available templates, I met a ModuleNotFoundError. I then ran the command that was specified in the documentation, which did not work:

Screenshot 2019-03-17 at 16 51 17

Fortunately, it was just that the file extension was missing! Works like a charm once the file extension is added to the command 👍🏽

The documentation should be updated, though

Expose GoPhish

Hi,
I’ve installed RedCloud on a AWS infrastructure (Kali, with all traffic authorized), and then installed GoPhish from the template. However, I have not been able to add any rules in Traeffik to expose the ports remotely.
I’ve tried to modify the docker-compose file and I added some label to expose the 3333 GoPhish’s administration port from an URL with Traefik.
The problem is that when I tried to access to the URL https://my-aws-ip/gophish/ I have an error: “500 internal server error”.
When I install GoPhish on its own on the machine I can access to the GoPhish pages (https://my-aws-ip:3333) so it’s not an AWS rules problem. The listening URL for the GoPhish is 0.0.0.0:3333 in the configuration file.
Here is the lignes that I added in the docker-compose file:

gophish:
  image: matteoggl/gophish
  container_name: “gophish”
  networks: 
    - default
    - inside
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - certs:/certs
    - logs:/logs
  labels:
    - “traefik.frontend.rule=PathPrefixStrip:/gophish”
    - “traefik.port=3333”
    - “traefik.passHostHeader=true”
    - “traefik.docker.network=default”
    - “traefik.frontend.redirect.regex=^(.*)/gophish$$”
    - “traefik.frontend.redirect.replacement=$$1/gophish/”
    - “traefik.frontend.rule=PathPrefix:/gophish;ReplacePathRegex: ^/gophish/(.*) /$$1”

I’ve also modify the traefik.toml file:

[entryPoints]
  [entryPoints.http]
  address = “:80”
    [entryPoints.http.redirect]
    entryPoint = “https”
    rule = “Path:/portainer,/files/api,/gophish”

[…]

[gophish]
  entryPoint = “gophish”

Do you have any idea of what might cause this error?
Thank you for your time,
Aurélien

SSL error after deployment

When I deploy RedCloud on my local Ubuntu after the installation I'm getting an SSL_ERROR_INTERNAL_ERROR alert in my Firefox. The docker logs don't show anything interesting and peeking around in the traefik container also yields no fruit (I'm not familiar with traefik at all so there's a good chance that I'm missing something).

image

Even when I try my external IP with HTTPS it gives the same error

Empire container logs

I'm on AWS using Ubuntu 18.04

I cannot Container connect...

I've stop/start/kill/restart container. I have removed and rebuilt.

Looking in the logs I see the below:

Traceback (most recent call last):
File "empire", line 13, in
from lib.common import empire, helpers
File "/opt/Empire/lib/common/empire.py", line 37, in
import stagers
File "/opt/Empire/lib/common/stagers.py", line 28, in
from ShellcodeRDI import *
File "/opt/Empire/lib/common/ShellcodeRDI.py", line 6, in
import pefile
ImportError: No module named pefile

Then I went into edit and changed the port from 5555 to 1234 and then from python 2.7 to python3

and I see this is the logs now:
File "empire", line 35
, print '[] Fresh start in docker, running reset.sh for you'
, ^
,SyntaxError: Missing parentheses in call to 'print'
, File "empire", line 35
, print '[
] Fresh start in docker, running reset.sh for you'

I did some other ports and stuff, but no luck. please help! Thanks for this AWESOME project!

Some issues with the templates and questions

Hello all, I have been working on using RedCloud for a school project and I have run into a few issues. Some background information: I am using AWS EC2 as my cloud provider to host RedCloud. I am able to successfully install and run RedCloud in my environment with no errors. When I go to launch a container from the templates page is where I run into issues. Some templates work just fine and launch the appropriate container. Others will spin their wheels for a while and then an error message pops up that says the Image does not exist. Both the Kali vms seem to be doing this right now. Other times A container will successfully launch and when I go to launch a terminal it says that the container is restarting, despite the container status being displayed as running. I have checked docker hub, and both of the images the kali vms are missing do not seem to exist on there. I'm not sure if it is something I am doing, or a bug within the current version. Please let me know!

I also have an additional question about the dvwa container. Dvwa is one of the containers that seems to work properly, however I am unsure how to access the web UI once the container is deployed. I tried clicking on the "published ports" within the portainer UI, however that does not lead anywhere. Any help would be greatly apricated! Thanks!

Error in Deployment

Installing docker
[~] This might take a few minutes... Hang in there!

  • sh -c apt-get update -qq >/dev/null
  • sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
  • sh -c curl -fsSL "https://download.docker.com/linux/debian/gpg" | apt-key add -qq - >/dev/null
    Warning: apt-key output should not be parsed (stdout is not a terminal)
  • sh -c echo "deb [arch=amd64] https://download.docker.com/linux/debian kali-rolling stable" > /etc/apt/sources.list.d/docker.list
  • sh -c apt-get update -qq >/dev/null
    E: The repository 'https://download.docker.com/linux/debian kali-rolling Release' does not have a Release file.
    [!] Something went wrong with running command
    Command '['sh', 'get-docker.sh']' returned non-zero exit status 100.
    Traceback (most recent call last):
    File "redcloud.py", line 418, in
    menu_deploy_target()
    File "redcloud.py", line 368, in menu_deploy_target
    deploy_local()
    File "redcloud.py", line 156, in deploy_local
    install_docker()
    File "redcloud.py", line 119, in install_docker
    output += run_cmd_output(DOCKER_INSTALL2)
    TypeError: can only concatenate str (not "NoneType") to str

redcloud.py defaults to external network IP

redcloud.py, line 17 has this:
GET_IP = "curl -4 -s icanhazip.com"

This breaks for local installs, although works wonderfully for AWS or other cloud installs.

I tried to update with the following, but however this python script is parsing system commands it does not like pipes.
GET_IP = $(ip -4 addr show wlp0s20f3 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')

It also seems that any place GET_IP is used is only a cmd call, so I can't override this by adding my local IP directly, without a lot of refactoring.

For now I've added a getlocalip script to my ~/bin folder containing ip -4 addr show wlp0s20f3 | grep -oP '(?<=inet\s)\d+(\.\d+){3}' and now line 17 reads as GET_IP = "getlocalip"

[Feature Request] Make secure by default/optional hardening

Hi,
I would like to set up a redcloud instance, but would love to have an optional flag to make the web ui listen to localhost only (connecting to it via ssh fowarding) to eliminate the need to expose unwanted ports. I know this can be set in the config, but it would be nifty to have an optional flag for that.

Trafeik problem

Hi I run this command [1] Deploy redcloud on local machine

I take error:

ERROR: for traefik  Cannot start service traefik: driver failed programming external connectivity on endpoint traefik (74ad67dbcf6fb76e2cf7c2c5bfd07122a6fa26b67a456bebea57a9d8266df8d3): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use

Help me!

break on local

if it doesn't have docker compose installed first it will break
please add to the installation script.

thank you

Non-Interactive Deployment

First off, thanks for a great project.

I'm working on Ansible playbooks to deploy Redcloud. Is there a way to deploy Redcloud on a remote machine without requiring user interaction? Not using the menu, but rather supplying all the configuration via a config file or arguments to redcloud.py.

My desired workflow is to non-interactively git clone the repository and run python redcloud.py/installing without a dialog.

Anyway, any suggestions would be great!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.