
このリポジトリは、PowerShellにおける.NET SSL/TLS証明書検証を回避し、ハッキングを続行するための、迅速かつ粗雑な方法とスクリプトの武器庫として存在します。
#Invoke-SelfSignedWebRequest
情報セキュリティ業務では、HTTPS を C2 や標的ネットワーク内での移動手段として利用することは非常に便利なメカニズムです。さらに PowerShell は、オペレーターが動的な結果を達成するのに役立つ驚くべき生産性ツールです。当然の次の結論は、C2 チャネル (HTTPS) とエフェクトジェネレーター (PowerShell) を組み合わせることです。自己署名証明書をすぐに生成すれば、すべて順調に進むはずですよね? 残念ながら、Microsoft (そして拡張的には PowerShell) は、検証できない証明書で保護された SSL 接続を非常に嫌います。彼らは、恐ろしいレベルの ERROR メッセージを表示して、これらの接続を積極的に阻止しようとします。
このリポジトリは、それらのセキュリティ重視の機能を回避し、ハックを続行するための、手早く汚い方法とスクリプトのアーセナルとして存在します。
新しい方法を思いついたら随時追加するつもりです。Pull Request 歓迎!
##メソッド:
Invoke-SelfSignedWebRequest - 対象 URI の SSL 証明書をローカルの証明書ストアに読み込み、Invoke-WebRequest をラップします。安全でない WebRequest の呼び出し完了後に証明書を削除します。エイリアスは wget-ss です。
Disable-CertificateValidation - System.Net.ServicePointManager エンドポイントを介して SSL 証明書の検証を無効化します。ServerCertificateValidationCallback を手動で設定し、$true を返すようにします。これにより (New-Object System.Net.WebClient).DownloadFile() が自己署名 SSL ドメインに接続できるようになります。
Disable-NetSSLValidation - useUnsafeHeaderParsing を使用して、内部の .NET 設定を構成し SSL 証明書の検証を無効化します。
作者: Matthew Toussain (@0sm0s1z)
ライセンス: BSD 3-Clause