O-Saft: OWASP SSL advanced forensic tool

OWASP O-Saft

OWASP SSL advanced forensic tool / OWASP SSL audit for testers

O-Saft is easy to use tool to show information about SSL certificate and tests the SSL connection according to given list of ciphers and various SSL configurations.

It’s designed to be used by penetration testers, security auditors or server administrators. The idea is to show the important information or the special checks with a simple call of the tool. However, it provides a wide range of options so that it can be used for comprehensive and special checks by experienced people.

O-Saft is a command-line tool, so it can be used offline and in closed environments. There is also a GUI based on Tcl/Tk. However, it can simply be turned into an online CGI-tool.

In a Nutshell:

  • show SSL connection details
  • show certificate details
  • check for supported ciphers
  • check for ciphers provided in your own libssl.so and libcrypt.so
  • check for ciphers without any dependency to a library (+cipherall)
  • checks the server’s priority for ciphers (+cipherall)
  • check for special HTTP(S) support (like SNI, HSTS, certificate pinning, SSTP)
  • check for vulnerabilities (BEAST, CRIME, DROWN, FREAK, Heartbleed, Lucky 13, POODLE, RC4 Bias, Sweet32 …)
  • check the length of Diffie Hellman Parameters by the cipher (+cipherall needs option ‘–experimental’)
  • may check for a single attribute
  • may check multiple targets at once
  • can be scripted (headless or as CGI)
  • should work on any platform (just needs perl, openssl optional)
  • can be used in CI / CD environments
  • output format can be customized
  • various trace and debug options to hunt unusual connection problems
  • supports STARTTLS for various protocols
    • SMTP, POP3, IMAP, LDAP, RDP, XMPP, IRC (experimental) …
    • customize your own STARTTLS sequence using –starttls=’CUSTOM’, see help for ‘–starttls_phase1..5’ and ‘–starttls_error1..3’
    • without using openssl
    • slows down to prevent blockades of requests due to too much connections (supported for some protocols like SMTP)
  • Proxy is supported (besides commands using openssl)
  • check of STARTTLS/SMTP for all servers of a MX Resource Record (e.g. checkAllCiphers –mx your.tld:25 –starttls=smtp)
  • checkAllCiphers.pl and ‘+cipherall’ support DTLS for ‘–experimental’ use (if records are not fragmented)

UNIQUE FEATURES

  • working in closed environments, i.e. without internet connection
  • checking availability of ciphers independent of installed library
  • checking for all possible ciphers (up to 65535 per SSL protocol)
  • needs just perl without modules for checking ciphers and protocols
  • mainly same results on all platforms

 

Tutorial

Copyright (C) 2013 Achim Hoffmann

Source: https://github.com/OWASP/