Wie kann ich Nmap-Ergebnisse nachträglich filtern oder durchsuchen?
- Grundsätzlicher Umgang mit Nmap-Ausgaben
- Filtern und Durchsuchen mit klassischen Werkzeugen
- Nutzung von XML-Ausgabe für strukturierte Filterung
- Interaktive Analyse mit Tools wie NSE- oder Zenmap
- Zusammenfassung und Empfehlung
Grundsätzlicher Umgang mit Nmap-Ausgaben
Nmap speichert die Scan-Ergebnisse normalerweise in Textdateien ab, entweder in einfachem Textformat oder in speziellen Formaten wie XML. Wenn du die Ergebnisse später filtern oder durchsuchen möchtest, ist es sinnvoll, die Ausgabe in einem strukturierten Format zu generieren, wie beispielsweise XML, da dies die automatisierte Verarbeitung erheblich vereinfacht. Dennoch lassen sich auch einfache Textdateien gut mit klassischen Linux-Kommandos durchsuchen und filtern.
Filtern und Durchsuchen mit klassischen Werkzeugen
Wenn deine Nmap-Ergebnisse in einer Textdatei wie scan.txt vorliegen, kannst du Standardwerkzeuge aus der Shell verwenden. Zum Beispiel ermöglicht grep das gezielte Suchen nach bestimmten Ports, IP-Adressen, Hostnamen oder Stichwörtern. Ein Beispiel, um nach offenen Ports zu suchen, wäre:
grep "open" scan.txtDieses Kommando zeigt dir alle Zeilen, in denen der Status open vorkommt. Weitere Tools wie awk, sed oder Kombinationen daraus erlauben komplexere Filterungen, etwa nur bestimmte Spalten auszugeben oder Zeilen nach mehreren Kriterien zu durchsuchen.
Nutzung von XML-Ausgabe für strukturierte Filterung
Nmap bietet mit dem Parameter -oX die Möglichkeit, die Scan-Ergebnisse im XML-Format zu speichern, zum Beispiel via nmap -oX scan.xml . Diese XML-Datei kann anschließend mit Werkzeugen wie xmllint, xmlstarlet oder Programmiersprachen mit XML-Unterstützung (Python, Perl etc.) gezielt durchsucht und gefiltert werden.
Ein praktisches Beispiel in der Shell ist die Verwendung von xmlstarlet, um beispielsweise alle offenen Ports aufzulisten:
xmlstarlet sel -t -m "//port " -v "concat(@portid, /, @protocol)" -n scan.xmlInteraktive Analyse mit Tools wie NSE- oder Zenmap
Wenn du häufig Nmap-Ergebnisse filtrieren oder visualisieren möchtest, kann ein grafisches Frontend wie Zenmap hilfreich sein. Dort kannst du nachträglich über die Oberfläche Hosts und Ports suchen oder filtern, ohne manuell die Dateien bearbeiten zu müssen. Für automatisiertes Filtern ist dieser Ansatz allerdings weniger flexibel als Skriptlösungen.
Zusammenfassung und Empfehlung
Die beste Vorgehensweise zum nachträglichen Filtern oder Durchsuchen von Nmap-Ergebnissen hängt davon ab, wie die Daten vorliegen und wie komplex die Filteranforderungen sind. Für einfache Suchen in Textdateien reichen Unix-Kommandos wie grep oder awk. Für komplexe, strukturierte Abfragen sind XML-Formate und XML-Werkzeuge vorzuziehen. Wenn du regelmäßig mit großen Nmap-Ergebnissen arbeitest, lohnt es sich, die Scans direkt im XML-Format zu speichern, um später effizient mit Skripten oder spezialisierten Tools arbeiten zu können.
Beachte außerdem, dass es diverse Bibliotheken und Skripte gibt, die die Verarbeitung von Nmap-XML-Dateien vereinfachen, beispielsweise mit Python (Libnmap) oder in anderen Programmiersprachen.
