Vulscan ist ein Modul, das nmap zu einem Schwachstellenscanner erweitert. Die nmap-Option -sV ermöglicht die Versionserkennung pro Dienst, die zur Ermittlung potenzieller Fehler anhand des identifizierten Produkts verwendet wird. Die Daten werden in einer Offline-Version von VulDB nachgeschlagen.
Bitte installieren Sie die Dateien im folgenden Ordner Ihrer Nmap-Installation:
Nmapscriptsvulscan*
Klonen Sie das GitHub-Repository wie folgt:
git clone https://github.com/scipag/vulscan scipag_vulscan
ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
Sie müssen den folgenden Minimalbefehl ausführen, um einen einfachen Schwachstellenscan zu starten:
nmap -sV --script=vulscan/vulscan.nse www.example.com
Derzeit sind folgende vorinstallierte Datenbanken verfügbar:
Sie können vulscan mit dem folgenden Argument ausführen, um eine einzelne Datenbank zu verwenden:
--script-args vulscandb=your_own_database
Es ist auch möglich, eigene Datenbanken zu erstellen und zu referenzieren. Dazu muss eine Datenbankdatei erstellt werden, die folgende Struktur hat:
<id>;<title>
Führen Sie vulscan einfach so aus, wie Sie es tun würden, indem Sie auf eine der vorab bereitgestellten Datenbanken verweisen. Teilen Sie mir gerne Ihre eigene Datenbank und Schwachstellenverbindung mit, um sie dem offiziellen Repository hinzuzufügen.
Die Schwachstellendatenbanken werden regelmäßig aktualisiert und zusammengestellt. Um die neuesten offengelegten Schwachstellen zu unterstützen, halten Sie Ihre lokalen Schwachstellendatenbanken auf dem neuesten Stand.
Um die Datenbanken automatisch zu aktualisieren, legen Sie einfach Ausführungsberechtigungen für die Datei update.sh
fest und führen Sie sie aus:
chmod 744 update.sh
./update.sh
Wenn Sie Ihre Datenbanken manuell aktualisieren möchten, besuchen Sie die folgende Website und laden Sie diese Dateien herunter:
Kopieren Sie die Dateien in Ihren Vulscan-Ordner:
/vulscan/
Wenn die Versionserkennung die Softwareversion identifizieren konnte und die Schwachstellendatenbank solche Details bereitstellt, werden auch diese Daten abgeglichen.
Das Deaktivieren dieser Funktion führt möglicherweise zu falsch-positiven Ergebnissen, kann aber auch dazu führen, dass falsch-negative Ergebnisse vermieden werden und die Leistung leicht gesteigert wird. Wenn Sie den zusätzlichen Versionsabgleich deaktivieren möchten, verwenden Sie das folgende Argument:
--script-args vulscanversiondetection=0
Die Versionserkennung von Vulscan ist nur so gut wie die Versionserkennung von Nmap und die Einträge in der Schwachstellendatenbank. Einige Datenbanken stellen keine schlüssigen Versionsinformationen bereit, was zu vielen Fehlalarmen führen kann (wie bei Apache-Servern zu beobachten ist).
Das Skript versucht nur die besten Übereinstimmungen zu identifizieren. Wenn keine positive Übereinstimmung gefunden werden konnte, wird die bestmögliche Übereinstimmung (ggf. falsch positiv) angezeigt.
Wenn Sie alle Übereinstimmungen anzeigen möchten, was möglicherweise zu vielen Fehlalarmen führt, aber für weitere Untersuchungen nützlich sein könnte, verwenden Sie das folgende Argument:
--script-args vulscanshowall=1
Der interaktive Modus hilft Ihnen, die Versionserkennungsergebnisse für jeden Port zu überschreiben. Verwenden Sie das folgende Argument, um den interaktiven Modus zu aktivieren:
--script-args vulscaninteractive=1
Alle übereinstimmenden Ergebnisse werden einzeln gedruckt. Das Standardlayout hierfür ist:
[{id}] {title}n
Es ist möglich, eine andere vordefinierte Berichtsstruktur mit dem folgenden Argument zu verwenden:
--script-args vulscanoutput=details
--script-args vulscanoutput=listid
--script-args vulscanoutput=listlink
--script-args vulscanoutput=listtitle
Sie können Ihre eigene Berichtsstruktur durchsetzen, indem Sie das folgende Argument verwenden (einige Beispiele):
--script-args vulscanoutput='{link}n{title}nn'
--script-args vulscanoutput='ID: {id} - Title: {title} ({matches})n'
--script-args vulscanoutput='{id} | {product} | {version}n'
Unterstützt werden die folgenden Elemente für eine dynamische Berichtsvorlage:
Jede Standarddatenbank verfügt über eine URL und einen Link, die beim Scannen verwendet werden und auf die in der benutzerdefinierten Berichtsvorlage als {Link} zugegriffen werden kann. Um benutzerdefinierte Datenbankverknüpfungen zu verwenden, verwenden Sie das folgende Argument:
--script-args "vulscandblink=http://example.org/{id}"
Bedenken Sie, dass diese Art des abgeleiteten Schwachstellenscans stark von der Zuverlässigkeit der Versionserkennung von nmap, der Menge der dokumentierten Schwachstellen und der Genauigkeit des Mustervergleichs abhängt. Das Vorhandensein potenzieller Fehler wird nicht durch zusätzliche Scan- oder Ausnutzungstechniken überprüft.