diff --git a/build_env/readme.txt b/build_env/readme.txt new file mode 100644 index 000000000..c21fd80b6 --- /dev/null +++ b/build_env/readme.txt @@ -0,0 +1,91 @@ +How to create a monkey build environment: + +Windows: +1. Install python 2.7 + https://www.python.org/download/releases/2.7 +2. install pywin32-219.win32-py2.7.exe + http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/ +3. install VCForPython27.msi + http://www.microsoft.com/en-us/download/details.aspx?id=44266 +4. Download & Run get-pip.py + https://bootstrap.pypa.io/get-pip.py +5. Run: + setx path "%path%;C:\Python27\;C:\Python27\Scripts" + python -m pip install enum34 + python -m pip install impacket + python -m pip install PyCrypto + python -m pip install pyasn1 + python -m pip install cffi + python -m pip install twisted + python -m pip install rdpy + python -m pip install requests + python -m pip install odict + python -m pip install paramiko + python -m pip install psutil + python -m pip install PyInstaller + type C:\Python27\Lib\site-packages\zope\__init__.py +6. Put source code in C:\Code\monkey\chaos_monkey +7. Download and extract UPX binary to C:\Code\monkey\chaos_monkey\bin\upx.exe: + http://upx.sourceforge.net/download/upx391w.zip +8. Run C:\Code\monkey\chaos_monkey\build_windows.bat to build, output is in dist\monkey.exe + +Linux (Tested on Ubuntu 12.04): +1. Run: + sudo apt-get update + apt-get install python-pip python-dev libffi-dev upx + sudo pip install enum34 + sudo pip install impacket + sudo pip install PyCrypto --upgrade + sudo pip install pyasn1 + sudo pip install cffi + sudo pip install zope.interface --upgrade + sudo pip install twisted + sudo pip install rdpy + sudo pip install requests --upgrade + sudo pip install odict + sudo pip install paramiko + sudo pip install psutil + sudo pip install https://github.com/pyinstaller/pyinstaller/releases/download/3.0.dev2/PyInstaller-3.0.dev2.tar.gz + sudo apt-get install winbind +2. Put source code in /home/user/Code/monkey/chaos_monkey +3. To build, run in terminal: + cd /home/user/Code/monkey/chaos_monkey + chmod +x build_linux.sh + ./build_linux.sh + output is in dist/monkey + +How to connect build environment to c&c: +- will auto compile the source code stored in the c&c and update the c&c binaries accordingly +Linux (Tested on Ubuntu 12.04): + 1. Setup c&c according to readme in monkey_island folder + 2. Install cifs: + sudo apt-get install cifs-utils + 3. Run: + mkdir /home/user/Code + sudo mkdir /mnt/sources + sudo mkdir /mnt/binaries + 4. Save username and password for c&c smb: + echo username= > /home/user/.smbcreds + echo password= >> /home/user/.smbcreds + (Change and according to c&c) + 5. Edit fstab: + run: sudo nano /etc/fstab + add rows: + //monkeycc/sources /mnt/sources cifs iocharset=utf-8,credentials=/home/user/.smbcreds,uid=1000 0 0 + //monkeycc/binaries /mnt/binaries cifs iocharset=utf-8,credentials=/home/user/.smbcreds,uid=1000 0 0 + 6. Remount: + sudo mount -a + 7. Check if sources exist in /mnt/sources + If not, edit hosts file - add a line in /etc/hosts with c&c ip and hostname and remount. + 8. put build_from_cc.sh in /home/user and run with name of output binary (as appeared on c&c) as parameter, + for example: build_from_cc.sh monkey-linux-32 + use Ctrl+C to manualy check compilation and Ctrl+\ to exit script. + +Windows: + 1. Setup c&c according to readme in monkey_island folder + 2. Setup net use to c&c server: + net use Z:\ \\monkeycc\sources /persistent:yes + net use X:\ \\monkeycc\binaries /persistent:yes + 3. mkdir C:\Code + 4. Extract build_from_cc.bat to c:\code and run with name of output binary (as appeared on c&c) as parameter, + for example: build_from_cc.bat monkey-windows-64.exe \ No newline at end of file diff --git a/build_env/requirements.txt b/build_env/requirements.txt new file mode 100644 index 000000000..9f5705655 --- /dev/null +++ b/build_env/requirements.txt @@ -0,0 +1,13 @@ +enum34 +impacket +PyCrypto +pyasn1 +cffi +twisted +rdpy +requests +odict +paramiko +psutil +PyInstaller +ecdsa \ No newline at end of file diff --git a/chaos_monkey/network/range.py b/chaos_monkey/network/range.py index 0dfcf69ad..7f0fc0a7c 100644 --- a/chaos_monkey/network/range.py +++ b/chaos_monkey/network/range.py @@ -1,4 +1,4 @@ -import socket +dimport socket import random import struct from abc import ABCMeta, abstractmethod diff --git a/monkey_island/requirements.txt b/monkey_island/requirements.txt new file mode 100644 index 000000000..9d203c6c7 --- /dev/null +++ b/monkey_island/requirements.txt @@ -0,0 +1,4 @@ +flask +Flask-Pymongo +Flask-Restful +python-dateutil \ No newline at end of file