This is a new release of our tool designed to assess TLS clients security (certificates validation, protocols and ciphers support): v0.8.1.
The corresponding packages for various Ubuntu versions are prepared in ppa:gremwell/qsslcaudit
. Packaging for Kali is handled by Kali maintainers.
The single feature has been added: support of assessing clients vulnerable to CVE-2020-0601 (the way Windows CryptoAPI (Crypt32.dll) validates Elliptic Curve Cryptography (ECC) certificates
).
Please note that testing a client for such issue is not straightforward. It requires understanding on what is being tested as well as making some preparation. More on qsslcaudit
usage is in README.
Consider the following example which demonstrates successful traffic interception against vulnerable Windows build:
$ sudo qsslcaudit -l 0.0.0.0 -p 443 --selected-tests 29 --user-ca-cert ./USERTrustECCCertificationAuthority.crt --user-cn example.com preparing selected tests... SSL library used: OpenSSL 1.0.2u 20 Dec 2019 running test #29: test for trusting certificate signed by private key with custom curve listening on 0.0.0.0:443 connection from: 127.0.0.1:52454 SSL connection established received data: GET / HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-BE Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362 Accept-Encoding: gzip, deflate, br Host: example.com Connection: Keep-Alive disconnected report: test failed, client accepted fake certificate, data was intercepted test finished tests results summary table: +----|------------------------------------|------------|-----------------------------+ | ## | Test Name | Result | Comment | +----|------------------------------------|------------|-----------------------------+ | 29 | CVE-2020-0601 ECC cert trust | FAILED !!! | mitm possible | +----|------------------------------------|------------|-----------------------------+ most likely all connections were established by the same client the first connection details: source host: 127.0.0.1 dtls?: false ssl errors: ssl conn established?: true intercepted data: GET / HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-BE Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362 Accept-Encoding: gzip, deflate, br Host: example.com Connection: Keep-Alive received data, bytes: 722 transmitted data, bytes: 1698 protocol: TLSv1.2 accepted ciphers: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:TLS_RSA_WITH_AES_256_GCM_SHA384:TLS_RSA_WITH_AES_128_GCM_SHA256:TLS_RSA_WITH_AES_256_CBC_SHA256:TLS_RSA_WITH_AES_128_CBC_SHA256:TLS_RSA_WITH_AES_256_CBC_SHA:TLS_RSA_WITH_AES_128_CBC_SHA:TLS_RSA_WITH_3DES_EDE_CBC_SHA SNI: example.com ALPN: h2, http/1.1 qsslcaudit version: 0.7.1-snapshot