SSL/TLS
Audit SSL/TLS
SSLscan
# Single Host
sslscan --show-ciphers --no-failed --show-certificate --xml=sslscan_out.xml <HOST>:<PORT>
# Target List
sslscan --show-ciphers --no-failed --show-certificate --xml=sslscan_out.xml --targets=targetlist.txtOne-line command:
# Single Host
domain=domain.com; sslscan --show-ciphers --no-failed --show-certificate --xml="${domain}".sslscan_out.xml "${domain}":<PORT>TLSled
tlssled <IP> <PORT>SSLyze
sslyze --http_headers --json_out=File.json <HOST>:<PORT>One-line command:
domain=domain.com; sslyze --http_headers --regular --json_out="${domain}".json "${domain}":<PORT>SSLlabs
https://www.ssllabs.com/ssltest/index.html
SSLscan
# Single Host
sslscan --show-ciphers --no-failed --show-certificate --xml=sslscan_out.xml <HOST>:<PORT>
# Target List
sslscan --show-ciphers --no-failed --show-certificate --xml=sslscan_out.xml --targets=targetlist.txtTLSed
tlssled <IP> <PORT>SSLyze
sslyze --http_headers --regular --json_out=File.json <HOST>:<PORT>SSLlabs
https://www.ssllabs.com/ssltest/index.html
HSTS
Nmap
nmap -p 443 --script http-hsts-verify -Pn -v -oA http-hsts-verify <TARGET>Curl
curl -s -D- <TARGET> | grep -i strict-transport-security:cURL should show a header like Strict-Transport-Security: max-age=15552000; preload
POODLE
Nmap
nmap -sV --version-light --script ssl-poodle -p <PORT> <TARGET>SSL DROWN
nmap -sV --script=sslv2-drown -p 443 -Pn -v -oA sslv2-drown <TARGET>HEARTBLEED
nmap --script ssl-heartbleed --script-args vulns.showall -oA ssl-heartbleed -Pn -p <PORT> -sV <TARGET>Get Certificates
nmap -sV -sC -vv -oA certificadosSSL -Pn -p 443 <target>openssl s_client -connect <TARGET>:<PORT>echo | openssl s_client --showcerts --connect <target:port> | awk 'BEGIN{p="openssl x509 -noout -text"} {print |p} /-----END/{close(p)}'Enum Ciphers
nmap --script ssl-enum-ciphers -Pn -p 443 -oA ssl-enum-ciphers <TARGET>SSLv2
nmap -v -sV -sC <TARGET>sslyze --sslv2 --json_out=output.json HOST:PORTSweet32
nmap --script ssl-enum-ciphers -p <PORT> <TARGET>
sudo docker pull adamcaudill/yawast && sudo docker run --rm adamcaudill/yawast scan https://www.domain.com --tdessessioncount
Had the server actually been vulnerable, this message would have been displayed:
[V] TLS Session Request Limit: Connection not terminated after 10,000 requests; possibly vulnerable to SWEET32
Last updated