forked from p15670423/monkey
Ran format on PS1 script
This commit is contained in:
parent
3191b2d94e
commit
43adea0728
|
@ -1,16 +1,21 @@
|
||||||
function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName, [String] $branch = "develop"){
|
function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName, [String] $branch = "develop")
|
||||||
|
{
|
||||||
|
|
||||||
|
# Set variables for script execution
|
||||||
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||||
|
$webClient = New-Object System.Net.WebClient
|
||||||
|
|
||||||
|
|
||||||
# Import the config variables
|
# Import the config variables
|
||||||
. ./config.ps1
|
. ./config.ps1
|
||||||
"Config variables from config.ps1 imported"
|
"Config variables from config.ps1 imported"
|
||||||
|
|
||||||
# If we want monkey in current dir we need to create an empty folder for source files
|
# If we want monkey in current dir we need to create an empty folder for source files
|
||||||
if ( (Join-Path $monkey_home '') -eq (Join-Path (Get-Item -Path ".\").FullName '') ){
|
if ((Join-Path $monkey_home '') -eq (Join-Path (Get-Item -Path ".\").FullName ''))
|
||||||
|
{
|
||||||
$monkey_home = Join-Path -Path $monkey_home -ChildPath $MONKEY_FOLDER_NAME
|
$monkey_home = Join-Path -Path $monkey_home -ChildPath $MONKEY_FOLDER_NAME
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set variables for script execution
|
|
||||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
|
||||||
$webClient = New-Object System.Net.WebClient
|
|
||||||
|
|
||||||
# We check if git is installed
|
# We check if git is installed
|
||||||
try
|
try
|
||||||
|
@ -27,13 +32,18 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
# Download the monkey
|
# Download the monkey
|
||||||
$output = cmd.exe /c "git clone --single-branch -b $branch $MONKEY_GIT_URL $monkey_home 2>&1"
|
$output = cmd.exe /c "git clone --single-branch -b $branch $MONKEY_GIT_URL $monkey_home 2>&1"
|
||||||
$binDir = (Join-Path -Path $monkey_home -ChildPath $MONKEY_ISLAND_DIR | Join-Path -ChildPath "\bin")
|
$binDir = (Join-Path -Path $monkey_home -ChildPath $MONKEY_ISLAND_DIR | Join-Path -ChildPath "\bin")
|
||||||
if ( $output -like "*already exists and is not an empty directory.*"){
|
if ($output -like "*already exists and is not an empty directory.*")
|
||||||
|
{
|
||||||
"Assuming you already have the source directory. If not, make sure to set an empty directory as monkey's home directory."
|
"Assuming you already have the source directory. If not, make sure to set an empty directory as monkey's home directory."
|
||||||
} elseif ($output -like "fatal:*"){
|
}
|
||||||
|
elseif ($output -like "fatal:*")
|
||||||
|
{
|
||||||
"Error while cloning monkey from the repository:"
|
"Error while cloning monkey from the repository:"
|
||||||
$output
|
$output
|
||||||
return
|
return
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
"Monkey cloned from the repository"
|
"Monkey cloned from the repository"
|
||||||
# Create bin directory
|
# Create bin directory
|
||||||
New-Item -ItemType directory -path $binDir
|
New-Item -ItemType directory -path $binDir
|
||||||
|
@ -44,9 +54,12 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$version = cmd.exe /c '"python" --version 2>&1'
|
$version = cmd.exe /c '"python" --version 2>&1'
|
||||||
if ( $version -like 'Python 3.*' ) {
|
if ($version -like 'Python 3.*')
|
||||||
|
{
|
||||||
"Python 3.* was found, installing dependencies"
|
"Python 3.* was found, installing dependencies"
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
throw System.Management.Automation.CommandNotFoundException
|
throw System.Management.Automation.CommandNotFoundException
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,11 +69,12 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
"Select 'add to PATH' when installing"
|
"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") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
|
$env: Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
|
||||||
Remove-Item $TEMP_PYTHON_INSTALLER
|
Remove-Item $TEMP_PYTHON_INSTALLER
|
||||||
# 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 to PATH and relaunch the script."
|
"Python is not found in PATH. Add it to PATH and relaunch the script."
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -69,7 +83,8 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
"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
|
||||||
if ( $output -like '*No module named pip*' ) {
|
if ($output -like '*No module named pip*')
|
||||||
|
{
|
||||||
"Make sure pip module is installed and re-run this script."
|
"Make sure pip module is installed and re-run this script."
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -83,20 +98,24 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
|
|
||||||
$user_python_dir = cmd.exe /c 'py -m site --user-site'
|
$user_python_dir = cmd.exe /c 'py -m site --user-site'
|
||||||
$user_python_dir = Join-Path (Split-Path $user_python_dir) -ChildPath "\Scripts"
|
$user_python_dir = Join-Path (Split-Path $user_python_dir) -ChildPath "\Scripts"
|
||||||
if(!($ENV:PATH | Select-String -SimpleMatch $user_python_dir)){
|
if (!($ENV: PATH | Select-String -SimpleMatch $user_python_dir))
|
||||||
|
{
|
||||||
"Adding python scripts path to user's env"
|
"Adding python scripts path to user's env"
|
||||||
$env:Path += ";"+$user_python_dir
|
$env: Path += ";" + $user_python_dir
|
||||||
[Environment]::SetEnvironmentVariable("Path",$env:Path,"User")
|
[Environment]::SetEnvironmentVariable("Path", $env:Path, "User")
|
||||||
}
|
}
|
||||||
|
|
||||||
# Download mongodb
|
# Download mongodb
|
||||||
if(!(Test-Path -Path (Join-Path -Path $binDir -ChildPath "mongodb") )){
|
if (!(Test-Path -Path (Join-Path -Path $binDir -ChildPath "mongodb")))
|
||||||
|
{
|
||||||
"Downloading mongodb ..."
|
"Downloading mongodb ..."
|
||||||
$webClient.DownloadFile($MONGODB_URL, $TEMP_MONGODB_ZIP)
|
$webClient.DownloadFile($MONGODB_URL, $TEMP_MONGODB_ZIP)
|
||||||
"Unzipping mongodb"
|
"Unzipping mongodb"
|
||||||
Expand-Archive $TEMP_MONGODB_ZIP -DestinationPath $binDir
|
Expand-Archive $TEMP_MONGODB_ZIP -DestinationPath $binDir
|
||||||
# Get unzipped folder's name
|
# Get unzipped folder's name
|
||||||
$mongodb_folder = Get-ChildItem -Path $binDir | Where-Object -FilterScript {($_.Name -like "mongodb*")} | Select-Object -ExpandProperty Name
|
$mongodb_folder = Get-ChildItem -Path $binDir | Where-Object -FilterScript {
|
||||||
|
($_.Name -like "mongodb*")
|
||||||
|
} | Select-Object -ExpandProperty Name
|
||||||
# Move all files from extracted folder to mongodb folder
|
# Move all files from extracted folder to mongodb folder
|
||||||
New-Item -ItemType directory -Path (Join-Path -Path $binDir -ChildPath "mongodb")
|
New-Item -ItemType directory -Path (Join-Path -Path $binDir -ChildPath "mongodb")
|
||||||
New-Item -ItemType directory -Path (Join-Path -Path $monkey_home -ChildPath $MONKEY_ISLAND_DIR | Join-Path -ChildPath "db")
|
New-Item -ItemType directory -Path (Join-Path -Path $monkey_home -ChildPath $MONKEY_ISLAND_DIR | Join-Path -ChildPath "db")
|
||||||
|
@ -141,9 +160,12 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$version = cmd.exe /c '"npm" --version 2>&1'
|
$version = cmd.exe /c '"npm" --version 2>&1'
|
||||||
if ( $version -like "*is not recognized*"){
|
if ($version -like "*is not recognized*")
|
||||||
|
{
|
||||||
throw System.Management.Automation.CommandNotFoundException
|
throw System.Management.Automation.CommandNotFoundException
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
"Npm already installed"
|
"Npm already installed"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -152,7 +174,7 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
"Downloading npm ..."
|
"Downloading npm ..."
|
||||||
$webClient.DownloadFile($NPM_URL, $TEMP_NPM_INSTALLER)
|
$webClient.DownloadFile($NPM_URL, $TEMP_NPM_INSTALLER)
|
||||||
Start-Process -Wait $TEMP_NPM_INSTALLER
|
Start-Process -Wait $TEMP_NPM_INSTALLER
|
||||||
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")
|
$env: Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine")
|
||||||
Remove-Item $TEMP_NPM_INSTALLER
|
Remove-Item $TEMP_NPM_INSTALLER
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,7 +195,8 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
New-Item -ItemType directory -path $binaries -ErrorAction SilentlyContinue
|
New-Item -ItemType directory -path $binaries -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
# Download upx
|
# Download upx
|
||||||
if(!(Test-Path -Path (Join-Path -Path $binDir -ChildPath "upx.exe") )){
|
if (!(Test-Path -Path (Join-Path -Path $binDir -ChildPath "upx.exe")))
|
||||||
|
{
|
||||||
"Downloading upx ..."
|
"Downloading upx ..."
|
||||||
$webClient.DownloadFile($UPX_URL, $TEMP_UPX_ZIP)
|
$webClient.DownloadFile($UPX_URL, $TEMP_UPX_ZIP)
|
||||||
"Unzipping upx"
|
"Unzipping upx"
|
||||||
|
@ -187,12 +210,14 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
|
|
||||||
# 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))
|
||||||
|
{
|
||||||
"Downloading mimikatz 32 binary"
|
"Downloading mimikatz 32 binary"
|
||||||
$webClient.DownloadFile($MK32_DLL_URL, $mk32_path)
|
$webClient.DownloadFile($MK32_DLL_URL, $mk32_path)
|
||||||
}
|
}
|
||||||
$mk64_path = Join-Path -Path $binDir -ChildPath $MK64_DLL
|
$mk64_path = Join-Path -Path $binDir -ChildPath $MK64_DLL
|
||||||
if(!(Test-Path -Path $mk64_path )){
|
if (!(Test-Path -Path $mk64_path))
|
||||||
|
{
|
||||||
"Downloading mimikatz 64 binary"
|
"Downloading mimikatz 64 binary"
|
||||||
$webClient.DownloadFile($MK64_DLL_URL, $mk64_path)
|
$webClient.DownloadFile($MK64_DLL_URL, $mk64_path)
|
||||||
}
|
}
|
||||||
|
@ -200,12 +225,14 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
# Download sambacry binaries
|
# Download sambacry binaries
|
||||||
$samba_path = Join-Path -Path $monkey_home -ChildPath $SAMBA_BINARIES_DIR
|
$samba_path = Join-Path -Path $monkey_home -ChildPath $SAMBA_BINARIES_DIR
|
||||||
$samba32_path = Join-Path -Path $samba_path -ChildPath $SAMBA_32_BINARY_NAME
|
$samba32_path = Join-Path -Path $samba_path -ChildPath $SAMBA_32_BINARY_NAME
|
||||||
if(!(Test-Path -Path $samba32_path )){
|
if (!(Test-Path -Path $samba32_path))
|
||||||
|
{
|
||||||
"Downloading sambacry 32 binary"
|
"Downloading sambacry 32 binary"
|
||||||
$webClient.DownloadFile($SAMBA_32_BINARY_URL, $samba32_path)
|
$webClient.DownloadFile($SAMBA_32_BINARY_URL, $samba32_path)
|
||||||
}
|
}
|
||||||
$samba64_path = Join-Path -Path $samba_path -ChildPath $SAMBA_64_BINARY_NAME
|
$samba64_path = Join-Path -Path $samba_path -ChildPath $SAMBA_64_BINARY_NAME
|
||||||
if(!(Test-Path -Path $samba64_path )){
|
if (!(Test-Path -Path $samba64_path))
|
||||||
|
{
|
||||||
"Downloading sambacry 64 binary"
|
"Downloading sambacry 64 binary"
|
||||||
$webClient.DownloadFile($SAMBA_64_BINARY_URL, $samba64_path)
|
$webClient.DownloadFile($SAMBA_64_BINARY_URL, $samba64_path)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue