From 43adea072882629b67b1c43551d6eaa2b29cb08b Mon Sep 17 00:00:00 2001 From: Daniel Goldberg Date: Sat, 4 Jan 2020 23:27:19 +0200 Subject: [PATCH] Ran format on PS1 script --- deployment_scripts/deploy_windows.ps1 | 221 +++++++++++++++----------- 1 file changed, 124 insertions(+), 97 deletions(-) diff --git a/deployment_scripts/deploy_windows.ps1 b/deployment_scripts/deploy_windows.ps1 index dd602e199..fb0f29305 100644 --- a/deployment_scripts/deploy_windows.ps1 +++ b/deployment_scripts/deploy_windows.ps1 @@ -1,77 +1,92 @@ -function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName, [String] $branch = "develop"){ - # Import the config variables - . ./config.ps1 - "Config variables from config.ps1 imported" - - # 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 '') ){ - $monkey_home = Join-Path -Path $monkey_home -ChildPath $MONKEY_FOLDER_NAME - } +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 + . ./config.ps1 + "Config variables from config.ps1 imported" + + # 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 '')) + { + $monkey_home = Join-Path -Path $monkey_home -ChildPath $MONKEY_FOLDER_NAME + } + + # We check if git is installed try { - git | Out-Null -ErrorAction Stop - "Git requirement satisfied" + git | Out-Null -ErrorAction Stop + "Git requirement satisfied" } catch [System.Management.Automation.CommandNotFoundException] { - "Please install git before running this script or add it to path and restart cmd" - return + "Please install git before running this script or add it to path and restart cmd" + return } # Download the monkey $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") - 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." - } elseif ($output -like "fatal:*"){ - "Error while cloning monkey from the repository:" - $output - return - } else { - "Monkey cloned from the repository" - # Create bin directory - New-Item -ItemType directory -path $binDir - "Bin directory added" + 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." + } + elseif ($output -like "fatal:*") + { + "Error while cloning monkey from the repository:" + $output + return + } + else + { + "Monkey cloned from the repository" + # Create bin directory + New-Item -ItemType directory -path $binDir + "Bin directory added" } # We check if python is installed try { - $version = cmd.exe /c '"python" --version 2>&1' - if ( $version -like 'Python 3.*' ) { - "Python 3.* was found, installing dependencies" - } else { - throw System.Management.Automation.CommandNotFoundException - } + $version = cmd.exe /c '"python" --version 2>&1' + if ($version -like 'Python 3.*') + { + "Python 3.* was found, installing dependencies" + } + else + { + throw System.Management.Automation.CommandNotFoundException + } } catch [System.Management.Automation.CommandNotFoundException] { - "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") + ";" + [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 to PATH and relaunch the script." - return - } + "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") + ";" + [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 to PATH and relaunch the script." + return + } } "Upgrading pip..." $output = cmd.exe /c 'python -m pip install --user --upgrade pip 2>&1' $output - if ( $output -like '*No module named pip*' ) { - "Make sure pip module is installed and re-run this script." - return + if ($output -like '*No module named pip*') + { + "Make sure pip module is installed and re-run this script." + return } "Installing python packages for island" @@ -83,28 +98,32 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName, $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") + 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 ..." - $webClient.DownloadFile($MONGODB_URL, $TEMP_MONGODB_ZIP) - "Unzipping mongodb" - Expand-Archive $TEMP_MONGODB_ZIP -DestinationPath $binDir - # Get unzipped folder's 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 - 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") - "Moving extracted files" - Move-Item -Path (Join-Path -Path $binDir -ChildPath $mongodb_folder | Join-Path -ChildPath "\bin\*") -Destination (Join-Path -Path $binDir -ChildPath "mongodb\") - "Removing zip file" - Remove-Item $TEMP_MONGODB_ZIP - Remove-Item (Join-Path -Path $binDir -ChildPath $mongodb_folder) -Recurse + if (!(Test-Path -Path (Join-Path -Path $binDir -ChildPath "mongodb"))) + { + "Downloading mongodb ..." + $webClient.DownloadFile($MONGODB_URL, $TEMP_MONGODB_ZIP) + "Unzipping mongodb" + Expand-Archive $TEMP_MONGODB_ZIP -DestinationPath $binDir + # Get unzipped folder's 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 + 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") + "Moving extracted files" + Move-Item -Path (Join-Path -Path $binDir -ChildPath $mongodb_folder | Join-Path -ChildPath "\bin\*") -Destination (Join-Path -Path $binDir -ChildPath "mongodb\") + "Removing zip file" + Remove-Item $TEMP_MONGODB_ZIP + Remove-Item (Join-Path -Path $binDir -ChildPath $mongodb_folder) -Recurse } # Download OpenSSL @@ -140,20 +159,23 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName, "Installing npm" try { - $version = cmd.exe /c '"npm" --version 2>&1' - if ( $version -like "*is not recognized*"){ - throw System.Management.Automation.CommandNotFoundException - } else { - "Npm already installed" - } + $version = cmd.exe /c '"npm" --version 2>&1' + if ($version -like "*is not recognized*") + { + throw System.Management.Automation.CommandNotFoundException + } + else + { + "Npm already installed" + } } catch [System.Management.Automation.CommandNotFoundException] { - "Downloading npm ..." - $webClient.DownloadFile($NPM_URL, $TEMP_NPM_INSTALLER) - Start-Process -Wait $TEMP_NPM_INSTALLER - $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") - Remove-Item $TEMP_NPM_INSTALLER + "Downloading npm ..." + $webClient.DownloadFile($NPM_URL, $TEMP_NPM_INSTALLER) + Start-Process -Wait $TEMP_NPM_INSTALLER + $env: Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + Remove-Item $TEMP_NPM_INSTALLER } "Updating npm" @@ -173,41 +195,46 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName, 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 + 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 $mk32_path = Join-Path -Path $binDir -ChildPath $MK32_DLL - if(!(Test-Path -Path $mk32_path )){ - "Downloading mimikatz 32 binary" - $webClient.DownloadFile($MK32_DLL_URL, $mk32_path) + if (!(Test-Path -Path $mk32_path)) + { + "Downloading mimikatz 32 binary" + $webClient.DownloadFile($MK32_DLL_URL, $mk32_path) } $mk64_path = Join-Path -Path $binDir -ChildPath $MK64_DLL - if(!(Test-Path -Path $mk64_path )){ - "Downloading mimikatz 64 binary" - $webClient.DownloadFile($MK64_DLL_URL, $mk64_path) + if (!(Test-Path -Path $mk64_path)) + { + "Downloading mimikatz 64 binary" + $webClient.DownloadFile($MK64_DLL_URL, $mk64_path) } # Download sambacry binaries $samba_path = Join-Path -Path $monkey_home -ChildPath $SAMBA_BINARIES_DIR $samba32_path = Join-Path -Path $samba_path -ChildPath $SAMBA_32_BINARY_NAME - if(!(Test-Path -Path $samba32_path )){ - "Downloading sambacry 32 binary" - $webClient.DownloadFile($SAMBA_32_BINARY_URL, $samba32_path) + if (!(Test-Path -Path $samba32_path)) + { + "Downloading sambacry 32 binary" + $webClient.DownloadFile($SAMBA_32_BINARY_URL, $samba32_path) } $samba64_path = Join-Path -Path $samba_path -ChildPath $SAMBA_64_BINARY_NAME - if(!(Test-Path -Path $samba64_path )){ - "Downloading sambacry 64 binary" - $webClient.DownloadFile($SAMBA_64_BINARY_URL, $samba64_path) + if (!(Test-Path -Path $samba64_path)) + { + "Downloading sambacry 64 binary" + $webClient.DownloadFile($SAMBA_64_BINARY_URL, $samba64_path) } "Script finished"