Netzwerk-Scanning mit Nmap

NmapBeginner
Jetzt üben

Einführung

In diesem Lab lernen Sie den Umgang mit Nmap, einem leistungsstarken Open-Source-Tool für das Netzwerk-Scanning, das weltweit von Sicherheitsexperten eingesetzt wird. Nmap hilft dabei, aktive Hosts, offene Ports und laufende Dienste innerhalb eines Netzwerks zu identifizieren, was eine unverzichtbare Transparenz für Sicherheitsbewertungen schafft.

Sie sammeln praktische Erfahrungen bei der Durchführung grundlegender Nmap-Scans, der Interpretation von Scan-Ergebnissen und dem Verständnis verschiedener Scanning-Techniken. Diese Fähigkeiten sind fundamental für die Netzwerksicherheitsanalyse. Dabei legen wir großen Wert auf ethische Scanning-Praktiken, die ausschließlich in autorisierten Netzwerken durchgeführt werden dürfen.

Nmap installieren

Bevor wir mit der Erkundung von Netzwerken beginnen können, müssen wir uns mit dem richtigen Werkzeug ausstatten. Nmap (Network Mapper) ist ein kostenloses Open-Source-Dienstprogramm, das Netzwerkadministratoren und Sicherheitsexperten dabei hilft, Geräte in einem Netzwerk zu entdecken und verfügbare Dienste zu identifizieren. In diesem Schritt installieren wir Nmap auf Ihrem System.

  1. Öffnen Sie zuerst das Terminal. Im Terminal werden wir alle unsere Nmap-Befehle ausführen. Auf Linux-Systemen wie unserer Lab-Umgebung ist das Terminal der primäre Weg, um mit Netzwerk-Tools zu interagieren. Suchen und öffnen Sie auf Ihrem Desktop das Xfce Terminal.
Xfce Terminal Fenster geöffnet

Hinweis: Nutzer der kostenlosen Version haben keinen Internetzugang, daher ist Nmap in der Lab-Umgebung bereits vorinstalliert. Sie können direkt zu Punkt 4 der Liste springen (überprüfen, ob Nmap installiert ist). Upgrade auf Pro, um die Installation von Nmap selbst zu üben.

Nur für Pro-Nutzer
  1. Sobald das Terminal geöffnet ist, müssen wir die Paketlisten aktualisieren. Dies ist ein wichtiger erster Schritt, da er sicherstellt, dass unser System die neuesten verfügbaren Softwareversionen kennt. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:
sudo apt-get update

sudo steht für „superuser do“ und verleiht uns Administratorrechte, die oft für die Installation von Software benötigt werden.

  1. Da unsere Paketlisten nun auf dem neuesten Stand sind, installieren wir Nmap. Der folgende Befehl lädt Nmap zusammen mit allen erforderlichen Abhängigkeiten herunter und installiert es:
sudo apt-get install nmap -y

Das Flag -y bestätigt automatisch alle Installationsabfragen mit „Ja“, was nützlich ist, wenn man Skripte ausführt oder sicher ist, dass man fortfahren möchte.

  1. Nach Abschluss der Installation sollten wir überprüfen, ob Nmap korrekt installiert wurde. Die Überprüfung der Version dient zwei Zwecken: Sie bestätigt, dass die Installation funktioniert hat, und zeigt uns, welche Version wir verwenden. Geben Sie ein:
nmap --version

Sie sollten eine Ausgabe ähnlich dieser sehen:

Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.6 openssl-3.0.2 nmap-libssh2-1.8.2 libz-1.2.11 libpcre-8.39 libpcap-1.10.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select

Die Versionsnummer kann abweichen, da Nmap regelmäßig mit neuen Funktionen und Verbesserungen aktualisiert wird.

Herzlichen Glückwunsch! Sie haben Nmap nun installiert und einsatzbereit. Betrachten Sie Nmap als eine leistungsstarke Taschenlampe, mit der Sie sehen können, was in Ihrem Netzwerk passiert. Es kann Ihnen zeigen, welche Geräte verbunden sind, welche Dienste sie ausführen und sogar, welche Betriebssysteme sie verwenden. Diese Funktionen machen Nmap zu einem unverzichtbaren Werkzeug sowohl für die Netzwerkadministration als auch für Sicherheitstests.

Wenn Sie die vollen Funktionen von Nmap erkunden möchten, können Sie man nmap im Terminal eingeben, um die Handbuchseite anzuzeigen. Diese Dokumentation enthält alle fortgeschrittenen Optionen und Funktionen. Lassen Sie sich nicht überwältigen – wir beginnen in diesem Lab mit den Grundlagen und bauen Ihr Wissen Schritt für Schritt auf.

