Supported Operating Systems

An AppImage is a distribution-agnostic, self-running package that contains an application and everything that it may need to run.

The Infection Monkey AppImage package should run on most modern Linux distros that have FUSE
installed, but the ones that we've tested are:

  • BlackArch 2023.04.01
  • Kali 2023.1
  • Parrot 5.2
  • CentOS/Rocky/RHEL 8+
  • Debian 11
  • openSUSE Leap 15.4
  • Ubuntu Bionic 18.04, Focal 20.04, Jammy 22.04

On Windows, AppImage can be run in WSL 2.

Deployment

  1. Make the AppImage package executable:
        chmod u+x InfectionMonkey-v2.3.0.AppImage
    
  2. Start Monkey Island by running the Infection Monkey AppImage package:
    ./InfectionMonkey-v2.3.0.AppImage
    
    If you get errors related to FUSE, you may need to install FUSE 2.X first:
    sudo apt update
    sudo apt install libfuse2
    
    More information about fixing FUSE-related errors can be found here.
  3. Access the Monkey Island web UI by pointing your browser at https://localhost:5000.https://localhost:5000. Once you have access to the Monkey Island server, check out the getting started page

📘

Delete data directory prompt

If you're prompted to delete your data directory and you're not sure what to do, see the FAQ for more information.

Running the Infection Monkey as a service on boot

The Infection Monkey can be installed as a service and run on boot by running the AppImage package with the following parameters. This requires root permissions, so run sudo -v and enter your password before running the script, if required.

./InfectionMonkey-v2.3.0.AppImage service --install --user <USERNAME>

To uninstall it, run:

./InfectionMonkey-v2.3.0.AppImage service --uninstall

Note:
We tested the Service installation on Ubuntu. This feature may not work properly on other Linux distributions.

Configuring the server

You can configure the server by creating a server configuration file and providing a path to it via command line parameters:

./InfectionMonkey-v2.3.0.AppImage --server-config="/path/to/server_config.json"

Start Monkey Island with a user-provided certificate

By default, Infection Monkey comes with a self-signed SSL certificate. In enterprise or other security-sensitive environments, it is recommended that the user provides Infection Monkey with a certificate that has been signed by a private Certificate Authority.

  1. Terminate the Island process if it's already running.

  2. (Optional but recommended) Move your .crt and .key files to
    $HOME/.monkey_island.

  3. Make sure that your .crt and .key files are readable only by you.

    chmod 600 <PATH_TO_KEY_FILE>
    chmod 600 <PATH_TO_CRT_FILE>
    
  4. Create a server configuration file and provide the path to the certificate.
    The server configuration file should look something like this:

    {
        "ssl_certificate": {
            "ssl_certificate_file": "$HOME/.monkey_island/my_cert.crt",
            "ssl_certificate_key_file": "$HOME/.monkey_island/my_key.key"
        }
    }
    
  5. Start Monkey Island by running the Infection Monkey AppImage package:

    ./InfectionMonkey-v2.3.0.AppImage --server-config="/path/to/server_config.json"
    
  6. Access the Monkey Island web UI by pointing your browser at https://localhost:5000.

Change logging level

  1. Terminate the Island process if it's already running.

  2. Create a server configuration file. The server configuration file should look something like:

    {
        "log_level": "INFO"
    }
    
  3. Start Monkey Island by running the Infection Monkey AppImage package:

    ./InfectionMonkey-v2.3.0.AppImage --server-config="/path/to/server_config.json"
    
  4. Access the Monkey Island web UI by pointing your browser at https://localhost:5000.

Upgrading

Currently, there's no "upgrade-in-place" option when a new version is released. To get an updated version, download the updated AppImage package and follow the deployment instructions again.

If you'd like to keep your existing configuration, you can export it to a file using the Export config button and then import it to the new Monkey Island.