In diesem Schritt werden wir die verschiedenen Ausgabeformate kennenlernen, die Nmap bietet. Ausgabeformate sind in der Cybersicherheit von entscheidender Bedeutung, da sie es uns ermöglichen, die Scanergebnisse je nach Bedarf auf verschiedene Weise darzustellen. Einige Formate sind beispielsweise für Menschen leicht lesbar, während andere für die maschinelle Verarbeitung ausgelegt sind, was bei der Integration mit anderen Tools nützlich ist.
Nmap unterstützt mehrere Ausgabeformate, jedes mit seinen eigenen einzigartigen Eigenschaften und Anwendungsfällen:
- Normale Ausgabe (Standard): Dies ist ein für Menschen lesbares Format. Es stellt die Scanergebnisse so dar, dass wir sie auf einen Blick verstehen können, was es ideal für eine schnelle manuelle Analyse macht.
- XML-Ausgabe (
-oX
): XML steht für Extensible Markup Language (erweiterbare Auszeichnungssprache). Es ist ein strukturiertes Format, d. h. die Daten sind hierarchisch organisiert. Dies erleichtert es Programmen und Skripten, die Daten zu verarbeiten, und es wird häufig bei der Integration von Nmap mit anderen Sicherheitstools verwendet.
- Grep-fähige Ausgabe (
-oG
): Dies ist ein zeilenbasiertes Format. Es ist so konzipiert, dass es leicht mit Unix-Tools wie grep, awk und cut verarbeitet werden kann. Dieses Format ist nützlich, wenn Sie schnell bestimmte Informationen aus den Scanergebnissen extrahieren möchten.
- Script Kiddie-Ausgabe (
-oS
): Dieses Format ähnelt der normalen Ausgabe, enthält jedoch ASCII-Art. Es wird jedoch in praktischen Szenarien selten verwendet.
- Alle Formate (
-oA
): Mit dieser Option können Sie die Scanergebnisse gleichzeitig in normalem, XML- und grep-fähigem Format speichern. Es ist eine bequeme Möglichkeit, alle Arten von Ausgaben auf einmal zur Verfügung zu haben.
Lassen Sie uns diese Formate erkunden, indem wir erneut Ihren lokalen Webserver scannen.
XML, oder Extensible Markup Language, ist ein strukturiertes Format, das weit verbreitet für die Datenspeicherung und -austausch verwendet wird. Seine hierarchische Struktur erleichtert es Programmen, die Daten zu verarbeiten, weshalb es häufig für die Integration mit anderen Sicherheitstools verwendet wird.
-
Führen Sie einen Nmap-Scan aus und speichern Sie die Ausgabe im XML-Format:
nmap -p 8080 localhost -oX /home/labex/project/scan_results.xml
In diesem Befehl gibt -p 8080
an, dass wir Port 8080 scannen, localhost
ist das Ziel, das wir scannen (unser lokaler Rechner), und -oX
sagt Nmap, die Ausgabe im XML-Format in den angegebenen Dateipfad zu speichern.
-
Zeigen Sie die XML-Ausgabe an:
cat /home/labex/project/scan_results.xml
Der Befehl cat
wird verwendet, um den Inhalt einer Datei anzuzeigen. Wenn Sie diesen Befehl ausführen, sehen Sie eine XML-formatierte Ausgabe, die in etwa so aussieht (abgekürzt):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE nmaprun>
<nmaprun scanner="nmap" args="nmap -p 8080 localhost -oX /home/labex/project/scan_results.xml" ...>
<scaninfo type="connect" protocol="tcp" .../>
<verbose level="0"/>
<debugging level="0"/>
<host>
<status state="up" reason="conn - refused" reason_ttl="0"/>
<address addr="127.0.0.1" addrtype="ipv4"/>
<hostnames>
<hostname name="localhost" type="user"/>
<hostname name="localhost" type="PTR"/>
</hostnames>
<ports>
<port protocol="tcp" portid="8080">
<state state="open" reason="syn - ack" reason_ttl="0"/>
<service name="http - proxy" method="table" conf="3"/>
</port>
</ports>
<times srtt="97" rttvar="5000" to="100000"/>
</host>
<runstats>...</runstats>
</nmaprun>
-
Das XML-Format enthält detaillierte Informationen, die in einer hierarchischen Struktur organisiert sind. Lassen Sie uns die spezifischen Portinformationen extrahieren:
grep -A5 "<port " /home/labex/project/scan_results.xml > /home/labex/project/port_details.txt
Der Befehl grep
wird verwendet, um ein bestimmtes Muster in einer Datei zu suchen. -A5
bedeutet, dass 5 Zeilen nach der Zeile angezeigt werden, die dem Muster entspricht. Wir suchen nach Zeilen, die <port
enthalten, in der XML-Datei und speichern die Ergebnisse in einer neuen Datei namens port_details.txt
.
-
Zeigen Sie die extrahierten Portdetails an:
cat /home/labex/project/port_details.txt
Wenn Sie diesen Befehl ausführen, wird Ihnen der Portinformationsabschnitt aus der XML angezeigt.
Die grep-fähige Ausgabe ist speziell für die einfache Verarbeitung mit Tools wie grep, awk und cut konzipiert. Diese Unix-Tools sind sehr leistungsstark für die Textverarbeitung und können uns helfen, schnell die benötigten Informationen aus den Scanergebnissen zu extrahieren.
-
Führen Sie einen Nmap-Scan aus und speichern Sie die Ausgabe im grep-fähigen Format:
nmap -p 8080 localhost -oG /home/labex/project/scan_results.grep
Hier sagt -oG
Nmap, die Ausgabe im grep-fähigen Format in die angegebene Datei zu speichern.
-
Zeigen Sie die grep-fähige Ausgabe an:
cat /home/labex/project/scan_results.grep
Die Ausgabe wird in etwa so aussehen:
## Nmap 7.80 scan initiated Wed Nov 8 12:40:00 2023 as: nmap -p 8080 localhost -oG /home/labex/project/scan_results.grep
Host: 127.0.0.1 (localhost) Status: Up
Host: 127.0.0.1 (localhost) Ports: 8080/open/tcp//http - proxy///
## Nmap done at Wed Nov 8 12:40:00 2023 -- 1 IP address (1 host up) scanned in 0.05 seconds
-
Das grep-fähige Format stellt alle Hostinformationen in einer einzigen Zeile dar, was es einfach macht, es mit Textverarbeitungstools zu verwenden. Beispielsweise können Sie nur die Zeile extrahieren, die die Portinformationen enthält:
grep "Ports:" /home/labex/project/scan_results.grep > /home/labex/project/ports_info.txt
Dieser Befehl sucht nach Zeilen, die das Wort "Ports:" enthalten, in der grep-fähigen Ausgabedatei und speichert die übereinstimmende Zeile in einer neuen Datei namens ports_info.txt
.
-
Zeigen Sie die extrahierten Portinformationen an:
cat /home/labex/project/ports_info.txt
Nmap bietet die bequeme Option, die Ausgabe gleichzeitig in mehreren Formaten zu speichern, indem Sie die -oA
-Option verwenden. Dies kann Ihnen Zeit sparen, wenn Sie verschiedene Arten von Ausgaben für verschiedene Zwecke benötigen.
-
Führen Sie einen Nmap-Scan aus und speichern Sie die Ausgabe in allen Formaten:
nmap -p 8080 localhost -oA /home/labex/project/all_formats
Dieser Befehl scannt Port 8080 auf dem lokalen Rechner und speichert die Ergebnisse in normalem, XML- und grep-fähigem Format.
-
Überprüfen Sie die erstellten Dateien:
ls -la /home/labex/project/all_formats.*
Der Befehl ls -la
listet alle Dateien in einem Verzeichnis mit detaillierten Informationen auf. Wenn Sie diesen Befehl ausführen, sollten Sie drei Dateien sehen:
all_formats.nmap
(normale Ausgabe)
all_formats.xml
(XML-Ausgabe)
all_formats.gnmap
(grep-fähige Ausgabe)
Sie verstehen nun die verschiedenen Ausgabeformate, die Nmap bietet, und wie Sie sie verwenden können. Jedes Format hat seine eigenen Vorteile:
- Die normale Ausgabe ist für Menschen leicht lesbar.
- Die XML-Ausgabe ist strukturiert für die maschinelle Verarbeitung und die Integration mit anderen Tools.
- Die grep-fähige Ausgabe ist für eine schnelle Analyse mit Unix-Textverarbeitungstools konzipiert.
Im nächsten Schritt werden Sie lernen, wie Sie diese Ausgaben detaillierter analysieren können.