IP-Adressen verstehen

Bevor wir mit dem Scannen von Netzwerken beginnen, ist es entscheidend, IP-Adressen zu verstehen. Stellen Sie sich eine IP-Adresse wie eine Hausanschrift für Ihren Computer im Netzwerk vor. Genau wie die Post Ihre Adresse benötigt, um Briefe zuzustellen, benötigen andere Geräte im Netzwerk Ihre IP-Adresse, um mit Ihrem Computer zu kommunizieren.

  1. Eine IP-Adresse ist eine eindeutige Kennung für ein Gerät in einem Netzwerk. Sie sieht normalerweise aus wie eine Reihe von Zahlen, die durch Punkte getrennt sind, zum Beispiel 192.168.1.1. Diese Zahlen reichen von 0 bis 255, und jedes Segment repräsentiert einen Teil der Netzwerkhierarchie. Der erste Teil identifiziert das Netzwerk selbst, während die hinteren Teile spezifische Geräte identifizieren.
graph LR A[Internet] --- B[Router 192.168.1.1] B --- C[PC 192.168.1.10] B --- D[Laptop 192.168.1.11] B --- E[Smartphone 192.168.1.12] B --- F[Smart TV 192.168.1.13] style A fill:#f9f,stroke:#333,stroke-width:4px style B fill:#bbf,stroke:#333,stroke-width:2px style C fill:#dfd,stroke:#333,stroke-width:2px style D fill:#dfd,stroke:#333,stroke-width:2px style E fill:#dfd,stroke:#333,stroke-width:2px style F fill:#dfd,stroke:#333,stroke-width:2px
  1. Um Ihre eigene IP-Adresse zu finden, verwenden wir einen Befehl, der Informationen zu den Netzwerkschnittstellen anzeigt. Dies ist wichtig, da wir unsere eigene Adresse kennen müssen, bevor wir andere Geräte im Netzwerk scannen können. Geben Sie diesen Befehl ein:
ip addr show | grep inet

Lassen Sie uns das Schritt für Schritt aufschlüsseln:

  • ip addr show zeigt detaillierte Informationen über alle Netzwerkschnittstellen auf Ihrem System an.
  • Das Symbol | (Pipe genannt) nimmt die Ausgabe des ersten Befehls und leitet sie an den nächsten Befehl weiter.
  • grep inet filtert die Ausgabe, sodass nur Zeilen angezeigt werden, die „inet“ enthalten, was die IP-Adressen in einem leicht lesbaren Format einschließt.

Sie werden eine Ausgabe ähnlich dieser sehen:

inet 127.0.0.1/8 scope host lo
inet 172.19.0.3/16 brd 172.19.255.255 scope global eth1

Die Zahlen nach dem Schrägstrich (wie /8 und /16) verwenden die CIDR-Notation (Classless Inter-Domain Routing). Diese Notation gibt an, wie viele Bits der IP-Adresse für den Netzwerkteil im Vergleich zum Geräteteil verwendet werden. Zum Beispiel bedeutet /16, dass die ersten 16 Bits (die ersten beiden Zahlen) das Netzwerk identifizieren, während die verbleibenden Bits einzelnen Geräten zugewiesen werden können.

  1. In dieser Ausgabe sehen Sie mehrere IP-Adressen. Hier ist ihre praktische Bedeutung:

    • 127.0.0.1 wird als „Loopback“- oder „Localhost“-Adresse bezeichnet. Diese spezielle Adresse verweist immer auf Ihren eigenen Computer zurück und wird verwendet, wenn ein Programm mit sich selbst kommunizieren muss.
    • 172.19.0.3 ist die tatsächliche Netzwerkadresse Ihres Rechners. Dies ist die Adresse, die andere Geräte verwenden würden, um Daten an Ihren Computer zu senden, vergleichbar mit Ihrer Straßenadresse.
  2. Notieren Sie sich die IP-Adresse, die nicht 127.0.0.1 ist (in diesem Fall 172.19.0.3). Wir werden diese echte Netzwerkadresse in unseren Scanning-Übungen verwenden.

Diese CIDR-Notation ist wichtig, um zu verstehen, welche Geräte sich in Ihrem lokalen Netzwerk befinden und welche in entfernten Netzwerken.

