Invoke-WebRequestVerifyHash: add explicit support for TLS 1.1 & 1.2 #30
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Some .NET versions used even by modern PowerShell on Win10 do not enable by default TLS 1.2 (nor 1.1) which makes requests to strict servers fail.
For example to this URL:
https://github.com/redcanaryco/atomic-red-team/blob/14905c7a1618fe52bc0973ac575949ab4f9c2d67/atomics/T1003/T1003.yaml#L103
The error appears to be caused by a wrong hash but actually if we look closely it's due to "The underlying connection was closed: An unexpected error occurred on a send." which happens when TLS negotiation fails.
Many online examples set TLS 1.2 explicitly but that prevents future evolution so I used this StackOverflow answer to just add 1.1 and 1.2 and it works fine now!