Skip to content

warrior-companions/wc-offline-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Offline Tools

This repo contains a collection of tools that can be self-hosted for offline use, assuming you are able to download (using docker pull) or import (using docker load) the container image. These tools have been tested on Docker Desktop for Windows, using Linux containers.

Offline Toolset

The offline toolset contains containers of the following applications:

The primary offline toolset can be ran using the docker-compose.yml file. Be sure to setup offline-tools before running docker compose.

All Offline Tools

You can run all of the tools using the docker-compose-all.yml file. Be sure to setup offline-tools before running docker compose.

Setup

For our initial release of offline-tools, we are using docker-compose file(s) to run the different tools. In order to use the docker-compose file, you will need to complete the following:

  1. Install Docker
  2. Install Docker Compose
  3. Clone this wc-offline-tools repository with git clone https://github.com/warrior-companions/wc-offline-tools.git
  4. Determine which docker-compose file you will use
    • Make note of the file name, as it will be used in the next step
    • Review the file and make updates as needed
  5. (Optional) Import already existing docker images
    • This should be completed for each Docker image you do not want Docker to attempt to download
  6. Start the containers using the selected docker-compose file
    • Navigate to the wc-offline-tools directory
    • To use the primary offline toolset, issue docker compose up -d
    • To use a different toolset, issue docker compose -f docker-compose-<selected_file>.yml up -d
    • Example running the primary offline toolset file:
      docker compose up -d

Running an individual container

Follow the steps in the setup section but specify the name of the service you want to run when issuing docker compose

Example running drawio:

docker-compose -f .\docker-compose-all-tools.yml up -d drawio

Importing Docker Images

If you already have Docker images stored as .tar files, you can import them using the docker load command.

  • Example loading the mpepping/cyberchef image from the cyberchef.tar file:
    docker load -i D:\path-to\docker-image-files\cyberchef.tar
  • Docker should respond with:

    Loaded image: mpepping/cyberchef:latest

Downloading Docker Images

If you have not downloaded any Docker images, you can download them using the docker pull command.

You can also pull tagged images by including the tag after the image name.

Updating and Exporting Docker images

If you find you want to export a downloaded image, you can use the docker save command.

  • Example saving the mpepping/cyberchef image to the cyberchef.tar file:
    docker save -o D:\path-to\docker-image-files\cyberchef.tar mpepping/cyberchef

You can also save tagged images by including the tag after the image name.

  • Example saving the kiwix/kiwix-serve:3.4.0 image to the kiwix-serve-3.4.0.tar file:
    docker save -o D:\path-to\docker-image-files\kiwix-serve-3.4.0.tar kiwix/kiwix-serve:3.4.0

Differences between import and load in Docker

In case you are interested more about importing and loading Docker images, here is a stack overflow response with an excellent overview of these commands:

overview of docker import and docker load

Text from stack overflow:

docker save will indeed produce a tarball, but with all parent layers, and all tags + versions.

docker export does also produce a tarball, but without any layer/history.

It is often used when one wants to "flatten" an image, as illustrated in "Flatten a Docker container or image" from Thomas Uhrig: docker export <CONTAINER ID> | docker import - some-image-name:latest

However, once those tarballs are produced, load/import are there to:

  • docker import creates one image from one tarball which is not even an image (just a filesystem you want to import as an image)

Create an empty filesystem image and import the contents of the tarball

  • docker load creates potentially multiple images from a tarred repository (since docker save can save multiple images in a tarball).

Loads a tarred repository from a file or the standard input stream

Tools

The following tools are part of the Offline Tools project:

CTFd

CTFd is a Capture The Flag framework focusing on ease of use and customizability.

IMPORTANT: We are using CTFd version 3.3.0 so we can export and import challenges. Newer versions of the CTFd container do not support the ability to import .zip files.

Container information:

CyberChef

The Cyber Swiss Army Knife. CyberChef is a web app for encryption, encoding, compression and data analysis.

Container information:

Draw IO

draw.io is a JavaScript, client-side editor for general diagramming and whiteboarding.

Container information:

Heimdall

Heimdall is an Application dashboard and launcher

IMPORTANT: You must create an appdata/heimdall/ directory (where the docker-compose files exist) before starting the container.

Container information:

Kiwix

Kiwix is an offline reader for online content like Wikipedia, Project Gutenberg, or TED Talks.

Content can be downloaded from the Kiwix library (URL: https://library.kiwix.org/), as a .zim file then loaded into the Kiwix server. There are examples in the zim-files directory if you need to download them to run Kiwix.

IMPORTANT: The kiwix-serve container will not run without any .zim files stored in the ./zim-files/ directory. At least one .zim file must exist in the ./zim-files/ directory.

Container information:

Mitre ATT&CK Navigator

The ATT&CK Navigator is a web-based tool for annotating and exploring ATT&CK matrices.

Container information:

Mermaid Live Editor

The Mermaid Live Editor allows you to Edit, preview and share mermaid charts/diagrams.

Container information:

New Tool Template

This section contains the current template for adding a new tool to the Offline Tools project.

### Tool Template

This section needs to be completed, including a description of the tool. The section should include information about what this tool does and links to the source code and container.
- Website: 
- Container used: ``

***IMPORTANT***:

Container information:
- GitHub: 
- Docker: 

About

A collection of tools to self-host offline.

Resources

Stars

Watchers

Forks

Packages

No packages published