Vielleicht bemerken Sie auch Adressen, die mit „fe80::“ beginnen – dies sind IPv6-Adressen, die neuere Version der IP-Adressierung, die IPv4 ersetzen soll. Während IPv6 immer wichtiger wird, verwenden die meisten lokalen Netzwerke primär noch IPv4-Adressen wie die, die wir hier untersuchen. Für unsere Zwecke beim Netzwerk-Scanning konzentrieren wir uns auf IPv4-Adressen, da diese in lokalen Netzwerkumgebungen gebräuchlicher sind.

Einen Basis-Nmap-Scan durchführen

Da wir nun IP-Adressen verstehen und Nmap installiert haben, führen wir unseren ersten Netzwerk-Scan durch. Dieser erste Scan richtet sich gegen Ihren eigenen Rechner. Das ist der sicherste Weg, um die Grundfunktionen von Nmap zu erlernen, bevor man andere Systeme scannt.

  1. Zuerst verwenden wir die IP-Adresse, die Sie im vorherigen Schritt identifiziert haben. Der grundlegende Nmap-Scan-Befehl benötigt lediglich die Ziel-IP-Adresse. Führen Sie den folgenden Befehl aus und ersetzen Sie <YOUR_IP> durch die gefundene IP-Adresse:
nmap <YOUR_IP>

Wenn Ihre IP zum Beispiel 172.19.0.3 lautet, würden Sie Folgendes ausführen:

nmap 172.19.0.3

Dieser Befehl weist Nmap an, die 1000 gebräuchlichsten TCP-Ports auf der angegebenen IP-Adresse zu scannen. TCP-Ports sind wie nummerierte Türen an einem Computer, über die Netzwerkdienste kommunizieren können.

  1. Nach der Ausführung des Befehls führt Nmap den Scan durch und zeigt die Ergebnisse an. Hier ist eine typische Ausgabe:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-24 10:00 CST
