1bfffb0bfd | ||
---|---|---|
.. | ||
cc | ||
deb-package | ||
docs | ||
linux | ||
pyinstaller_hooks | ||
setup | ||
windows | ||
Pipfile | ||
Pipfile.lock | ||
__init__.py | ||
main.py | ||
monkey_island.ico | ||
monkey_island.spec | ||
readme.md |
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 Island manually, refer to the instructions below.
How to set up the Monkey Island server
On Windows
-
Exclude the folder you are planning to install the Monkey in from your AV software, as it might block or delete files from the installation.
-
Create folder "bin" under monkey\monkey_island
-
Place portable version of Python 3.7.4
- Download and install from: https://www.python.org/ftp/python/3.7.4/
-
Install pipx
pip install --user -U pipx
pipx ensurepath
-
Install pipenv
pipx install pipenv
-
From the
monkey\monkey_island
directory, install python dependencies:pipenv sync --dev
-
Setup mongodb (Use one of the following two options):
- Place portable version of mongodb
- Download from: https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.2.1.zip
- Extract contents of bin folder to \monkey\monkey_island\bin\mongodb.
OR
- Use already running instance of mongodb
- Run 'set MONKEY_MONGO_URL="mongodb://:27017/monkeyisland"'. Replace '' with address of mongo server
- Place portable version of mongodb
-
Place portable version of OpenSSL
- Download from: https://indy.fulgan.com/SSL/Archive/openssl-1.0.2p-i386-win32.zip
- Extract contents to monkey_island\bin\openssl
-
Download and install Microsoft Visual C++ redistributable for Visual Studio 2017
- Download and install from: https://go.microsoft.com/fwlink/?LinkId=746572
-
Generate SSL Certificate
- run
./windows/create_certificate.bat
when your current working directory is monkey_island
- run
-
Put Infection Monkey binaries inside monkey_island/cc/binaries (binaries can be found in releases on github or build from source) monkey-linux-64 - monkey binary for linux 64bit monkey-windows-64.exe - monkey binary for windows 64bit
-
Install npm
- Download and install from: https://www.npmjs.com/get-npm
-
Build Monkey Island frontend
- cd to 'monkey_island\cc\ui'
- run 'npm update'
- run 'npm run dist'
How to run
- When your current working directory is monkey_island, run monkey_island\windows\run_server_py.bat
On Linux
-
Set your current working directory to
monkey/
. -
Get python 3.7 and pip if your linux distribution doesn't have it built in (following steps are for Ubuntu 16):
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt install python3.7 python3-pip python3.7-dev python3.7-venv
python3.7 -m pip install pip
-
Install pipx:
python3.7 -m pip install --user pipx
python3.7 -m pipx ensurepath
source ~/.profile
-
Install pipenv:
pipx install pipenv
-
Install required packages:
sudo apt-get install libffi-dev upx libssl-dev libc++1 openssl
-
Install the Monkey Island python dependencies:
cd ./monkey_island
pipenv sync --dev
cd ..
-
Create the following directories in monkey island folder (execute from ./monkey):
mkdir -p ./monkey_island/bin/mongodb
mkdir -p ./monkey_island/cc/binaries
-
Put monkey binaries in /monkey_island/cc/binaries (binaries can be found in releases on github).
monkey-linux-64 - monkey binary for linux 64bit
monkey-windows-64.exe - monkey binary for windows 64bit
Also, if you're going to run monkeys on local machine execute:
chmod 755 ./monkey_island/cc/binaries/monkey-linux-64
-
Setup MongoDB (Use one of the two following options):
- Download MongoDB and extract it to monkey/monkey_island/bin/mongodb:
- Run
./monkey_island/linux/install_mongo.sh ./monkey_island/bin/mongodb
. This will download and extract the relevant mongoDB for your OS.
- Run
OR
- Use already running instance of mongodb
- Run
set MONKEY_MONGO_URL="mongodb://<SERVER ADDR>:27017/monkeyisland"
. Replace '' with address of mongo server
- Run
- Download MongoDB and extract it to monkey/monkey_island/bin/mongodb:
-
Generate SSL Certificate:
cd ./monkey_island
chmod 755 ./linux/create_certificate.sh
./linux/create_certificate.sh
-
Install npm and node by running:
sudo apt-get install curl
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
-
Build Monkey Island frontend
- cd to 'monkey_island/cc/ui'
npm install sass-loader node-sass webpack --save-dev
npm update
npm run dist
How to run
- From the
monkey
directory, runpython3.7 ./monkey_island.py
Troubleshooting
When committing your changes for the first time, you may encounter some errors thrown by the pre-commit hooks. This is most likely because some python dependencies are missing from your system.
To resolve this, use pipenv
to create a requirements.txt
for both the infection_monkey/
and monkey_island/
requirements and install it with pip
.
cd [code location]/infection_monkey
python3.7 -m pipenv lock -r --dev > requirements.txt
python3.7 -m pip install -r requirements.txt
and
cd [code location]/monkey_island
python3.7 -m pipenv lock -r --dev > requirements.txt
python3.7 -m pip install -r requirements.txt