# Purpose: Installs the Caldera agent on the host Write-Host "Installing the Caldera agent..." $url="https://192.168.38.105:8888/file/render"; $ps_table = $PSVersionTable.PSVersion;If([double]$ps_table.Major -ge 6){iex (irm -Method Post -Uri $url -Headers @{"file"="54ndc47.ps1"} -SkipCertificateCheck);}else{[System.Net.ServicePointManager]::ServerCertificateValidationCallback={$True};$web=New-Object System.Net.WebClient;$web.Headers.Add("file","54ndc47.ps1");$resp=$web.UploadString("$url",'');iex($resp);} If (-not (Test-Path 'C:\Program Files\cagent\cagent.exe')) { # Add /etc/hosts entry Add-Content "c:\windows\system32\drivers\etc\hosts" " 192.168.38.105 logger" # Make the directory New-Item "c:\Program Files\cagent" -type directory # Install Visual Studio 2015 C++ Redistributable choco install -y vcredist2015 # Download cagent and start the service Write-Host "Downloading Caldera Agent (cagent.exe)" $cagentPath = "C:\Program Files\cagent\cagent.exe" $cagentConfPath = "C:\Program Files\cagent\conf.yml" # GitHub requires TLS 1.2 as of 2/1/2018 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 (New-Object System.Net.WebClient).DownloadFile('https://github.com/mitre/caldera-agent/releases/download/v0.1.0/cagent.exe', $cagentPath) # Copy hardocded Caldera config from the Vagrant resources folder Copy-Item "C:\vagrant\resources\caldera\conf.yml" $cagentConfPath -Force If (-not (Test-Path "$cagentConfPath" )) { Write-Host "Caldera Agent configuration failed. Unable to retrieve config from resources folder." } Start-Process -FilePath $cagentPath -ArgumentList '--startup', 'auto', 'install' -Wait Start-Process -FilePath $cagentPath -ArgumentList 'start' -Wait } Else { Write-Host "Caldera Agent is already installed. Moving on." } Start-Sleep 5 If ((Get-Service -name cagent).Status -ne "Running") { throw "Caldera Agent service not running" } Write-Host "Cagent installation complete!"