Nmap scan report for 336efdcfb776.external (172.19.0.3)
Host is up (0.00017s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds
  1. Lassen Sie uns jeden Teil dieser Ausgabe untersuchen, um zu verstehen, was Nmap uns mitteilt:

    • „Starting Nmap 7.80“: Zeigt die verwendete Nmap-Version an. Verschiedene Versionen können leicht unterschiedliche Funktionen oder Ausgabeformate haben.
    • „Host is up (0.00017s latency)“: Bestätigt, dass der Zielrechner auf Netzwerkanfragen geantwortet hat, wobei die Antwortzeit in Sekunden angegeben wird.
    • „Not shown: 998 closed ports“: Gibt an, dass von den 1000 gescannten Standard-Ports 998 keine Verbindungen akzeptiert haben.
    • „PORT STATE SERVICE“: Listet alle während des Scans gefundenen offenen Ports auf:
      • 22/tcp open ssh: Port 22 ist offen und führt SSH (Secure Shell) aus, das für die sichere Fernverwaltung von Systemen verwendet wird.
      • 3001/tcp open nessus: Port 3001 ist offen und führt einen Dienst aus, den Nmap als Nessus (einen Schwachstellenscanner) identifiziert.
  2. Dieser Basis-Scan liefert wertvolle Informationen über die auf Ihrem Rechner laufenden Netzwerkdienste. In der Praxis helfen diese Informationen bei:

    • Sicherheits-Audits, indem unnötige offene Ports identifiziert werden, die ausgenutzt werden könnten.
    • Netzwerk-Fehlersuche, indem überprüft wird, ob erwartete Dienste verfügbar sind.
    • Erkennung von Vorfällen, indem unerwartete Dienste aufgespürt werden, die auf eine Kompromittierung hindeuten könnten.

Denken Sie daran, dass Netzwerk-Scanning nur auf Systemen durchgeführt werden sollte, die Ihnen gehören oder für die Sie eine ausdrückliche Erlaubnis zum Testen haben. Das Scannen von Netzwerken ohne Genehmigung kann gegen Gesetze und ethische Richtlinien verstoßen. Holen Sie immer die entsprechenden Genehmigungen ein, bevor Sie ein System scannen, das nicht Ihr eigenes ist.

Einen Scan zur Betriebssystem-Erkennung durchführen

Nmap beschränkt sich nicht nur darauf, offene Ports zu finden. Es kann auch versuchen, das Betriebssystem des Zielrechners zu bestimmen. Diese Funktion ist für Netzwerkadministratoren und Sicherheitsexperten unglaublich nützlich, da verschiedene Betriebssysteme unterschiedliche Schwachstellen aufweisen und unterschiedliche Sicherheitsmaßnahmen erfordern.

Bevor wir beginnen, ist es wichtig zu verstehen, wie die Betriebssystem-Erkennung (OS Detection) funktioniert. Nmap sendet speziell präparierte Pakete an das Ziel und analysiert die Antworten. Jedes Betriebssystem reagiert geringfügig anders auf Netzwerkanfragen und hinterlässt so einen einzigartigen „Fingerabdruck“, den Nmap mit seiner Datenbank abgleichen kann.

  1. Um einen Scan zur Betriebssystem-Erkennung durchzuführen, verwenden wir das Flag -O (beachten Sie, dass dies ein Großbuchstabe „O“ ist, nicht die Zahl Null). Dieser Scan erfordert Root-Rechte, da er Rohpakete auf niedriger Ebene senden und analysieren muss. Wir verwenden sudo, um diesen Befehl auszuführen. Ersetzen Sie <YOUR_IP> durch die tatsächliche IP-Adresse, die Sie scannen möchten:
sudo nmap -O <YOUR_IP>

Wenn Ihre Ziel-IP zum Beispiel 172.19.0.3 ist, würden Sie Folgendes ausführen:

sudo nmap -O 172.19.0.3
  1. Die Ausgabe zeigt wie beim Basis-Scan die offenen Ports an, enthält nun aber zusätzlich Informationen zum Betriebssystem. So könnte ein typisches Ergebnis aussehen:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-24 10:01 CST
Nmap scan report for 336efdcfb776.external (172.19.0.3)
Host is up (0.000035s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6.32
OS details: Linux 2.6.32
Network Distance: 0 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.76 seconds
  1. Lassen Sie uns die neuen betriebssystembezogenen Informationen im Detail betrachten:

    • „Device type: general purpose“: Dies sagt uns, dass es sich bei dem Gerät um ein Standard-Computersystem handelt und nicht um spezialisierte Hardware wie einen Router oder ein IoT-Gerät.
    • „Running: Linux 2.6.X“: Die primäre Vermutung von Nmap bezüglich der Betriebssystemfamilie und -version.
    • „OS CPE“: Dies ist eine standardisierte Kennung (Common Platform Enumeration) für die Betriebssystemversion.
    • „OS details“: Eine spezifischere Versionsidentifizierung basierend auf dem Fingerabdruck-Abgleich.
  2. Das Verständnis dieser Informationen ist für mehrere praktische Anwendungen wertvoll:

    • Sicherheitsexperten nutzen sie, um potenziell anfällige Systeme zu identifizieren, die Patches benötigen.
    • Netzwerkadministratoren führen damit genaue Inventarlisten ihrer Netzwerkgeräte.
    • Systemadministratoren überprüfen, ob auf den Maschinen die erwarteten Betriebssysteme laufen.

Beachten Sie, dass die Betriebssystem-Erkennung nicht perfekt ist. Mehrere Faktoren können die Genauigkeit beeinflussen:

  • Firewalls können die Pakete blockieren, die Nmap zur Erkennung verwendet.
  • Eigene Kernel-Konfigurationen entsprechen möglicherweise nicht den Standard-Fingerabdrücken.
  • Virtuelle Maschinen zeigen manchmal das Host-Betriebssystem anstelle des Gast-Betriebssystems an.

Für beste Ergebnisse sollten Sie die Betriebssystem-Erkennung mit anderen Nmap-Techniken kombinieren und die Ergebnisse nach Möglichkeit über mehrere Methoden verifizieren.

Einen Netzwerkbereich scannen

In realen Netzwerkumgebungen müssen Sie oft mehrere IP-Adressen oder ganze Netzwerksegmente scannen. Dies ist nützlich, um alle Geräte in einem Netzwerk zu entdecken – eine häufige Aufgabe für Netzwerkadministratoren und Sicherheitsexperten. Versuchen wir, einen Netzwerkbereich zu scannen.

  1. Wir beginnen mit dem Scannen eines kleinen Bereichs von IP-Adressen. Dies ist oft der erste Schritt bei der Erkundung eines unbekannten Netzwerks. Der folgende Befehl scannt 20 aufeinanderfolgende IP-Adressen beginnend bei 172.19.0.1:
nmap 172.19.0.1-20

Dieser Befehl weist Nmap an, nacheinander jede IP-Adresse von 172.19.0.1 bis 172.19.0.20 zu prüfen und zu melden, welche Hosts online sind und welche Ports offen stehen.

  1. Scannen wir nun ein ganzes Subnetz unter Verwendung der CIDR-Notation, die wir zuvor gelernt haben. Das Suffix /24 bedeutet, dass wir alle 256 Adressen im letzten Oktett scannen. Führen Sie den folgenden Befehl aus und ersetzen Sie <YOUR_NETWORK> durch Ihre Netzwerkadresse:
nmap YOUR_NETWORK /24

Zum Beispiel:

nmap 172.19.0.0/24

Dieser Scan prüft jede IP von 172.19.0.0 bis 172.19.0.255. Die /24-Notation entspricht einer Subnetzmaske von 255.255.255.0.

  1. Um die Scan-Ergebnisse für die Dokumentation oder spätere Analyse zu speichern, verwenden wir das Flag -oN (Output Normal). Dies erstellt eine für Menschen lesbare Textdatei:
nmap 172.19.0.0/24 -oN network_scan.txt

Der Befehl führt denselben Subnetz-Scan durch, schreibt die Ausgabe jedoch in die Datei network_scan.txt in Ihrem aktuellen Arbeitsverzeichnis.

  1. Lassen Sie uns den Inhalt der Ausgabedatei untersuchen:
cat network_scan.txt

Die Ausgabe zeigt detaillierte Informationen zu jedem antwortenden Host. Hier ist ein Beispiel für das, was Sie sehen könnten:

## Nmap 7.80 scan initiated Fri Sep 27 15:45:29 2024 as: nmap -oN network_scan.txt 172.19.0.0/24
Nmap scan report for iZrj9gvdh5xn02z8rmsn9mZ (172.19.0.1)
Host is up (0.00045s latency).
Not shown: 997 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
111/tcp   open  rpcbind
10010/tcp open  rxapi

Nmap scan report for node_openresty.external (172.19.0.2)
Host is up (0.00047s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
80/tcp open  http

Nmap scan report for 36cff415ddd9.external (172.19.0.3)
Host is up (0.00045s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

Nmap scan report for 041bf22f47a1.external (172.19.0.4)
Host is up (0.00050s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

Nmap scan report for 2299e8eff7e5.external (172.19.0.5)
Host is up (0.00048s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

## Nmap done at Fri Sep 27 15:45:32 2024 -- 256 IP addresses (5 hosts up) scanned in 3.25 seconds
  1. Lassen Sie uns die Ausgabe aufschlüsseln:

    • Der Scan deckte alle 256 möglichen Adressen im Bereich 172.19.0.0/24 ab.
    • Nur 5 Hosts antworteten auf den Scan (waren „up“).
    • Jeder Host-Eintrag zeigt:
      • Hostname (falls auflösbar) und IP-Adresse.
      • Messung der Netzwerklatenz.
      • Anzahl der geprüften Ports (geschlossene Ports werden standardmäßig nicht einzeln aufgelistet).
      • Liste der offenen Ports mit den zugehörigen Diensten.
  2. Praktische Anwendungen des Netzwerk-Scannings umfassen:

    • Netzwerkinventarisierung: Führen einer genauen Liste aller Geräte in Ihrem Netzwerk.
    • Sicherheits-Auditing: Identifizierung nicht autorisierter Geräte oder Dienste.
    • Fehlerbehebung: Überprüfung der Netzwerkkonnektivität und Dienstverfügbarkeit.
    • Schwachstellenbewertung: Entdeckung potenziell anfälliger Dienste.

Denken Sie daran, dass Netzwerk-Scanning nur in Netzwerken durchgeführt werden sollte, die Ihnen gehören oder für die Sie eine ausdrückliche Genehmigung haben. Unbefugtes Scannen kann gegen Datenschutzgesetze oder Nutzungsrichtlinien verstoßen.

Zusammenfassung

In diesem Lab haben Sie die Grundlagen des Netzwerk-Scannings mit Nmap erlernt, einem leistungsstarken Werkzeug für die Netzwerkaufklärung und Sicherheitsbewertung. Sie haben geübt, Nmap zu installieren, Basis-Scans zur Identifizierung offener Ports und Dienste durchzuführen, Betriebssysteme zu erkennen und Netzwerkbereiche zu erkunden, während Sie die Scan-Ergebnisse effektiv verwalten.

Diese Fähigkeiten bilden das Fundament für fortgeschrittene Praktiken der Netzwerksicherheit. Denken Sie immer daran, eine ordnungsgemäße Autorisierung einzuholen, bevor Sie Netzwerke scannen, und nutzen Sie dieses Wissen verantwortungsbewusst, um die digitale Sicherheit zu erhöhen.