monkey/monkey/infection_monkey
VakarisZ 708d1a697d Improved configuration by removing unused method and separating config value paths to a separate file 2020-10-01 12:54:41 +03:00
..
exploit Merge remote-tracking branch 'upstream/develop' into 519/scoutsuite-integration 2020-09-08 12:42:17 +03:00
model Some more easy noqas or invalid escape fixes 2020-08-31 18:06:08 +03:00
network Merge remote-tracking branch 'upstream/develop' into 519/scoutsuite-integration 2020-09-08 12:42:17 +03:00
post_breach Bugfix: imports, related to "common_consts renaming" fixed. 2020-09-11 16:12:18 +03:00
pyinstaller_hooks Ran isort to order all imports and pass CI tests 2020-07-15 17:55:45 +03:00
system_info Moved scoutsuit submodule directory, because island might want to call it's method to check for setup 2020-10-01 12:39:45 +03:00
telemetry Moved scoutsuit submodule directory, because island might want to call it's method to check for setup 2020-10-01 12:39:45 +03:00
transport Fixed isort 2020-08-31 18:31:00 +03:00
utils Delete return value 2020-08-31 18:12:01 +03:00
__init__.py Move everything under monkey 2018-05-23 16:05:41 +03:00
build_linux.sh Added version argument to monkey build scripts 2020-02-09 15:20:34 +02:00
build_windows.bat Added version argument to monkey build scripts 2020-02-09 15:20:34 +02:00
config.py Improved configuration by removing unused method and separating config value paths to a separate file 2020-10-01 12:54:41 +03:00
control.py Small telemetry refactoring and added ScoutSuite telem 2020-09-04 15:46:50 +03:00
dropper.py Ran isort to order all imports and pass CI tests 2020-07-15 17:55:45 +03:00
example.conf Moved "victims_max_exploit" and "victims_max_find" to "internal", increased "victims_max_exploit" default to 100 2020-07-23 10:52:05 +03:00
main.py Some more easy noqas or invalid escape fixes 2020-08-31 18:06:08 +03:00
monkey.ico Move everything under monkey 2018-05-23 16:05:41 +03:00
monkey.py add OS name to logs 2020-09-02 00:18:12 +03:00
monkey.spec Removed infrastructure related to mimikatz binary: deployment scripts and docs updated 2020-06-05 14:40:58 +03:00
monkeyfs.py Ran isort to order all imports and pass CI tests 2020-07-15 17:55:45 +03:00
pyinstaller_utils.py Auto reformat all code 2019-10-28 21:11:05 +02:00
readme.md Removed infrastructure related to mimikatz binary: deployment scripts and docs updated 2020-06-05 14:40:58 +03:00
requirements.txt pywin32 is missing from the Monkey 2020-07-23 12:45:37 +03:00
system_singleton.py Auto reformat all code 2019-10-28 21:11:05 +02:00
tunnel.py Ran isort to order all imports and pass CI tests 2020-07-15 17:55:45 +03:00
windows_upgrader.py Ran isort to order all imports and pass CI tests 2020-07-15 17:55:45 +03:00

readme.md

Monkey island dev. env. setup guide

To easily setup development environment for Monkey Island and the Monkey look into deployment scripts folder. If you want to setup dev. env. for the Monkey manually, refer to the instructions below.

The monkey is composed of three separate parts.

  • The Infection Monkey itself - PyInstaller compressed python archives
  • Sambacry binaries - Two linux binaries, 32/64 bit.
  • Traceroute binaries - Two linux binaries, 32/64bit.

Windows

  1. Install python 3.7.4 and choose ADD to PATH option when installing.

    Download and install from: https://www.python.org/ftp/python/3.7.4/

    In case you still need to add python directories to path:

    • Run the following command on a cmd console (Replace C:\Python37 with your python directory if it's different) setx /M PATH "%PATH%;C:\Python37;C:\Python37\Scripts
    • Close the console, make sure you execute all commands in a new cmd console from now on.
  2. Install further dependencies

  3. Download the dependent python packages using pip install -r requirements.txt

  4. Download and extract UPX binary to monkey\infection_monkey\bin\upx.exe: https://github.com/upx/upx/releases/download/v3.94/upx394w.zip

  5. Build/Download Sambacry

    • Build/Download according to sections at the end of this readme.
    • Place the binaries under monkey\infection_monkey\bin
  6. To build the final exe:

    • cd monkey\infection_monkey
    • build_windows.bat
    • output is placed under dist\monkey32.exe or dist\monkey64.exe depending on your version of Python

Linux

Tested on Ubuntu 16.04. 0. On older distributions of Ubuntu (16.04) you'll need to download python3.7 via ppa: - sudo add-apt-repository ppa:deadsnakes/ppa - sudo apt-get update - sudo apt install python3.7

  1. Install dependencies by running:

    • sudo apt install python3-pip
    • python3.7 -m pip install pip
    • sudo apt-get install python3.7-dev libffi-dev upx libssl-dev libc++1
  2. Install the python packages listed in requirements.txt using pip

    • cd [code location]/infection_monkey
    • python3.7 -m pip install -r requirements.txt
  3. Build Sambacry binaries

    • Build/Download according to sections at the end of this readme.
    • Place the binaries under [code location]/infection_monkey/bin, under the names 'sc_monkey_runner32.so', 'sc_monkey_runner64.so'
  4. Build Traceroute binaries

    • Build/Download according to sections at the end of this readme.
    • Place the binaries under [code location]/infection_monkey/bin, under the names 'traceroute32', 'traceroute64'
  5. To build, run in terminal:

    • cd [code location]/infection_monkey
    • chmod +x build_linux.sh
    • ./build_linux.sh

    output is placed under dist/monkey32 or dist/monkey64 depending on your version of python

Sambacry

Sambacry requires two standalone binaries to execute remotely.

  1. Build sambacry binaries yourself

    • Install gcc-multilib if it's not installed sudo apt-get install gcc-multilib
    • Build the binaries
      1. cd [code location]/infection_monkey/exploit/sambacry_monkey_runner
      2. ./build.sh
  2. Download our pre-built sambacry binaries

Traceroute

Traceroute requires two standalone binaries to execute remotely. The monkey carries the standalone binaries since traceroute isn't built in all Linux distributions. You can either build them yourself or download pre-built binaries.

  1. Build traceroute yourself
  2. Download our pre-built traceroute binaries