Debian/Ubuntu SSL Vulnerability Scanning für SSL Server


Nachdem ich gestern die SSH Server nach unsicheren Key geprüft hatte, waren heute unsere SSL Server dran. Eine passende Blacklist liefert Ubuntu beim Update im Packet openssl-blacklist mit samt dem passenden Tool mit dem man ein lokales Keyfile überprüfen kann. Leider hilft das nicht bei entfernten Servern weiter und so habe ich heute ein bisschen ge-scripted um auch Remote checken zu können.

Das Script macht nichts anderes als mit dem openssl Kommando s_client das SSL Certificate zu extrahieren und dann dem Modulus des Pub-Key mittels SHA1 Checksumme gegen die Blacklist aus dem openssl-blacklist Paket zu prüfen:

Hier das Script:

#!/bin/sh

host=$1

if [ x$host != x ] ; then
    (echo HEAD / HTTP/1.0\\n\\n; sleep 1) | openssl s_client -connect $host:443 -showcerts > $host.log 2>&1
    if ! grep -q "BEGIN CERT" $host.log ; then
        echo $host does not present a SSL Certificate
    else
        fp=`openssl x509 -noout -modulus -in $host.log | sha1sum | cut -c 21-40`
        cn=`openssl x509 -noout -subject -in $host.log | sed -e 's/^.*CN=\([^/]*\).*$/\1/'`
    if grep -q $fp /usr/share/openssl-blacklist/blacklist* ; then
        echo $host \($cn\) blacklisted!
    else
        echo $host \($cn\) OK
    fi
fi
else
    echo usage: $0 [hostname/ip]
fi
debian 

Siehe auch