
Erweiterte Schwachstellenscans mit Nmap NSE
Vulscan ist ein Modul, das nmap zu einem Schwachstellenscanner erweitert. Die nmap-Option -sV ermöglicht die Versionserkennung pro Dienst, die verwendet wird, um potenzielle Schwachstellen basierend auf dem identifizierten Produkt zu ermitteln. Die Daten werden in einer offline Version von VulDB nachgeschlagen.
Bitte installieren Sie die Dateien in den folgenden Ordner Ihrer Nmap-Installation:
Nmap\scripts\vulscan\*
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 minimalen Befehl ausführen, um einen einfachen Schwachstellenscan zu starten:
nmap -sV --script=vulscan/vulscan.nse www.example.com
Derzeit sind die folgenden vorinstallierten 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 mit der folgenden Struktur erstellt werden:
<id>;<title>
Führen Sie vulscan einfach wie gewohnt aus, indem Sie auf eine der mitgelieferten Datenbanken verweisen. Teilen Sie gerne Ihre eigene Datenbank und Verbindung zu Schwachstellen mit mir, um sie zum offiziellen Repository hinzuzufügen.
Die Schwachstellendatenbanken werden regelmäßig aktualisiert und zusammengestellt. Um die neuesten veröffentlichten Schwachstellen zu unterstützen, halten Sie Ihre lokalen Schwachstellendatenbanken auf dem neuesten Stand.
Um die Datenbanken automatisch zu aktualisieren, setzen Sie einfach die Ausführungsberechtigungen für die Datei update.sh 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 in der Lage war, die Softwareversion zu identifizieren, und die Schwachstellendatenbank solche Details bereitstellt, werden auch diese Daten abgeglichen.
Das Deaktivieren dieser Funktion kann zu Fehlalarmen führen, aber auch falsch negative Ergebnisse eliminieren und die Leistung geringfügig steigern. 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 Nmap-Versionserkennung und die Einträge in der Schwachstellendatenbank. Einige Datenbanken liefern keine eindeutigen Versionsinformationen, was zu vielen Fehlalarmen führen kann (wie bei Apache-Servern zu sehen).
Das Skript versucht, nur die besten Übereinstimmungen zu identifizieren. Wenn keine positive Übereinstimmung gefunden werden konnte, wird die bestmögliche Übereinstimmung (die ein Fehlalarm sein könnte) angezeigt.
Wenn Sie alle Übereinstimmungen anzeigen möchten, was viele Fehlalarme verursachen kann, 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 Ergebnisse der Versionserkennung 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 zeilenweise ausgegeben. Das Standardlayout dafü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 erzwingen, indem Sie das folgende Argument verwenden (einige Beispiele):
--script-args vulscanoutput='{link}\n{title}\n\n'
--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 wird mit einer URL und einem Link geliefert, der während des Scans verwendet wird und als {link} in der angepassten Berichtsvorlage abgerufen werden kann. Um benutzerdefinierte Datenbanklinks zu verwenden, verwenden Sie das folgende Argument:
--script-args "vulscandblink=http://example.org/{id}"
Beachten Sie, dass diese Art der abgeleiteten Schwachstellensuche stark von der Zuverlässigkeit der Versionserkennung von Nmap, der Anzahl der dokumentierten Schwachstellen und der Genauigkeit des Mustervergleichs abhängt. Das Vorhandensein potenzieller Schwachstellen wird nicht durch zusätzliches Scannen oder Ausnutzungstechniken verifiziert.