monkey/monkey/infection_monkey
Daniel Goldberg 56d601967b fix permissions on script 2019-12-29 12:38:15 +00:00
..
exploit fix permissions on script 2019-12-29 12:38:15 +00:00
model Auto reformat all code 2019-10-28 21:11:05 +02:00
network Fix spacing 2019-11-28 12:46:33 +01:00
post_breach Added TLS version to powershell command. 2019-12-26 16:08:55 +02:00
pyinstaller_hooks Add PyInstaller Hook 2019-11-21 19:20:41 +02:00
system_info Random PEP8 cleanups 2019-11-27 13:39:47 +02:00
telemetry More python3 fixes 2019-10-18 18:14:42 +03:00
transport Move out of try, can't realistically fail 2019-11-27 13:55:39 +02:00
utils Replaced CreateProcessAsUser with CreateProcessWithLogonW to get over the "0xc0000142" error code and added -UseBasicParsing to get over the IE Engine inconfigured error 2019-12-24 19:08:52 +02:00
__init__.py Move everything under monkey 2018-05-23 16:05:41 +03:00
build_linux.sh merge spec files 2018-12-16 13:38:44 +02:00
build_windows.bat Removed accidental changes to file 2019-10-06 15:09:46 +03:00
config.py Remove unused imports 2019-11-24 10:58:46 +02:00
control.py Fix spacing 2019-11-28 12:46:33 +01:00
dropper.py Auto reformat all code 2019-10-28 21:11:05 +02:00
example.conf Auto reformat all code 2019-10-28 21:11:05 +02:00
main.py Whitespace and imports fixes 2019-10-28 16:14:52 +02:00
monkey.ico Move everything under monkey 2018-05-23 16:05:41 +03:00
monkey.py Revert bad PEP fix 2019-11-24 10:40:33 +02:00
monkey.spec More python3 outdated decorators and bytes-string mixup fixes 2019-10-21 17:38:39 +03:00
monkeyfs.py Intentional shadowing of builtins 2019-10-28 16:15:52 +02:00
pyinstaller_utils.py Auto reformat all code 2019-10-28 21:11:05 +02:00
readme.md Merge Infection Monkey requirements files 2019-11-26 13:22:56 +02:00
requirements.txt Replaced CreateProcessAsUser with CreateProcessWithLogonW to get over the "0xc0000142" error code and added -UseBasicParsing to get over the IE Engine inconfigured error 2019-12-24 19:08:52 +02:00
system_singleton.py Auto reformat all code 2019-10-28 21:11:05 +02:00
tunnel.py Move get_interface_to_target to network, helping prevent a circular import 2019-10-30 20:23:19 -04:00
windows_upgrader.py Broke monkey_utils to utils/ and moved sambacry_runner to exploit. This commit is 100% refactoring without any new code, just deleted unused utils. 2019-09-16 13:00:42 +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.
  • Mimikatz binaries - Two windows 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 and Mimikatz binaries

    • 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\monkey.exe

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/monkey

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

Mimikatz

Mimikatz is required for the Monkey to be able to steal credentials on Windows. It's possible to either compile binaries from source (requires Visual Studio 2013 and up) or download them from our repository.

  1. Build Mimikatz yourself

    • Building mimikatz requires Visual Studio 2013 and up
    • Clone our version of mimikatz from https://github.com/guardicore/mimikatz/tree/1.1.0
    • Build using Visual Studio.
    • Put each version in a zip file
      1. The zip should contain only the Mimikatz DLL named tmpzipfile123456.dll
      2. It should be protected using the password 'VTQpsJPXgZuXhX6x3V84G'.
      3. The zip file should be named mk32.zip/mk64.zip accordingly.
      4. Zipping with 7zip has been tested. Other zipping software may not work.
  2. Download our pre-built mimikatz 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