SSLSCAN(1)
π sslscan β the manual, but make it make sense
okay bestie, welcome to the sslscan page from your General Commands Manual (yes that's the manual name, we're fancy here) β¨
πΈ NAME
sslscan β a fast SSL/TLS scanner π¦
β¨ SYNOPSIS
sslscan [options] [host:port | host]
π DESCRIPTION
so basically sslscan goes and queries SSL/TLS services (think HTTPS, obviously) and then reports back on all the juicy stuff: protocol versions, cipher suites, key exchanges, signature algorithms, and the certificates in use π The whole point is helping you understand which of those parameters are weak from a security standpoint β like, vibe check the server, but for crypto π₯ It can also dump results into an XML file so external programs can gobble them up easily.
The terminal output is colour-coded, and here's the legend, no cap:
- Red Background β NULL ciphers (no encryption at all π) or anonymous ciphers (no verification of peer)
- Red β ciphers and algorithms with demonstrated vulnerabilities, or ones that are generally considered untrusted π
- Yellow β ciphers and algorithms with known weaknesses, or that are still too new to be widely trusted, but that are not generally considered exploitable (even by the standards of TLS vulnerabilities). like, side-eye but not panic π«Ά
- Green β ciphers and algorithms aligned with current recommended best practices π slay
π OPTIONS
--helpβ shows a summary of the options--targets=<file>β a file containing a list of hosts to check. Hosts can be supplied with ports (i.e.host:port). One target per line π--sni-name=<name>β use a different hostname for SNI--ipv4,-4β force IPv4 DNS resolution. Default is to try IPv4, and if that fails then fall back to IPv6--ipv6,-6β force IPv6 DNS resolution. Default is to try IPv4, and if that fails then fall back to IPv6--show-certificateβ display certificate information--show-certificatesβ display the full certificate chain βοΈ--no-check-certificateβ don't flag certificates signed with weak algorithms (MD5 and SHA-1) or short (<2048 bit) RSA keys--show-client-casβ show a list of CAs that the server allows for client authentication. Will be blank for IIS/Schannel servers (iykyk)--show-ciphersβ show a complete list of ciphers supported bysslscan--show-cipher-idsβ print the hexadecimal cipher IDs--iana-namesβ use IANA/RFC cipher names rather than OpenSSL ones--show-timesβ show the time taken for each handshake in milliseconds. β οΈ note that only a single request is made with each cipher, and that the size of the ClientHello is not constant, so this should not be used for proper benchmarking or performance testing. You might want to also use--no-cipher-detailsto make the output a bit clearer--ssl2β only check if SSLv2 is enabled (yes, the ancient one π)--ssl3β only check if SSLv3 is enabled--tls10β only check TLS 1.0 ciphers--tls11β only check TLS 1.1 ciphers--tls12β only check TLS 1.2 ciphers--tls13β only check TLS 1.3 ciphers--tlsallβ only check TLS ciphers (versions 1.0, 1.1, 1.2, and 1.3) π--ocspβ display OCSP status--pk=<file>β a file containing the private key, or a PKCS#12 file containing a private key/certificate pair (as produced by MSIE and Netscape)--pkpass=<password>β the password for the private key or PKCS#12 file π--certs=<file>β a file containing PEM/ASN1 formatted client certificates--no-ciphersuitesβ do not scan for supported ciphersuites--no-fallbackβ do not check for TLS Fallback Signaling Cipher Suite Value (fallback)--no-renegotiationβ do not check for secure TLS renegotiation--no-compressionβ do not check for TLS compression (CRIME)--no-heartbleedβ do not check for OpenSSL Heartbleed (CVE-2014-0160) π©Έ iconic CVE, terrible bug--no-groupsβ do not enumerate key exchange groups--all-groupsβ enumerate key exchange groups for all supported TLS versions, not just the highest among TLS 1.0, 1.1, and 1.2. Use when auditing servers that may have different group policies per protocol version π--show-sigsβ enumerate signature algorithms--starttls-ftpβ STARTTLS setup for FTP--starttls-imapβ STARTTLS setup for IMAP--starttls-ircβ STARTTLS setup for IRC--starttls-ldapβ STARTTLS setup for LDAP--starttls-pop3β STARTTLS setup for POP3--starttls-smtpβ STARTTLS setup for SMTP--starttls-mysqlβ STARTTLS setup for MySQL--starttls-xmppβ STARTTLS setup for XMPP--starttls-psqlβ STARTTLS setup for PostgreSQL--xmpp-serverβ perform a server-to-server XMPP connection. Try this if--starttls-xmppis failing π«--rdpβ send RDP preamble before starting scan--bugsβ enables workarounds for SSL bugs--timeout=<sec>β set socket timeout. Useful for hosts that fail to respond to ciphers they don't understand. Default is3sβ°--connect-timeout=<sec>β set initial connection timeout. Useful for hosts that are slow to respond to the initialconnect(). Default is75sπ’--sleep=<msec>β pause between connections. Useful on STARTTLS SMTP services, or anything else that's performing rate limiting. Default is disabled π΄--xml=<file>β output results to an XML file.-can be used to mean stdout π--versionβ show version of program--verboseβ display verbose output--no-cipher-detailsβ hide NIST EC curve name and EDH/RSA key length--no-colourβ disable coloured output (if your terminal is doing too much π )
π¦ EXAMPLES
Scan a local HTTPS server:
sslscan localhost
sslscan 127.0.0.1
sslscan 127.0.0.1:443
sslscan [::1]
sslscan [::1]:443
look at you go, scanning your own localhost like a responsible little icon π
π§ AUTHOR
sslscan was originally written by Ian Ventura-Whiting <fizz@titania.co.uk>. sslscan was extended by Jacob Appelbaum <jacob@appelbaum.net>. sslscan was extended by rbsec <robin@rbsec.net>. This manual page was originally written by Marvin Stark <marv@der-marv.de>.
okay that's the whole thing bestie, go forth and scan responsibly πβ¨π
sign-off time: this page came from the General Commands Manual, dated March 19, 2020 β so if the crypto landscape moved since then, that's between you and the calendar π¦ no cap, stay safe out there π«Ά
π¦ where this page comes from
- arch rolling: sslscan 2.2.3-1 Β· GPL-3.0-or-later
- nixpkgs unstable: sslscan 2.2.3
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms