diff --git a/deployment_scripts/README.md b/deployment_scripts/README.md
index 10027edce..f69a48b77 100644
--- a/deployment_scripts/README.md
+++ b/deployment_scripts/README.md
@@ -13,10 +13,11 @@ Don't forget to add python to PATH or do so while installing it via this script.
## Linux
+Linux deployment script is meant for Ubuntu 16.x machines.
You must have root permissions, but don't run the script as root.
Launch deploy_linux.sh from scripts directory.
-First argument should be an empty directory (script can create one, default is ./infection_monkey) and second is the branch you want to clone (develop by default).
-Choose a directory where you have all the relevant permissions, for e.g. /home/your_username
+First argument should be an absolute path of an empty directory (script will create one if doesn't exist, default is ./infection_monkey).
+Second parameter is the branch you want to clone (develop by default).
Example usages:
./deploy_linux.sh (deploys under ./infection_monkey)
./deploy_linux.sh "/home/test/monkey" (deploys under /home/test/monkey)
diff --git a/deployment_scripts/config b/deployment_scripts/config
index bb10ed105..fb7a3d5b6 100644
--- a/deployment_scripts/config
+++ b/deployment_scripts/config
@@ -14,6 +14,12 @@ WINDOWS_32_BINARY_NAME="monkey-windows-32.exe"
WINDOWS_64_BINARY_URL="https://github.com/guardicore/monkey/releases/download/1.6/monkey-windows-64.exe"
WINDOWS_64_BINARY_NAME="monkey-windows-64.exe"
+# Other binaries for monkey
+TRACEROUTE_64_BINARY_URL="https://github.com/guardicore/monkey/releases/download/1.6/traceroute64"
+TRACEROUTE_32_BINARY_URL="https://github.com/guardicore/monkey/releases/download/1.6/traceroute32"
+SAMBACRY_64_BINARY_URL="https://github.com/guardicore/monkey/releases/download/1.6/sc_monkey_runner64.so"
+SAMBACRY_32_BINARY_URL="https://github.com/guardicore/monkey/releases/download/1.6/sc_monkey_runner32.so"
+
# Mongo url's
MONGO_DEBIAN_URL="https://downloads.mongodb.org/linux/mongodb-linux-x86_64-debian81-latest.tgz"
MONGO_UBUNTU_URL="https://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-latest.tgz"
diff --git a/deployment_scripts/config.ps1 b/deployment_scripts/config.ps1
index 07be64612..095f7b899 100644
--- a/deployment_scripts/config.ps1
+++ b/deployment_scripts/config.ps1
@@ -3,7 +3,7 @@ $MONKEY_FOLDER_NAME = "infection_monkey"
# Url of public git repository that contains monkey's source code
$MONKEY_GIT_URL = "https://github.com/guardicore/monkey"
# Link to the latest python download or install it manually
-$PYTHON_URL = "https://www.python.org/ftp/python/2.7.13/python-2.7.13.amd64.msi"
+$PYTHON_URL = "https://www.python.org/ftp/python/3.7.4/python-3.7.4-amd64.exe"
# Monkey binaries
$LINUX_32_BINARY_URL = "https://github.com/guardicore/monkey/releases/download/1.6/monkey-linux-32"
@@ -22,27 +22,25 @@ $SAMBA_64_BINARY_NAME = "sc_monkey_runner64.so"
# Other directories and paths ( most likely you dont need to configure)
$MONKEY_ISLAND_DIR = "\monkey\monkey_island"
$MONKEY_DIR = "\monkey\infection_monkey"
-$SAMBA_BINARIES_DIR = Join-Path -Path $MONKEY_DIR -ChildPath "\exploit\sambacry_monkey_runner"
+$SAMBA_BINARIES_DIR = Join-Path -Path $MONKEY_DIR -ChildPath "\bin"
$PYTHON_DLL = "C:\Windows\System32\python27.dll"
-$MK32_DLL = "mk32.dll"
-$MK64_DLL = "mk64.dll"
-$TEMP_PYTHON_INSTALLER = ".\python.msi"
+$MK32_DLL = "mk32.zip"
+$MK64_DLL = "mk64.zip"
+$TEMP_PYTHON_INSTALLER = ".\python.exe"
$TEMP_MONGODB_ZIP = ".\mongodb.zip"
$TEMP_OPEN_SSL_ZIP = ".\openssl.zip"
$TEMP_CPP_INSTALLER = "cpp.exe"
$TEMP_NPM_INSTALLER = "node.msi"
$TEMP_PYWIN32_INSTALLER = "pywin32.exe"
$TEMP_UPX_ZIP = "upx.zip"
-$TEMP_VC_FOR_PYTHON27_INSTALLER = "vcforpython.msi"
$UPX_FOLDER = "upx394w"
# Other url's
-$VC_FOR_PYTHON27_URL = "https://download.microsoft.com/download/7/9/6/796EF2E4-801B-4FC4-AB28-B59FBF6D907B/VCForPython27.msi"
$MONGODB_URL = "https://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-latest.zip"
$OPEN_SSL_URL = "https://indy.fulgan.com/SSL/Archive/openssl-1.0.2l-i386-win32.zip"
$CPP_URL = "https://go.microsoft.com/fwlink/?LinkId=746572"
$NPM_URL = "https://nodejs.org/dist/v10.13.0/node-v10.13.0-x64.msi"
-$PYWIN32_URL = "https://github.com/mhammond/pywin32/releases/download/b224/pywin32-224.win-amd64-py2.7.exe"
+$PYWIN32_URL = "https://github.com/mhammond/pywin32/releases/download/b225/pywin32-225.win-amd64-py3.7.exe"
+$MK32_DLL_URL = "https://github.com/guardicore/mimikatz/releases/download/1.1.0/mk32.zip"
+$MK64_DLL_URL = "https://github.com/guardicore/mimikatz/releases/download/1.1.0/mk64.zip"
$UPX_URL = "https://github.com/upx/upx/releases/download/v3.94/upx394w.zip"
-$MK32_DLL_URL = "https://github.com/guardicore/mimikatz/releases/download/1.1.0/mk32.dll"
-$MK64_DLL_URL = "https://github.com/guardicore/mimikatz/releases/download/1.1.0/mk64.dll"
diff --git a/deployment_scripts/deploy_linux.sh b/deployment_scripts/deploy_linux.sh
index 4df8ba114..488911f15 100644
--- a/deployment_scripts/deploy_linux.sh
+++ b/deployment_scripts/deploy_linux.sh
@@ -11,9 +11,9 @@ fi
ISLAND_PATH="$monkey_home/monkey/monkey_island"
MONKEY_COMMON_PATH="$monkey_home/monkey/common/"
MONGO_PATH="$ISLAND_PATH/bin/mongodb"
-MONGO_BIN_PATH="$MONGO_PATH/bin"
-ISLAND_DB_PATH="$ISLAND_PATH/db"
ISLAND_BINARIES_PATH="$ISLAND_PATH/cc/binaries"
+INFECTION_MONKEY_DIR="$monkey_home/monkey/infection_monkey"
+MONKEY_BIN_DIR="$INFECTION_MONKEY_DIR/bin"
handle_error () {
echo "Fix the errors above and rerun the script"
@@ -52,25 +52,47 @@ fi
# Create folders
log_message "Creating island dirs under $ISLAND_PATH"
-mkdir -p ${MONGO_BIN_PATH}
-mkdir -p ${ISLAND_DB_PATH}
+mkdir -p ${MONGO_PATH}
mkdir -p ${ISLAND_BINARIES_PATH} || handle_error
-python_version=`python --version 2>&1`
-if [[ ${python_version} == *"command not found"* ]] || [[ ${python_version} != *"Python 2.7"* ]]; then
- echo "Python 2.7 is not found or is not a default interpreter for 'python' command..."
- exit 1
+# Detecting command that calls python 3.7
+python_cmd=""
+if [[ `python --version 2>&1` == *"Python 3.7"* ]]; then
+ python_cmd="python"
+fi
+if [[ `python37 --version 2>&1` == *"Python 3.7"* ]]; then
+ python_cmd="python37"
+fi
+if [[ `python3.7 --version 2>&1` == *"Python 3.7"* ]]; then
+ python_cmd="python3.7"
+fi
+
+if [[ ${python_cmd} == "" ]]; then
+ log_message "Python 3.7 command not found. Installing python 3.7."
+ sudo add-apt-repository ppa:deadsnakes/ppa
+ sudo apt install python3.7
+ log_message "Python 3.7 is now available with command 'python3.7'."
+ python_cmd="python3.7"
fi
log_message "Updating package list"
sudo apt-get update
log_message "Installing pip"
-sudo apt-get install python-pip
+sudo apt install python3-pip
+${python_cmd} -m pip install pip
+
+log_message "Install python3.7-dev"
+sudo apt-get install python3.7-dev
log_message "Installing island requirements"
requirements="$ISLAND_PATH/requirements.txt"
-python -m pip install --user -r ${requirements} || handle_error
+${python_cmd} -m pip install --user --upgrade -r ${requirements} || handle_error
+
+log_message "Installing monkey requirements"
+sudo apt-get install libffi-dev upx libssl-dev libc++1
+cd ${monkey_home}/monkey/infection_monkey || handle_error
+${python_cmd} -m pip install -r requirements_linux.txt --user --upgrade || handle_error
# Download binaries
log_message "Downloading binaries"
@@ -89,49 +111,42 @@ linux_dist=`lsb_release -a 2> /dev/null`
# If a user haven't installed mongo manually check if we can install it with our script
log_message "Installing MongoDB"
-${ISLAND_PATH}/linux/install_mongo.sh ${MONGO_BIN_PATH} || handle_error
+${ISLAND_PATH}/linux/install_mongo.sh ${MONGO_PATH} || handle_error
log_message "Installing openssl"
sudo apt-get install openssl
# Generate SSL certificate
log_message "Generating certificate"
-cd ${ISLAND_PATH} || handle_error
-openssl genrsa -out cc/server.key 1024 || handle_error
-openssl req -new -key cc/server.key -out cc/server.csr \
--subj "/C=GB/ST=London/L=London/O=Global Security/OU=Monkey Department/CN=monkey.com" || handle_error
-openssl x509 -req -days 366 -in cc/server.csr -signkey cc/server.key -out cc/server.crt || handle_error
-
-
-sudo chmod +x ${ISLAND_PATH}/linux/create_certificate.sh || handle_error
-${ISLAND_PATH}/linux/create_certificate.sh || handle_error
-
-# Install npm
-log_message "Installing npm"
-sudo apt-get install npm
+cd ${ISLAND_PATH}
+openssl genrsa -out cc/server.key 2048
+openssl req -new -key cc/server.key -out cc/server.csr -subj "/C=GB/ST=London/L=London/O=Global Security/OU=Monkey Department/CN=monkey.com"
+openssl x509 -req -days 366 -in cc/server.csr -signkey cc/server.key -out cc/server.crt
# Update node
-log_message "Updating node"
-curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
+log_message "Installing nodejs"
+cd "$ISLAND_PATH/cc/ui" || handle_error
+curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
+npm install sass-loader node-sass webpack --save-dev
+npm update
log_message "Generating front end"
-cd "$ISLAND_PATH/cc/ui" || handle_error
-npm update
npm run dist
-# Monkey setup
-log_message "Installing monkey requirements"
-sudo apt-get install python-pip python-dev libffi-dev upx libssl-dev libc++1
-cd ${monkey_home}/monkey/infection_monkey || handle_error
-python -m pip install --user -r requirements_linux.txt || handle_error
+# Making dir for binaries
+mkdir ${MONKEY_BIN_DIR}
+
+# Download sambacry binaries
+log_message "Downloading sambacry binaries"
+wget -c -N -P ${MONKEY_BIN_DIR} ${SAMBACRY_64_BINARY_URL}
+wget -c -N -P ${MONKEY_BIN_DIR} ${SAMBACRY_32_BINARY_URL}
+
+# Download traceroute binaries
+log_message "Downloading traceroute binaries"
+wget -c -N -P ${MONKEY_BIN_DIR} ${TRACEROUTE_64_BINARY_URL}
+wget -c -N -P ${MONKEY_BIN_DIR} ${TRACEROUTE_32_BINARY_URL}
-# Build samba
-log_message "Building samba binaries"
-sudo apt-get install gcc-multilib
-cd ${monkey_home}/monkey/infection_monkey/exploit/sambacry_monkey_runner
-sudo chmod +x ./build.sh || handle_error
-./build.sh
sudo chmod +x ${monkey_home}/monkey/infection_monkey/build_linux.sh
diff --git a/deployment_scripts/deploy_windows.ps1 b/deployment_scripts/deploy_windows.ps1
index 17d08ecc8..5a21c4daa 100644
--- a/deployment_scripts/deploy_windows.ps1
+++ b/deployment_scripts/deploy_windows.ps1
@@ -44,39 +44,28 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
try
{
$version = cmd.exe /c '"python" --version 2>&1'
- if ( $version -like 'Python 2.7.*' ) {
- "Python 2.7.* was found, installing dependancies"
+ if ( $version -like 'Python 3.*' ) {
+ "Python 3.* was found, installing dependencies"
} else {
throw System.Management.Automation.CommandNotFoundException
}
}
catch [System.Management.Automation.CommandNotFoundException]
{
- "Downloading python 2.7 ..."
+ "Downloading python 3 ..."
+ "Select 'add to PATH' when installing"
$webClient.DownloadFile($PYTHON_URL, $TEMP_PYTHON_INSTALLER)
Start-Process -Wait $TEMP_PYTHON_INSTALLER -ErrorAction Stop
- $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")
+ $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Remove-Item $TEMP_PYTHON_INSTALLER
# Check if installed correctly
$version = cmd.exe /c '"python" --version 2>&1'
if ( $version -like '* is not recognized*' ) {
- "Python is not found in PATH. Add it manually or reinstall python."
+ "Python is not found in PATH. Add it to PATH and relaunch the script."
return
}
}
- # Set python home dir
- $PYTHON_PATH = Split-Path -Path (Get-Command python | Select-Object -ExpandProperty Source)
-
- # Get vcforpython27 before installing requirements
- "Downloading Visual C++ Compiler for Python 2.7 ..."
- $webClient.DownloadFile($VC_FOR_PYTHON27_URL, $TEMP_VC_FOR_PYTHON27_INSTALLER)
- Start-Process -Wait $TEMP_VC_FOR_PYTHON27_INSTALLER -ErrorAction Stop
- $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")
- Remove-Item $TEMP_VC_FOR_PYTHON27_INSTALLER
-
- # Install requirements for island
- $islandRequirements = Join-Path -Path $monkey_home -ChildPath $MONKEY_ISLAND_DIR | Join-Path -ChildPath "\requirements.txt" -ErrorAction Stop
"Upgrading pip..."
$output = cmd.exe /c 'python -m pip install --user --upgrade pip 2>&1'
$output
@@ -84,11 +73,22 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
"Make sure pip module is installed and re-run this script."
return
}
+
+ "Installing python packages for island"
+ $islandRequirements = Join-Path -Path $monkey_home -ChildPath $MONKEY_ISLAND_DIR | Join-Path -ChildPath "\requirements.txt" -ErrorAction Stop
& python -m pip install --user -r $islandRequirements
- # Install requirements for monkey
+ "Installing python packages for monkey"
$monkeyRequirements = Join-Path -Path $monkey_home -ChildPath $MONKEY_DIR | Join-Path -ChildPath "\requirements_windows.txt"
& python -m pip install --user -r $monkeyRequirements
+ $user_python_dir = cmd.exe /c 'py -m site --user-site'
+ $user_python_dir = Join-Path (Split-Path $user_python_dir) -ChildPath "\Scripts"
+ if(!($ENV:PATH | Select-String -SimpleMatch $user_python_dir)){
+ "Adding python scripts path to user's env"
+ $env:Path += ";"+$user_python_dir
+ [Environment]::SetEnvironmentVariable("Path",$env:Path,"User")
+ }
+
# Download mongodb
if(!(Test-Path -Path (Join-Path -Path $binDir -ChildPath "mongodb") )){
"Downloading mongodb ..."
diff --git a/monkey/infection_monkey/monkey.spec b/monkey/infection_monkey/monkey.spec
index 0ada7f403..9c5fa9a18 100644
--- a/monkey/infection_monkey/monkey.spec
+++ b/monkey/infection_monkey/monkey.spec
@@ -68,17 +68,11 @@ def process_datas(orig_datas):
def get_binaries():
- binaries = get_windows_only_binaries() if is_windows() else get_linux_only_binaries()
+ binaries = [] if is_windows() else get_linux_only_binaries()
binaries += get_sc_binaries()
return binaries
-def get_windows_only_binaries():
- binaries = []
- binaries += get_msvcr()
- return binaries
-
-
def get_linux_only_binaries():
binaries = []
binaries += get_traceroute_binaries()
@@ -93,10 +87,6 @@ def get_sc_binaries():
return [(x, get_bin_file_path(x), 'BINARY') for x in ['sc_monkey_runner32.so', 'sc_monkey_runner64.so']]
-def get_msvcr():
- return [('msvcr100.dll', os.environ['WINDIR'] + '\\system32\\msvcr100.dll', 'BINARY')]
-
-
def get_traceroute_binaries():
traceroute_name = 'traceroute32' if is_32_bit() else 'traceroute64'
return [(traceroute_name, get_bin_file_path(traceroute_name), 'BINARY')]
diff --git a/monkey/infection_monkey/requirements_linux.txt b/monkey/infection_monkey/requirements_linux.txt
index e9872b396..5491851b5 100644
--- a/monkey/infection_monkey/requirements_linux.txt
+++ b/monkey/infection_monkey/requirements_linux.txt
@@ -1,11 +1,10 @@
-enum34
impacket
pycryptodome
cffi
requests
odict
paramiko
-psutil==3.4.2
+psutil
PyInstaller
ecdsa
netifaces
@@ -13,4 +12,3 @@ ipaddress
wmi
pymssql
pyftpdlib
-enum34
diff --git a/monkey/infection_monkey/requirements_windows.txt b/monkey/infection_monkey/requirements_windows.txt
index 61fff177d..cf0755d2e 100644
--- a/monkey/infection_monkey/requirements_windows.txt
+++ b/monkey/infection_monkey/requirements_windows.txt
@@ -1,4 +1,3 @@
-enum34
impacket
pycryptodome
cffi
@@ -14,4 +13,3 @@ wmi
pywin32
pymssql
pyftpdlib
-enum34
diff --git a/monkey/monkey_island/cc/ui/package-lock.json b/monkey/monkey_island/cc/ui/package-lock.json
index 4a6f1f98a..8a2981bd5 100644
--- a/monkey/monkey_island/cc/ui/package-lock.json
+++ b/monkey/monkey_island/cc/ui/package-lock.json
@@ -2731,7 +2731,7 @@
"dev": true,
"requires": {
"bluebird": "3.5.5",
- "chownr": "1.1.2",
+ "chownr": "1.1.3",
"figgy-pudding": "3.5.1",
"glob": "7.1.4",
"graceful-fs": "4.2.2",
@@ -2759,7 +2759,7 @@
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
"requires": {
- "yallist": "3.0.3"
+ "yallist": "3.1.1"
}
},
"y18n": {
@@ -2769,9 +2769,9 @@
"dev": true
},
"yallist": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
- "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true
}
}
@@ -2945,9 +2945,9 @@
}
},
"chownr": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz",
- "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+ "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
"dev": true
},
"chrome-trace-event": {
@@ -5117,9 +5117,9 @@
}
},
"eslint-plugin-react": {
- "version": "7.14.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz",
- "integrity": "sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA==",
+ "version": "7.15.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.15.1.tgz",
+ "integrity": "sha512-YotSItgMPwLGlr3df44MGVyXnHkmKcpkHTzpte3QwJtocr3nFqCXCuoxFZeBtnT8RHdj038NlTvam3dcAFrMcA==",
"dev": true,
"requires": {
"array-includes": "3.0.3",
@@ -15576,9 +15576,9 @@
}
},
"react": {
- "version": "16.9.0",
- "resolved": "https://registry.npmjs.org/react/-/react-16.9.0.tgz",
- "integrity": "sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==",
+ "version": "16.10.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.10.1.tgz",
+ "integrity": "sha512-2bisHwMhxQ3XQz4LiJJwG3360pY965pTl/MRrZYxIBKVj4fOHoDs5aZAkYXGxDRO1Li+SyjTAilQEbOmtQJHzA==",
"requires": {
"loose-envify": "1.3.1",
"object-assign": "4.1.1",
@@ -15666,14 +15666,14 @@
}
},
"react-dom": {
- "version": "16.9.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz",
- "integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==",
+ "version": "16.10.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.10.1.tgz",
+ "integrity": "sha512-SmM4ZW0uug0rn95U8uqr52I7UdNf6wdGLeXDmNLfg3y5q5H9eAbdjF5ubQc3bjDyRrvdAB2IKG7X0GzSpnn5Mg==",
"requires": {
"loose-envify": "1.3.1",
"object-assign": "4.1.1",
"prop-types": "15.7.2",
- "scheduler": "0.15.0"
+ "scheduler": "0.16.1"
}
},
"react-event-timeline": {
@@ -15718,9 +15718,9 @@
}
},
"react-hot-loader": {
- "version": "4.12.13",
- "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.13.tgz",
- "integrity": "sha512-4Byk3aVQhcmTnVCBvDHOEOUnMFMj81r2yRKZQSfLOG2yd/4hm/A3oK15AnCZilQExqSFSsHcK64lIIU+dU2zQQ==",
+ "version": "4.12.14",
+ "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.14.tgz",
+ "integrity": "sha512-ecxH4eBvEaJ9onT8vkEmK1FAAJUh1PqzGqds9S3k+GeihSp7nKAp4fOxytO+Ghr491LiBD38jaKyDXYnnpI9pQ==",
"dev": true,
"requires": {
"fast-levenshtein": "2.0.6",
@@ -15745,7 +15745,7 @@
"integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==",
"dev": true,
"requires": {
- "react-is": "16.9.0"
+ "react-is": "16.10.1"
}
},
"json5": {
@@ -15769,9 +15769,9 @@
}
},
"react-is": {
- "version": "16.9.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.9.0.tgz",
- "integrity": "sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==",
+ "version": "16.10.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.10.1.tgz",
+ "integrity": "sha512-BXUMf9sIOPXXZWqr7+c5SeOKJykyVr2u0UDzEf4LNGc6taGkQe1A9DFD07umCIXz45RLr9oAAwZbAJ0Pkknfaw==",
"dev": true
},
"source-map": {
@@ -16007,9 +16007,9 @@
}
},
"react-toggle": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/react-toggle/-/react-toggle-4.0.2.tgz",
- "integrity": "sha512-EPTWnN7gQHgEAUEmjheanZXNzY5TPnQeyyHfEs3YshaiWZf5WNjfYDrglO5F1Hl/dNveX18i4l0grTEsYH2Ccw==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/react-toggle/-/react-toggle-4.1.1.tgz",
+ "integrity": "sha512-+wXlMcSpg8SmnIXauMaZiKpR+r2wp2gMUteroejp2UTSqGTVvZLN+m9EhMzFARBKEw7KpQOwzCyfzeHeAndQGw==",
"requires": {
"classnames": "2.2.6"
}
@@ -16705,9 +16705,9 @@
}
},
"scheduler": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz",
- "integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==",
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.16.1.tgz",
+ "integrity": "sha512-MIuie7SgsqMYOdCXVFZa8SKoNorJZUWHW8dPgto7uEHn1lX3fg2Gu0TzgK8USj76uxV7vB5eRMnZs/cdEHg+cg==",
"requires": {
"loose-envify": "1.3.1",
"object-assign": "4.1.1"
@@ -17935,20 +17935,20 @@
}
},
"terser": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.1.tgz",
- "integrity": "sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg==",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.4.tgz",
+ "integrity": "sha512-Kcrn3RiW8NtHBP0ssOAzwa2MsIRQ8lJWiBG/K7JgqPlomA3mtb2DEmp4/hrUA+Jujx+WZ02zqd7GYD+QRBB/2Q==",
"dev": true,
"requires": {
- "commander": "2.20.0",
+ "commander": "2.20.1",
"source-map": "0.6.1",
"source-map-support": "0.5.13"
},
"dependencies": {
"commander": {
- "version": "2.20.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
- "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
+ "version": "2.20.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz",
+ "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==",
"dev": true
},
"source-map": {
@@ -17981,7 +17981,7 @@
"schema-utils": "1.0.0",
"serialize-javascript": "1.9.1",
"source-map": "0.6.1",
- "terser": "4.3.1",
+ "terser": "4.3.4",
"webpack-sources": "1.4.3",
"worker-farm": "1.7.0"
},
@@ -19709,9 +19709,9 @@
}
},
"webpack": {
- "version": "4.40.2",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.40.2.tgz",
- "integrity": "sha512-5nIvteTDCUws2DVvP9Qe+JPla7kWPPIDFZv55To7IycHWZ+Z5qBdaBYPyuXWdhggTufZkQwfIK+5rKQTVovm2A==",
+ "version": "4.41.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.0.tgz",
+ "integrity": "sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g==",
"dev": true,
"requires": {
"@webassemblyjs/ast": "1.8.5",
diff --git a/monkey/monkey_island/cc/ui/package.json b/monkey/monkey_island/cc/ui/package.json
index 77e830d38..442e6a0d3 100644
--- a/monkey/monkey_island/cc/ui/package.json
+++ b/monkey/monkey_island/cc/ui/package.json
@@ -37,7 +37,7 @@
"css-loader": "^1.0.1",
"eslint": "^5.16.0",
"eslint-loader": "^2.2.1",
- "eslint-plugin-react": "^7.14.3",
+ "eslint-plugin-react": "^7.15.1",
"file-loader": "^1.1.11",
"glob": "^7.1.4",
"html-loader": "^0.5.5",
@@ -56,11 +56,11 @@
"phantomjs-prebuilt": "^2.1.16",
"react-addons-test-utils": "^15.6.2",
"react-event-timeline": "^1.6.3",
- "react-hot-loader": "^4.12.13",
+ "react-hot-loader": "^4.12.14",
"rimraf": "^2.7.1",
"style-loader": "^0.22.1",
"url-loader": "^1.1.2",
- "webpack": "^4.40.2",
+ "webpack": "^4.41.0",
"webpack-cli": "^3.3.9",
"webpack-dev-server": "^3.8.1"
},
@@ -84,13 +84,13 @@
"pluralize": "^7.0.0",
"prop-types": "^15.7.2",
"rc-progress": "^2.5.2",
- "react": "^16.9.0",
+ "react": "^16.10.1",
"react-bootstrap": "^0.32.4",
"react-copy-to-clipboard": "^5.0.1",
"react-data-components": "^1.2.0",
"react-desktop-notification": "^1.0.9",
"react-dimensions": "^1.3.0",
- "react-dom": "^16.9.0",
+ "react-dom": "^16.10.1",
"react-fa": "^5.0.0",
"react-filepond": "^7.0.1",
"react-graph-vis": "^1.0.2",
@@ -100,7 +100,7 @@
"react-router-dom": "^4.3.1",
"react-spinners": "^0.5.13",
"react-table": "^6.10.3",
- "react-toggle": "^4.0.1",
+ "react-toggle": "^4.1.1",
"react-tooltip-lite": "^1.10.0",
"redux": "^4.0.4",
"sass-loader": "^7.3.1",
diff --git a/monkey/monkey_island/linux/install_mongo.sh b/monkey/monkey_island/linux/install_mongo.sh
index 2395454b6..478d7e0ed 100755
--- a/monkey/monkey_island/linux/install_mongo.sh
+++ b/monkey/monkey_island/linux/install_mongo.sh
@@ -10,7 +10,7 @@ then
elif [[ ${os_version_monkey} == "Ubuntu 18.04"* ]] ;
then
echo Detected Ubuntu 18.04
- export tgz_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.0.8.tgz"
+ export tgz_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.2.0.tgz"
elif [[ ${os_version_monkey} == "Debian GNU/Linux 8"* ]] ;
then
echo Detected Debian 8
@@ -31,6 +31,7 @@ tar -xf mongodb.tgz
popd
mkdir -p ${MONGODB_DIR}/bin
+mkdir -p ${MONGODB_DIR}/db
cp ${TEMP_MONGO}/mongodb-*/bin/mongod ${MONGODB_DIR}/bin/mongod
cp ${TEMP_MONGO}/mongodb-*/LICENSE-Community.txt ${MONGODB_DIR}/
chmod a+x ${MONGODB_DIR}/bin/mongod
diff --git a/monkey/monkey_island/linux/run.sh b/monkey/monkey_island/linux/run.sh
index 978e02fe5..54e1cdd65 100644
--- a/monkey/monkey_island/linux/run.sh
+++ b/monkey/monkey_island/linux/run.sh
@@ -1,4 +1,16 @@
#!/bin/bash
-cd /var/monkey
-/var/monkey/monkey_island/bin/python/bin/python monkey_island.py
\ No newline at end of file
+# Detecting command that calls python 3.7
+python_cmd=""
+if [[ `python --version 2>&1` == *"Python 3.7"* ]]; then
+ python_cmd="python"
+fi
+if [[ `python37 --version 2>&1` == *"Python 3.7"* ]]; then
+ python_cmd="python37"
+fi
+if [[ `python3.7 --version 2>&1` == *"Python 3.7"* ]]; then
+ python_cmd="python3.7"
+fi
+
+./monkey_island/bin/mongodb/bin/mongod --dbpath ./monkey_island/bin/mongodb/db &
+${python_cmd} ./monkey_island.py
diff --git a/monkey/monkey_island/readme.txt b/monkey/monkey_island/readme.txt
index 956892e23..87b2f8c40 100644
--- a/monkey/monkey_island/readme.txt
+++ b/monkey/monkey_island/readme.txt
@@ -22,7 +22,7 @@ How to set up the Monkey Island server:
OR
3.b. Use already running instance of mongodb
3.b.1. Run 'set MONKEY_MONGO_URL="mongodb://:27017/monkeyisland"'. Replace '' with address of mongo server
-
+
4. Place portable version of OpenSSL
4.1. Download from: https://indy.fulgan.com/SSL/Archive/openssl-1.0.2l-i386-win32.zip
4.2. Extract content from bin folder to monkey_island\bin\openssl
@@ -56,7 +56,7 @@ How to run:
2. Install the packages from monkey_island/requirements.txt:
sudo python -m pip install -r /var/monkey_island/requirements.txt
If pip is not installed, install the python-pip package. Make sure the server is running Python 2.7 and not Python 3+.
-
+
3. put monkey binaries in /var/monkey_island/cc/binaries
monkey-linux-64 - monkey binary for linux 64bit
monkey-linux-32 - monkey binary for linux 32bit
@@ -81,11 +81,11 @@ How to run:
8. Install npm
8.1. Download and install from: https://www.npmjs.com/get-npm
-
+
9. Build Monkey Island frontend
9.1. cd to 'monkey_island/cc/ui'
9.2. run 'npm update'
9.3. run 'npm run dist'
-
+
How to run:
-1. run run.sh (located under /linux)
+1. When your current working directory is monkey, run ./monkey_island/linux/run.sh (located under /linux)