PowerShell – Could not create SSL/TLS secure channel

В рамках плотного знакомства пришлось столкнуться с необходисмостью запуска Mimikatz в пямяти исследуемого сервера, без запуска утилиты на диск.

Как оказалось, со стороны исследуемого сервера был открыт только 443 (SSL) порт. Подготовка web сервера с самоподписанным SSL сертификатом сложности не представляет, но вот загрузка и выполенение PowerShell скриптов с такого сервера вызвали некоторые сложности.

А конкретно –

The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

Товарищ гугль подсказал замечательную функцию, код которой приведен ниже –



function Ignore-SelfSignedCerts
{
try
{
Write-Host "Adding TrustAllCertsPolicy type." -ForegroundColor White
Add-Type -TypeDefinition @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy
{
public bool CheckValidationResult(
ServicePoint srvPoint, X509Certificate certificate,
WebRequest request, int certificateProblem)
{
return true;
}
}
"@
Write-Host "TrustAllCertsPolicy type added." -ForegroundColor White
}
catch
{
Write-Host $_ -ForegroundColor "Yellow"
}
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
}
Ignore-SelfSignedCerts;

Уважаеме коллеги, предлагаю выпить чашку кофе за автора этой замечетальной функции :).