tuxotron / docker-image-generator

Customized docker images generation toolkit

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Docker Image Generator

This tool allows you to create docker images or Dockerfiles customized with the tools of your choice (that are integrated in this tool).

This is ideal for when you need some tool that you don't have installed and/or don't want to install or mess your system with. Create your image, run the container, use the tool/s and throw it away when you are done, or keep it for future uses.

Installation

You will require to have installed Docker and go in your system. Eventually I will be releasing the binaries for the three major platforms, so you won't required to have go installed. Clone this repository and build the binary:

git clone https://github.com/tuxotron/docker-image-generator
cd docker-image-generator
make build

Or download the compiled binary for your architecture from the latest release. After downloading, give it executable permission and move it somewhere in your PATH:

chmod +x doig-xxx
sudo mv doig-xxx /usr/local/bin/doig

Usage

./doig
This tool creates a customized docker image with the tools you need

Usage: doig [--tools TOOLS] [--category CATEGORY] [--image IMAGE] [--dockerfile] [--list] [--update]

Options:
  --tools TOOLS, -t TOOLS
                         List of tools separated by blank spaces
  --category CATEGORY, -c CATEGORY
                         List of categories separated by blank spaces
  --image IMAGE, -i IMAGE
                         Image name in lowercase
  --dockerfile, -d       Prints out the Dockerfile
  --list, -l             List the available tools and categories
  --update, -u           Update tools
  --help, -h             display this help and exit

The first time you run the application it will download the lates set of tools and will create a directory called .doig in your home directory. If you want to set up the application in a different directory, just define the environment variable DOIG_PATH with the PATH where you want to setup doig.

Examples

  • To update the tools:

      ./doig -u
      [*] Updating tools ...
      [*] Tools updated
      ...
      ...
    
  • List the tools available alphabetically:

      ./doig -l
      [*] Tools
        [-] altdns
        [-] amass
        [-] anonsurf
      ...
      [*] Categories
        [-] reversing
        [-] exploitation
        [-] osint
      ...
    
  • Prints out a Dockerfile with the tools of your choice:

      ./doig -d -t nmap sqlmap wfuzz
      [*] Adding nmap
      [*] Adding sqlmap
      [*] Adding wfuzz
      
      FROM ubuntu:18.04
      
      RUN apt update && \
          apt install -y software-properties-common git curl p7zip-full locales && \
          add-apt-repository -y ppa:longsleep/golang-backports && \
          apt update && \
          localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
      
      ENV LANG en_US.utf8
      
      RUN   apt install -y nmap && \
        apt install -y sqlmap && \
        apt install -y python-setuptools wfuzz && \
         rm -rf /var/lib/apt/lists/*
    

You can copy that file and use it with docker [image] build.

  • Creates a docker image:

      ./doig -i mytools -t nmap sqlmap wfuzz
      [*] Adding nmap
      [*] Adding sqlmap
      [*] Adding wfuzz
      Step 1/4 : FROM ubuntu:18.04
       ---> 4e5021d210f6
       ...
       ---> 92bb29c4fc45
      Successfully built 92bb29c4fc45
      Successfully tagged mytools:latest
    

This creates a docker image called mytools. Now you can just get shell inside and use your tools:

    docker run -it --rm mytools
    root@dff16ee1f45c:/opt#

By default we'll be in /opt directory. Inside this directory you will find a file called tools.txt (if we added any tools when creating the image), which contains the list of the tools added to the image.

Or run a tool directly without getting a shell:

    docker run -it --rm mytools nmap localhost
    
    Starting Nmap 7.60 ( https://nmap.org ) at 2020-04-10 21:35 UTC
    Nmap scan report for localhost (127.0.0.1)
    ...

Each tool has assigned a category, so it is also possible to install all the tools of a specific category.

This would create an image with all the tools belonging to the recon category

    ./doig -i mytools -c recon

You can also spcify individual tools and categories. This would create an image with all the tools belonging to the recon category, plus sqlmap:

    ./doig -i mytools -c recon -t sqlmap

This would create an image with all tools:

    ./doig -i mytools -c all

TO DO

I'm actively working on fixes, cleanup, improvements, etc.

I hope you find this tool useful.

About

Customized docker images generation toolkit

License:MIT License


Languages

Language:Go 90.6%Language:Makefile 9.4%