forked from p34709852/monkey
Windows deployment scripts to python3
This commit is contained in:
parent
df7a43127a
commit
1c880a76d9
|
@ -22,24 +22,20 @@ $SAMBA_64_BINARY_NAME = "sc_monkey_runner64.so"
|
||||||
# Other directories and paths ( most likely you dont need to configure)
|
# Other directories and paths ( most likely you dont need to configure)
|
||||||
$MONKEY_ISLAND_DIR = "\monkey\monkey_island"
|
$MONKEY_ISLAND_DIR = "\monkey\monkey_island"
|
||||||
$MONKEY_DIR = "\monkey\infection_monkey"
|
$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"
|
$PYTHON_DLL = "C:\Windows\System32\python27.dll"
|
||||||
$MK32_DLL = "mk32.dll"
|
$MK32_DLL = "mk32.zip"
|
||||||
$MK64_DLL = "mk64.dll"
|
$MK64_DLL = "mk64.zip"
|
||||||
$TEMP_PYTHON_INSTALLER = ".\python.msi"
|
$TEMP_PYTHON_INSTALLER = ".\python.exe"
|
||||||
$TEMP_MONGODB_ZIP = ".\mongodb.zip"
|
$TEMP_MONGODB_ZIP = ".\mongodb.zip"
|
||||||
$TEMP_OPEN_SSL_ZIP = ".\openssl.zip"
|
$TEMP_OPEN_SSL_ZIP = ".\openssl.zip"
|
||||||
$TEMP_CPP_INSTALLER = "cpp.exe"
|
|
||||||
$TEMP_NPM_INSTALLER = "node.msi"
|
$TEMP_NPM_INSTALLER = "node.msi"
|
||||||
$TEMP_PYWIN32_INSTALLER = "pywin32.exe"
|
$TEMP_PYWIN32_INSTALLER = "pywin32.exe"
|
||||||
$TEMP_UPX_ZIP = "upx.zip"
|
|
||||||
$UPX_FOLDER = "upx394w"
|
|
||||||
|
|
||||||
# Other url's
|
# Other url's
|
||||||
$MONGODB_URL = "https://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-latest.zip"
|
$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"
|
$OPEN_SSL_URL = "https://indy.fulgan.com/SSL/Archive/openssl-1.0.2l-i386-win32.zip"
|
||||||
$NPM_URL = "https://nodejs.org/dist/v10.13.0/node-v10.13.0-x64.msi"
|
$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"
|
||||||
$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.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.zip"
|
||||||
$MK64_DLL_URL = "https://github.com/guardicore/mimikatz/releases/download/1.1.0/mk64.dll"
|
|
||||||
|
|
|
@ -53,6 +53,7 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
catch [System.Management.Automation.CommandNotFoundException]
|
catch [System.Management.Automation.CommandNotFoundException]
|
||||||
{
|
{
|
||||||
"Downloading python 3 ..."
|
"Downloading python 3 ..."
|
||||||
|
"Select 'add to PATH' when installing"
|
||||||
$webClient.DownloadFile($PYTHON_URL, $TEMP_PYTHON_INSTALLER)
|
$webClient.DownloadFile($PYTHON_URL, $TEMP_PYTHON_INSTALLER)
|
||||||
Start-Process -Wait $TEMP_PYTHON_INSTALLER -ErrorAction Stop
|
Start-Process -Wait $TEMP_PYTHON_INSTALLER -ErrorAction Stop
|
||||||
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")
|
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")
|
||||||
|
@ -60,23 +61,12 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
# Check if installed correctly
|
# Check if installed correctly
|
||||||
$version = cmd.exe /c '"python" --version 2>&1'
|
$version = cmd.exe /c '"python" --version 2>&1'
|
||||||
if ( $version -like '* is not recognized*' ) {
|
if ( $version -like '* is not recognized*' ) {
|
||||||
"Python is not found in PATH. Add it manually or reinstall python."
|
"Python is not found in PATH. If you just installed python you need to restart cmd.
|
||||||
|
Else, add it manually or reinstall python."
|
||||||
return
|
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 3 ..."
|
|
||||||
$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..."
|
"Upgrading pip..."
|
||||||
$output = cmd.exe /c 'python -m pip install --user --upgrade pip 2>&1'
|
$output = cmd.exe /c 'python -m pip install --user --upgrade pip 2>&1'
|
||||||
$output
|
$output
|
||||||
|
@ -84,8 +74,11 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
"Make sure pip module is installed and re-run this script."
|
"Make sure pip module is installed and re-run this script."
|
||||||
return
|
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
|
& 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"
|
$monkeyRequirements = Join-Path -Path $monkey_home -ChildPath $MONKEY_DIR | Join-Path -ChildPath "\requirements_windows.txt"
|
||||||
& python -m pip install --user -r $monkeyRequirements
|
& python -m pip install --user -r $monkeyRequirements
|
||||||
|
|
||||||
|
@ -115,7 +108,6 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
"Removing zip file"
|
"Removing zip file"
|
||||||
Remove-Item $TEMP_OPEN_SSL_ZIP
|
Remove-Item $TEMP_OPEN_SSL_ZIP
|
||||||
|
|
||||||
|
|
||||||
# Generate ssl certificate
|
# Generate ssl certificate
|
||||||
"Generating ssl certificate"
|
"Generating ssl certificate"
|
||||||
Push-Location -Path (Join-Path -Path $monkey_home -ChildPath $MONKEY_ISLAND_DIR)
|
Push-Location -Path (Join-Path -Path $monkey_home -ChildPath $MONKEY_ISLAND_DIR)
|
||||||
|
@ -167,19 +159,6 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
$binDir = (Join-Path -Path $monkey_home -ChildPath $MONKEY_DIR | Join-Path -ChildPath "\bin")
|
$binDir = (Join-Path -Path $monkey_home -ChildPath $MONKEY_DIR | Join-Path -ChildPath "\bin")
|
||||||
New-Item -ItemType directory -path $binaries -ErrorAction SilentlyContinue
|
New-Item -ItemType directory -path $binaries -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
# Download upx
|
|
||||||
if(!(Test-Path -Path (Join-Path -Path $binDir -ChildPath "upx.exe") )){
|
|
||||||
"Downloading upx ..."
|
|
||||||
$webClient.DownloadFile($UPX_URL, $TEMP_UPX_ZIP)
|
|
||||||
"Unzipping upx"
|
|
||||||
Expand-Archive $TEMP_UPX_ZIP -DestinationPath $binDir -ErrorAction SilentlyContinue
|
|
||||||
Move-Item -Path (Join-Path -Path $binDir -ChildPath $UPX_FOLDER | Join-Path -ChildPath "upx.exe") -Destination $binDir
|
|
||||||
# Remove unnecessary files
|
|
||||||
Remove-Item -Recurse -Force (Join-Path -Path $binDir -ChildPath $UPX_FOLDER)
|
|
||||||
"Removing zip file"
|
|
||||||
Remove-Item $TEMP_UPX_ZIP
|
|
||||||
}
|
|
||||||
|
|
||||||
# Download mimikatz binaries
|
# Download mimikatz binaries
|
||||||
$mk32_path = Join-Path -Path $binDir -ChildPath $MK32_DLL
|
$mk32_path = Join-Path -Path $binDir -ChildPath $MK32_DLL
|
||||||
if(!(Test-Path -Path $mk32_path )){
|
if(!(Test-Path -Path $mk32_path )){
|
||||||
|
|
|
@ -67,17 +67,11 @@ def process_datas(orig_datas):
|
||||||
|
|
||||||
|
|
||||||
def get_binaries():
|
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()
|
binaries += get_sc_binaries()
|
||||||
return binaries
|
return binaries
|
||||||
|
|
||||||
|
|
||||||
def get_windows_only_binaries():
|
|
||||||
binaries = []
|
|
||||||
binaries += get_msvcr()
|
|
||||||
return binaries
|
|
||||||
|
|
||||||
|
|
||||||
def get_linux_only_binaries():
|
def get_linux_only_binaries():
|
||||||
binaries = []
|
binaries = []
|
||||||
binaries += get_traceroute_binaries()
|
binaries += get_traceroute_binaries()
|
||||||
|
@ -92,10 +86,6 @@ def get_sc_binaries():
|
||||||
return [(x, get_bin_file_path(x), 'BINARY') for x in ['sc_monkey_runner32.so', 'sc_monkey_runner64.so']]
|
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():
|
def get_traceroute_binaries():
|
||||||
traceroute_name = 'traceroute32' if is_32_bit() else 'traceroute64'
|
traceroute_name = 'traceroute32' if is_32_bit() else 'traceroute64'
|
||||||
return [(traceroute_name, get_bin_file_path(traceroute_name), 'BINARY')]
|
return [(traceroute_name, get_bin_file_path(traceroute_name), 'BINARY')]
|
||||||
|
|
Loading…
Reference in New Issue