From f02d5102cb5c4d3ca18bd8ad27d37f1ad4e64830 Mon Sep 17 00:00:00 2001 From: khast3x Date: Sun, 14 Apr 2019 22:25:53 +0200 Subject: [PATCH] Docker refactor --- Docker/Dockerfile | 34 +++++++++------------ Docker/README.md | 72 +++++--------------------------------------- Docker/entrypoint.sh | 7 +++++ 3 files changed, 29 insertions(+), 84 deletions(-) create mode 100644 Docker/entrypoint.sh diff --git a/Docker/Dockerfile b/Docker/Dockerfile index ad482c8..deb91ce 100644 --- a/Docker/Dockerfile +++ b/Docker/Dockerfile @@ -1,23 +1,17 @@ -FROM kalilinux/kali-linux-docker +FROM phocean/msf -RUN apt update \ - && apt install -y \ - apache2 \ - build-essential \ - git \ - metasploit-framework \ - postgresql \ - python-dev \ - python-pip +COPY "entrypoint.sh" . -RUN git clone https://github.com/NullArray/AutoSploit.git \ - && pip install -r AutoSploit/requirements.txt +RUN apt-get update && \ + apt-get install -y \ + git \ + python-dev \ + python-pip \ + apache2 -COPY database.yml /root/.msf4/database.yml - -WORKDIR AutoSploit - -EXPOSE 80 443 4444 - -ENTRYPOINT ["python", "autosploit.py"] -# ENTRYPOINT ["bash"] +RUN chmod +x entrypoint.sh && \ + git clone https://github.com/NullArray/AutoSploit.git && \ + pip install -r AutoSploit/requirements.txt + +EXPOSE 4444 +CMD [ "./entrypoint.sh" ] diff --git a/Docker/README.md b/Docker/README.md index cb314da..d4f6cb1 100644 --- a/Docker/README.md +++ b/Docker/README.md @@ -1,75 +1,19 @@ # Docker deployment instructions -## tl;dr -Using [docker-compose](https://docs.docker.com/compose/install/): +## From Dockerhub ```bash -git clone https://github.com/NullArray/AutoSploit.git -cd Autosploit/Docker -docker-compose run --rm autosploit +> docker run -it battlecl0ud/autosploit ``` -Using just Docker: +*Ideally this is to be replaced by project author's dockerhub account* -```bash -git clone https://github.com/NullArray/AutoSploit.git -cd Autosploit/Docker -# If you wish to edit default postgres service details, edit database.yml. Should work out of the box -# nano database.yml -docker network create -d bridge haknet -docker run --network haknet --name msfdb -e POSTGRES_PASSWORD=s3cr3t -d postgres -docker build -t autosploit . -docker run -it --network haknet -p 80:80 -p 443:443 -p 4444:4444 autosploit -``` - -## Abstract - -- Launching `Autosploit` as a Docker container makes it very easy to use the tool in a hosted cloud environment (AWS, Azure, ...) -- Separate `postgres` database into individual service for data persistence and potential async updating of the database -- Create a small bridge network `haknet` so the service discovery is automatic -- Launch `postgres` and `Autosploit` container, both linked by `haknet` -- Autosploit will automatically launch preconfigured `msfconsole` to the external `postgres` container through `haknet` transparent network -- Total image size of Kali + Metasploit + Autosploit : 1.75GB - -## Deploy - -### Step 1 - Create bridge network - -This will enable the Metasploit Framework to talk to the `postgres` database using its hostname, making it abstract. - -A Tor Socks Proxy can also be added to perform transparent proxy when launching exploits (not for reverse shells though, obviously). - -```bash -docker network create -d bridge haknet -``` - -### Step 2 - Launch services - -All automagically linked - -#### Step 2.1 - Launch postgres - -Launch a vanilla `postgres` service, linked to `haknet` - -```bash -docker run --network haknet --name msfdb -e POSTGRES_PASSWORD=s3cr3t -d postgres -``` - -#### Step 2.2 - Launch Autosploit - -Launch `Autosploit`. - -This Dockerfile will copy the default database config to `~/.msf4/database.yml`. You can edit the configuration file `database.yml` to your liking before building. - -Please be aware that the first build will take some time (~10mn) - -Building will be faster if done on a hosted server as it benefits from the -grade bandwidth +## Build it yourself ```bash -git clone https://github.com/NullArray/AutoSploit.git -cd Autosploit/Docker -nano database.yml # Exemple configuration should work fine -docker build -t autosploit . -docker run -it --network haknet -p 80:80 -p 443:443 -p 4444:4444 autosploit +> git clone https://github.com/NullArray/AutoSploit.git +> cd Autosploit/Docker +> docker build -t autosploit . +> docker run -it autosploit ``` diff --git a/Docker/entrypoint.sh b/Docker/entrypoint.sh new file mode 100644 index 0000000..6b624a5 --- /dev/null +++ b/Docker/entrypoint.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +/etc/init.d/postgresql start +/etc/init.d/apache2 start +cd AutoSploit/ + +python autosploit.py \ No newline at end of file