cisagov/gophish

By cisagov

Updated about 20 hours ago

Docker container for the gophish phishing framework.

Image
1

100K+

cisagov/gophish repository overview

gophish-docker 🎣🐳

GitHub Build Status License CodeQL

Docker Image

Docker Pulls Docker Image Size (latest by date) Platforms

Creates a Docker container with an installation of the gophish phishing framework.

Running

Running with Docker

To run the cisagov/gophish image via Docker:

docker run cisagov/gophish:0.1.0
Running with Docker Compose
  1. Create a compose.yml file similar to the one below to use Docker Compose.

    ---
    name: gophish
    
    services:
      gophish:
        image: cisagov/gophish:0.1.0
        ports:
          - mode: host
            protocol: tcp
            published: 3333
            target: 3333
          - mode: host
            protocol: tcp
            published: 3380
            target: 8080
    
  2. Start the container and detach:

    docker compose up --detach
    

Using secrets with your container

This container also supports passing sensitive values via Docker secrets. Passing sensitive values like your credentials can be more secure using secrets than using environment variables. See the secrets section below for a table of all supported secret files.

  1. To use secrets, create a file or files containing the values you want set.

  2. Then add the secret or secrets to your docker-compose.yml file:

    ---
    name: gophish
    
    secrets:
      config_json:
        file: ./src/secrets/config.json
      admin_fullchain_pem:
        file: ./src/secrets/admin_fullchain.pem
      admin_privkey_pem:
        file: ./src/secrets/admin_privkey.pem
      phish_fullchain_pem:
        file: ./src/secrets/phish_fullchain.pem
      phish_privkey_pem:
        file: ./src/secrets/phish_privkey.pem
    
    services:
      gophish:
        image: cisagov/gophish:0.1.0
        ports:
          - mode: host
            protocol: tcp
            published: 3333
            target: 3333
          - mode: host
            protocol: tcp
            published: 3380
            target: 8080
        secrets:
          - source: config_json
            target: config.json
          - source: admin_fullchain_pem
            target: admin_fullchain.pem
          - source: admin_privkey_pem
            target: admin_privkey.pem
          - source: phish_fullchain_pem
            target: phish_fullchain.pem
          - source: phish_privkey_pem
            target: phish_privkey.pem
    

Updating your container

Docker Compose
  1. Pull the new image from Docker Hub:

    docker compose pull
    
  2. Recreate the running container by following the previous instructions:

    docker compose up --detach
    
Docker
  1. Stop the running container:

    docker stop <container_id>
    
  2. Pull the new image:

    docker pull cisagov/gophish:0.1.0
    
  3. Recreate and run the container by following the previous instructions.

Updating Python dependencies

This image uses Pipenv to manage Python dependencies using a Pipfile. Both updating dependencies and changing the Pipenv configuration in src/Pipfile will result in a modified src/Pipfile.lock file that should be committed to the repository.

Updating dependencies

If you want to update existing dependencies you would run the following command in the src/ subdirectory:

pipenv lock
Modifying dependencies

If you want to add or remove dependencies you would update the src/Pipfile file and then update dependencies as you would above.

Note

You should only specify packages that are direct requirements of your Docker configuration. Allow [Pipenv] to manage the dependencies of the specified packages.

Image tags

The images of this container are tagged with semantic versions of the underlying gophish project that they containerize. It is recommended that most users use a version tag (e.g. :0.1.0).

Image:tagDescription
cisagov/gophish:0.1.0An exact release version.
cisagov/gophish:0.1The most recent release matching the major and minor version numbers.
cisagov/gophish:0The most recent release matching the major version number.
cisagov/gophish:edgeThe most recent image built from a merge into the develop branch of this repository.
cisagov/gophish:nightlyA nightly build of the develop branch of this repository.
cisagov/gophish:latestThe most recent release image pushed to a container registry. Pulling an image using the :latest tag should be avoided.

See the tags tab on Docker Hub for a list of all the supported tags.

Volumes

There are no volumes.

Ports

The following ports are exposed by this container:

PortPurpose
3333Admin server
8080Phishing server

The sample Docker composition publishes the exposed ports at 3333 and 3380, respectively.

Environment variables

Required

There are no required environment variables.

Optional

There are no optional environment variables.

Secrets

FilenamePurpose
config.jsonGophish configuration file
admin_fullchain.pempublic key for admin port
admin_privkey.pemprivate key for admin port
phish_fullchain.pempublic key for phishing port
phish_privkey.pemprivate key for phishing port

Building from source

Build the image locally using this git repository as the build context:

docker build \
  --build-arg VERSION=0.1.0 \
  --tag cisagov/gophish:0.1.0 \
  https://github.com/cisagov/gophish-docker.git#develop

Cross-platform builds

To create images that are compatible with other platforms, you can use the buildx feature of Docker:

  1. Copy the project to your machine using the Code button above or the command line:

    git clone https://github.com/cisagov/gophish-docker.git
    cd gophish-docker
    
  2. Create the Dockerfile-x file with buildx platform support:

    ./buildx-dockerfile.sh
    
  3. Build the image using buildx:

    docker buildx build \
      --file Dockerfile-x \
      --platform linux/amd64 \
      --build-arg VERSION=0.1.0 \
      --output type=docker \
      --tag cisagov/gophish:0.1.0 .
    

Contributing

We welcome contributions! Please see CONTRIBUTING.md for details.

License

This project is in the worldwide public domain.

This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.

All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.

Tag summary

Content type

Image

Digest

sha256:b56b92a6e

Size

98 MB

Last updated

about 20 hours ago

docker pull cisagov/gophish:sha-bfd85bc