Grundlegende Nmap-Scanning-Techniken lernen

NmapNmapBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie Nmap kennen, ein wichtiges Tool für die Netzwerkermittlung und Sicherheitsüberprüfung. Nmap wird von Netzwerkadministratoren und Sicherheitsexperten weit verbreitet eingesetzt. Es hilft, offene Ports zu identifizieren, laufende Dienste zu erkennen und potenzielle Netzwerkschwachstellen aufzudecken.

In diesem Lab lernen Sie auch grundlegende Nmap-Scantechniken. Das Verständnis von Netzwerkkonfigurationen durch Scannen ist eine grundlegende Fähigkeit in der Cybersicherheit. Am Ende werden Sie in der Lage sein, einfache Nmap-Scans auszuführen und deren Ausgabe zu interpretieren, was eine solide Grundlage für fortgeschrittene Netzwerksicherheitsaufgaben bildet.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/basic_syntax("Basic Command Syntax") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") wireshark/WiresharkGroup -.-> wireshark/interface("Interface Overview") subgraph Lab Skills nmap/installation -.-> lab-415929{{"Grundlegende Nmap-Scanning-Techniken lernen"}} nmap/basic_syntax -.-> lab-415929{{"Grundlegende Nmap-Scanning-Techniken lernen"}} nmap/port_scanning -.-> lab-415929{{"Grundlegende Nmap-Scanning-Techniken lernen"}} nmap/target_specification -.-> lab-415929{{"Grundlegende Nmap-Scanning-Techniken lernen"}} wireshark/interface -.-> lab-415929{{"Grundlegende Nmap-Scanning-Techniken lernen"}} end

Einrichten eines Webservers für das Scannen

In diesem Schritt werden wir einen einfachen Webserver mit Docker einrichten. Docker ist eine leistungsstarke Plattform, die es Ihnen ermöglicht, Anwendungen zusammen mit all ihren Abhängigkeiten in standardisierte Einheiten namens Container zu verpacken. Diese Container können einfach auf verschiedenen Systemen bereitgestellt und ausgeführt werden. Indem wir diesen Webserver einrichten, haben wir ein Ziel, das wir in den folgenden Schritten mit Nmap scannen können.

Öffnen Sie zunächst ein Terminalfenster. Das Terminal ist eine Befehlszeilenschnittstelle, in der Sie Befehle eingeben können, um mit Ihrem System zu interagieren. Sobald das Terminal geöffnet ist, müssen Sie in das Projektverzeichnis navigieren. Dieses Verzeichnis dient als Arbeitsbereich für dieses Lab.

Um in das Projektverzeichnis zu navigieren, verwenden Sie den Befehl cd. Der Befehl cd steht für "change directory" (Verzeichnis wechseln). Hier ist der Befehl, den Sie ausführen müssen:

cd /home/labex/project

2. Erstellen einer Dockerfile

Eine Dockerfile ist ein wesentlicher Bestandteil beim Erstellen von Docker - Images. Es ist ein Textdokument, das eine Reihe von Befehlen enthält, die Docker zum Erstellen eines Images verwendet. In diesem Fall werden wir eine Dockerfile für einen einfachen Webserver auf der Grundlage von Nginx erstellen, einem beliebten Webserver - Software.

Um eine neue Datei mit dem Namen Dockerfile zu erstellen, verwenden wir den Texteditor nano. nano ist ein einfacher und benutzerfreundlicher Texteditor, den Sie direkt im Terminal verwenden können. Führen Sie den folgenden Befehl aus:

nano Dockerfile

Nachdem Sie diesen Befehl ausgeführt haben, wird der nano - Editor geöffnet, und Sie können beginnen, Inhalt in die Dockerfile hinzuzufügen. Fügen Sie die folgenden Zeilen zur Datei hinzu:

## Use the nginx image as the base
FROM nginx

## Expose port 80
EXPOSE 80

Der Befehl FROM teilt Docker mit, dass das nginx - Image als Basis für unser neues Image verwendet werden soll. Der Befehl EXPOSE gibt an, dass der Container auf Port 80 lauschen wird.

Um die Datei zu speichern, drücken Sie Strg+O und dann Enter. Um den Editor zu verlassen, drücken Sie Strg+X.

3. Erstellen des Docker - Images

Jetzt, da unsere Dockerfile fertig ist, können wir das Docker - Image erstellen. Ein Image ist wie ein Bauplan, der alle erforderlichen Dateien und Konfigurationen enthält, die zum Ausführen einer Anwendung benötigt werden.

Um das Image zu erstellen, führen Sie den folgenden Befehl aus:

docker build -t cyber-seed-portal .

In diesem Befehl wird die Option -t verwendet, um das Image zu taggen. Wir taggen unser Image als "cyber - seed - portal". Der Punkt am Ende des Befehls teilt Docker mit, dass das aktuelle Verzeichnis als Build - Kontext verwendet werden soll.

Wenn Sie diesen Befehl ausführen, wird Docker den Build - Prozess starten, und die Ausgabe sieht in etwa so aus:

Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM nginx
latest: Pulling from library/nginx
a803e7c4b030: Pull complete
8b625c47d697: Pull complete
4d3239651a63: Pull complete
0f816efa513d: Pull complete
01d159b8db2f: Pull complete
5fb9a81470f3: Pull complete
Digest: sha256:32da30332506740a2f7c34d5dc70467b7dfe6c23451f6c66c84eeb3cdadab213
Status: Downloaded newer image for nginx:latest
 ---> 61395b4c586d
Step 2/2 : EXPOSE 80
 ---> Running in 1c2d5e2a8e7f
Removing intermediate container 1c2d5e2a8e7f
 ---> 7683abcf62b0
Successfully built 7683abcf62b0
Successfully tagged cyber-seed-portal:latest

4. Ausführen des Docker - Containers

Sobald das Image erstellt ist, können wir einen Container daraus erstellen und ausführen. Ein Container ist eine laufende Instanz eines Images.

Um einen Container auszuführen, verwenden Sie den folgenden Befehl:

docker run --name cyber-seed-server -d -p 8080:80 cyber-seed-portal

Lassen Sie uns diesen Befehl analysieren:

  • --name cyber-seed-server: Dies gibt dem Container den Namen "cyber - seed - server". Das Benennen des Containers erleichtert die Verwaltung und Identifizierung.
  • -d: Dies führt den Container im detached - Modus aus, was bedeutet, dass der Container im Hintergrund läuft und Sie weiterhin das Terminal für andere Aufgaben verwenden können.
  • -p 8080:80: Dies bildet Port 8080 Ihres Computers auf Port 80 des Containers ab. Wenn Sie also Port 8080 auf Ihrem Computer zugreifen, wird dies auf Port 80 innerhalb des Containers umgeleitet.
  • cyber-seed-portal: Dies gibt das Image an, auf dem der Container basieren soll.

Wenn Sie diesen Befehl ausführen, wird die Ausgabe eine Container - ID sein, etwa so:

3a7b1a23c3c5d17b3e4b3e5e6f7g8h9i

Sie haben nun erfolgreich einen Webserver in einem Docker - Container eingerichtet. Sie können auf diesen Server unter http://localhost:8080 zugreifen. Dieser Server wird das Ziel für Ihre Nmap - Scans in den nächsten Schritten sein.

Entdecken offener Ports mit Nmap

In diesem Schritt werden wir Nmap verwenden, um herauszufinden, welche Ports auf Ihrem lokalen Rechner geöffnet sind. Das Verständnis offener Ports ist eine grundlegende, aber entscheidende Fähigkeit in der Netzwerksicherheit. Ports sind wie Türen zu einem Computer im Netzwerk. Jeder Port kann von verschiedenen Diensten verwendet werden, und wenn man weiß, welche Ports geöffnet sind, kann man herausfinden, welche Dienste im Netzwerk zugänglich sind.

Nmap verstehen

Nmap, was für Network Mapper (Netzwerkermapper) steht, ist ein kostenloses und quelloffenes Tool. Es wird hauptsächlich für die Netzwerkermittlung und Sicherheitsüberprüfung verwendet. Stellen Sie sich vor, es sei ein Detektiv für Ihr Netzwerk. System- und Netzwerkadministratoren verwenden Nmap oft, um zu verfolgen, was sich in ihrem Netzwerk befindet, zu planen, wann Dienste aktualisiert werden sollen, und um zu prüfen, ob Hosts oder Dienste gestartet und laufen.

Suchen nach offenen Ports

Jetzt verwenden wir Nmap, um Ihren localhost (mit der IP - Adresse 127.0.0.1) auf offene Ports zu scannen. Die Option -p- in Nmap ist wie ein Befehl, alle möglichen Türen (Ports) auf Ihrem Computer zu überprüfen. Es gibt insgesamt 65535 TCP - Ports, und diese Option lässt Nmap alle davon prüfen.

Führen Sie den folgenden Befehl in Ihrem Terminal aus:

nmap -p- localhost

Dieser Befehl wird einige Zeit benötigen, da er eine große Anzahl von Ports scannt. Sobald er abgeschlossen ist, sieht die Ausgabe in etwa so aus:

Starting Nmap 7.80  at 2024-03-15 10:59 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 65529 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
3000/tcp  open  ppp
3001/tcp  open  nessus
3002/tcp  open  exlm-agent
8080/tcp  open  http-proxy
36921/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 2.12 seconds

Die Scanergebnisse verstehen

Die Scanergebnisse geben uns viele nützliche Informationen über Ihren Rechner. Lassen Sie uns die Spalten analysieren:

  • PORT: Diese Spalte zeigt die Portnummer und das Protokoll, in diesem Fall TCP. Die Portnummer ist wie die spezifische Adresse einer Tür auf Ihrem Computer, und TCP ist die Art und Weise, wie Daten durch diese Tür gesendet werden.
  • STATE: Diese Spalte sagt uns, ob der Port geöffnet, geschlossen oder gefiltert ist. Ein geöffneter Port bedeutet, dass ein Dienst auf diesem Port lauscht und bereit ist, Verbindungen anzunehmen. Ein geschlossener Port bedeutet, dass kein Dienst lauscht. Ein gefilterter Port kann durch eine Firewall blockiert sein.
  • SERVICE: Diese Spalte zeigt den üblichen Dienst, der normalerweise diesen Port verwendet.

In den Scanergebnissen sollten Sie den Port 8080/tcp als geöffnet aufgeführt sehen. Im vorherigen Schritt haben wir diesen Port auf unseren Docker - Container gemappt. Der Dienst "http - proxy" zeigt an, dass dieser Port normalerweise für HTTP - Proxy - Dienste verwendet wird, aber in unserer Situation wird er vom Nginx - Webserver verwendet.

Andere offene Ports, die Sie möglicherweise sehen, sind:

  • Port 22 (SSH): Dieser Port wird für sicheren Remotezugriff verwendet. Er ermöglicht es Ihnen, von einem anderen Ort aus sicher mit Ihrem Computer zu verbinden.
  • Port 3000 - 3002: Diese Ports werden von verschiedenen Diensten verwendet. Sie können mit Entwicklungsumgebungen oder anderen Anwendungen auf Ihrem Rechner verbunden sein.
  • Port 36921: Dies ist ein unbekannter Dienst. Es könnte sich um einen benutzerdefinierten Dienst handeln oder um etwas, das Nmap nicht sofort identifizieren kann.

Nachdem Sie die offenen Ports auf Ihrem Rechner gefunden haben, haben Sie Ihren ersten Nmap - Scan erfolgreich abgeschlossen. In den nächsten Schritten werden wir fortgeschrittene Nmap - Scantechniken lernen.

Dienstversionserkennung mit Nmap

In diesem Schritt werden wir untersuchen, wie man die Dienstversionserkennungsfunktionen von Nmap nutzt. Dies ist eine leistungsstarke Funktion, die uns hilft, herauszufinden, welche Dienste auf den offenen Ports eines Zielsystems laufen. Das Verständnis der Dienste und ihrer Versionen ist für Sicherheitsbewertungen und Netzwerkverwaltung von entscheidender Bedeutung.

Dienstversionserkennung verstehen

Nur zu wissen, dass ein Port geöffnet ist, gibt uns einige grundlegende Informationen. Die Identifizierung des spezifischen Dienstes und seiner Version liefert jedoch viel wertvollere Erkenntnisse. Verschiedene Versionen von Diensten können unterschiedliche Sicherheitslücken aufweisen. Beispielsweise könnte eine ältere Version eines Webservers bekannte Sicherheitsfehler haben, die in neueren Versionen behoben wurden. Indem wir die Dienstversion kennen, können wir prüfen, ob es bekannte Sicherheitslücken gibt und entsprechende Maßnahmen ergreifen, um unser Netzwerk zu sichern.

Einen Dienstversionsscan durchführen

Nmap bietet die Option -sV, um die Dienstversionserkennung zu aktivieren. Wenn Sie diese Option verwenden, sendet Nmap spezielle Sonden an die offenen Ports des Zielsystems. Diese Sonden sind so konzipiert, dass sie Informationen über die auf diesen Ports laufenden Dienste sammeln, wie z. B. den Dienstnamen und seine Version.

Lassen Sie uns einen Dienstversionsscan auf Ihrem localhost durchführen. Der localhost bezieht sich auf Ihren eigenen Computer. Führen Sie dazu den folgenden Befehl in Ihrem Terminal aus:

nmap -sV localhost

Dieser Befehl teilt Nmap mit, einen Dienstversionsscan auf Ihrem lokalen Rechner durchzuführen. Nach der Ausführung des Befehls beginnt Nmap, Sonden an die offenen Ports Ihres localhost zu senden und Informationen über die auf diesen Ports laufenden Dienste zu sammeln.

Die Ausgabe des Befehls sieht in etwa so aus:

Starting Nmap 7.80 ( https://nmap.org ) at 2024-03-15 11:30 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 994 closed ports
PORT     STATE SERVICE     VERSION
22/tcp   open  ssh         OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0)
3000/tcp open  ppp?
3001/tcp open  nessus?
3002/tcp open  ssl/nessus?
8080/tcp open  http        nginx 1.23.4
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.94 seconds

Die Ergebnisse des Dienstversionsscans verstehen

Die Ausgabe des Dienstversionsscans liefert detaillierte Informationen über die auf jedem offenen Port laufenden Dienste. Lassen Sie uns die wichtigen Teile analysieren:

  • Port 22: Die Ausgabe zeigt, dass Port 22 geöffnet ist und den SSH (Secure Shell) - Dienst ausführt. Die spezifische Version ist OpenSSH 8.2p1, die auf einem Ubuntu - System läuft. SSH ist ein Protokoll für sicheren Remotezugriff auf einen Computer.
  • Port 8080: Dieser Port ist geöffnet und führt den HTTP - Dienst aus, genauer gesagt den Nginx - Webserver in Version 1.23.4. Nginx ist ein beliebter Webserver, der zur Bereitstellung von Webseiten verwendet wird.

Bei den Ports 3000 - 3002 werden Sie neben den Dienstnamen Fragezeichen bemerken. Dies bedeutet, dass Nmap die auf diesen Ports laufenden Dienste nicht mit Sicherheit bestimmen konnte. In solchen Fällen sind möglicherweise weitere Untersuchungen erforderlich. Sie könnten andere Tools oder Techniken verwenden, um mehr Informationen über diese Dienste zu sammeln.

Diese detaillierten Informationen über die Dienstversionen sind für Sicherheitsbewertungen äußerst wertvoll. Sie können diese Informationen nutzen, um zu prüfen, ob die spezifischen Dienstversionen bekannte Sicherheitslücken aufweisen. Beispielsweise können Sie, wenn Sie feststellen, dass Sie eine ältere Version von Nginx verwenden, nachsehen, ob es Sicherheitsvorfälle in Verbindung mit dieser Version gibt und erwägen, auf eine neuere, sicherere Version zu aktualisieren.

Durch die Nutzung der Dienstversionserkennung von Nmap haben Sie es über die bloße Identifizierung offener Ports hinaus gebracht. Sie haben jetzt ein tieferes Verständnis der auf Ihrem System laufenden Netzwerkdienste, was für die Aufrechterhaltung eines sicheren und gut verwalteten Netzwerks unerlässlich ist.

Betriebssystemerkennung mit Nmap

In diesem Schritt werden wir lernen, wie man die Betriebssystemerkennungsfunktion von Nmap nutzt. Zunächst aber verstehen wir, warum dies wichtig ist. Das Wissen über das auf einem Zielrechner laufende Betriebssystem ist für Netzwerkadministratoren und Sicherheitsexperten wie ein Schlüsselstück an Informationen. Es hilft ihnen, die potenziellen Sicherheitslücken und Risiken, die mit diesem Rechner verbunden sind, zu verstehen.

Betriebssystemerkennung verstehen

Die Betriebssystemerkennung ist eine fortgeschrittene Funktion von Nmap. Wenn Sie diese Funktion nutzen, sendet Nmap spezielle Pakete an den Zielrechner und analysiert die zurückgesendeten Antworten. Basierend auf diesen Antworten macht Nmap eine fundierte Vermutung über das auf dem Zielrechner laufende Betriebssystem. Verschiedene Betriebssysteme behandeln Netzwerkanfragen auf unterschiedliche Weise, und Nmap nutzt diese Unterschiede, um herauszufinden, was auf der anderen Seite läuft. Diese Informationen sind für Sicherheitsbewertungen von entscheidender Bedeutung, da verschiedene Betriebssysteme unterschiedliche Sicherheitslücken aufweisen. Beispielsweise könnte eine ältere Windows - Version bekannte Sicherheitslücken haben, die eine neuere Linux - Distribution nicht hat.

Einen Betriebssystemerkennungs - Scan durchführen

Um einen Betriebssystemerkennungs - Scan durchzuführen, verwenden wir die Option -O in Nmap. Diese Funktion erfordert jedoch Root - Rechte, da sie das Senden bestimmter Arten von Netzwerkpaketen umfasst, die normale Benutzer nicht senden dürfen. Daher müssen wir sudo verwenden, um den Befehl mit administrativen Rechten auszuführen.

Führen Sie den folgenden Befehl in Ihrem Terminal aus:

sudo nmap -O localhost

Wenn Sie diesen Befehl ausführen, werden Sie möglicherweise aufgefordert, Ihr sudo - Passwort einzugeben. Dies ist ein Sicherheitsmaßnahme, um sicherzustellen, dass nur autorisierte Benutzer Aktionen mit administrativen Rechten ausführen können. Nachdem Sie Ihr Passwort eingegeben haben, beginnt Nmap den Scan.

Die Ausgabe sieht in etwa wie folgt aus:

Starting Nmap 7.80 ( https://nmap.org ) at 2024-03-15 12:00 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 994 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3000/tcp open  ppp
3001/tcp open  nessus
3002/tcp open  ssl/nessus
8080/tcp open  http-proxy
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
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 3.36 seconds

Die Ergebnisse der Betriebssystemerkennung verstehen

Die Ergebnisse der Betriebssystemerkennung geben uns viele nützliche Informationen über das Betriebssystem des Ziels. Lassen Sie uns die verschiedenen Teile der Ergebnisse analysieren:

  • Gerätetyp: Dies gibt uns die allgemeine Kategorie des Geräts an. Beispielsweise könnte es sich um einen Allzweckcomputer, einen Router oder einen Drucker handeln. In unserem Fall steht "general purpose" (Allzweck), was bedeutet, dass es wahrscheinlich ein normaler Computer ist.
  • Läuft: Dies zeigt die erkannte Betriebssystemfamilie und den Versionsbereich an. Hier steht "Linux 4.X|5.X", was bedeutet, dass Nmap erkannt hat, dass der Rechner ein Linux - Betriebssystem mit einer Kernel - Version im Bereich von 4.X oder 5.X ausführt.
  • OS CPE: Dies steht für Common Platform Enumeration (Allgemeine Plattformaufzählung). Es bietet standardisierte Bezeichner für das Betriebssystem, die für weitere Recherchen und Sicherheitslückenanalysen verwendet werden können.
  • OS - Details: Dies gibt uns genauere Informationen über die Betriebssystemversion. In unserem Beispiel steht "Linux 4.15 - 5.6", was bedeutet, dass die Kernel - Version zwischen 4.15 und 5.6 liegt.
  • Netzwerkdistanz: Dies gibt an, wie viele Netzwerksprünge der Zielrechner entfernt ist. Da wir localhost (den lokalen Rechner selbst) scannen, beträgt die Netzwerkdistanz 0 Sprünge.

In diesem Fall hat Nmap korrekt erkannt, dass der Rechner Linux ausführt, genauer gesagt eine Kernel - Version zwischen 4.15 und 5.6.

Diese Informationen sind für Sicherheitsbewertungen äußerst nützlich. Indem Sicherheitsexperten die Betriebssystemversion kennen, können sie nach bekannten Sicherheitslücken in Verbindung mit dieser Version suchen und entsprechende Maßnahmen ergreifen, um das System zu sichern. Sie sind auch für die Netzwerkbestandsaufnahme und - verwaltung wertvoll, da sie helfen, zu verfolgen, welche Betriebssysteme auf verschiedenen Rechnern im Netzwerk laufen.

Durch die Nutzung der Betriebssystemerkennungsfunktion von Nmap haben Sie Ihr Verständnis des Zielsystems erweitert, indem Sie nicht nur wissen, welche Ports geöffnet sind und welche Dienste laufen. Sie haben jetzt eine bessere Vorstellung vom zugrunde liegenden Betriebssystem, was ein entscheidendes Stück an Informationen für die Netzwerksicherheit und - verwaltung ist.

Skriptscanning mit Nmap

In diesem letzten Schritt werden wir Nmaps Skripting - Engine (NSE) erkunden. Die NSE ist ein sehr wichtiger Teil von Nmap, der ihn noch nützlicher macht. Sie ermöglicht es Benutzern, Skripte zu schreiben und zu teilen, um verschiedene Netzwerkaufgaben zu automatisieren. Das bedeutet, dass Sie Skripte verwenden können, um Dinge schneller und effizienter zu erledigen als manuell.

Nmap Skripting - Engine (NSE) verstehen

Die Nmap Skripting - Engine (NSE) ist eines der leistungsstärksten und flexibelsten Merkmale von Nmap. Stellen Sie sich vor, es sei ein Werkzeugkasten, der Ihnen zusätzliche Werkzeuge für die Arbeit mit Netzwerken bietet. Sie können Skripte in der Programmiersprache Lua schreiben. Lua ist eine einfache und leicht zu lernende Sprache, was sie ideal für das Schreiben solcher Skripte macht.

Diese Skripte können für viele verschiedene Zwecke verwendet werden:

  • Netzwerkermittlung: Dies hilft Ihnen herauszufinden, welche Geräte in einem Netzwerk vorhanden sind.
  • Versionserkennung: Sie können herausfinden, welche Softwareversionen auf einem Gerät laufen.
  • Sicherheitslückenerkennung: Es kann Sicherheitsschwachstellen in einem System finden.
  • Backdoor - Erkennung: Hilft Ihnen, versteckte Zugangsmöglichkeiten zu finden, die Angreifer nutzen könnten, um auf ein System zuzugreifen.
  • Sicherheitslückenausnutzung: Obwohl dies in einer legalen und ethischen Testumgebung erfolgen sollte, kann es zeigen, wie ein Angreifer eine Sicherheitslücke ausnutzen könnte.

Nmap wird mit einer Reihe von vordefinierten Skripten ausgeliefert. Diese Skripte sind in Bibliotheken organisiert, je nachdem, was sie tun. Wenn Sie also eine bestimmte Aufgabe ausführen möchten, können Sie das richtige Skript in der entsprechenden Bibliothek leicht finden.

Einen grundlegenden Skriptscan durchführen

Um mit einem grundlegenden Skriptscan zu beginnen, verwenden wir die Option -sC. Diese Option teilt Nmap mit, eine Standardmenge von Skripten auszuführen. Diese Standardskripte sind so konzipiert, dass sie sicher und nicht einschränkend sind. Das bedeutet, dass sie das Zielsystem nicht beschädigen, während sie ihre Aufgabe erfüllen.

Lassen Sie uns den folgenden Befehl ausführen:

nmap -sC localhost

Wenn Sie diesen Befehl ausführen, beginnt Nmap, Ihren lokalen Rechner zu scannen. Es wird die Standardskripte verwenden, um Informationen über die offenen Ports und die auf ihnen laufenden Dienste zu sammeln. Die Ausgabe sieht in etwa so aus:

Starting Nmap 7.80 ( https://nmap.org ) at 2024-03-15 12:30 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 994 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
| ssh-hostkey:
|   3072 01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef (RSA)
|   256 fe:dc:ba:98:76:54:32:10:fe:dc:ba:98:76:54:32:10 (ECDSA)
|_  256 01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef (ED25519)
3000/tcp open  ppp
3001/tcp open  nessus
3002/tcp open  ssl/nessus
8080/tcp open  http-proxy
|_http-title: Welcome to nginx!

Nmap done: 1 IP address (1 host up) scanned in 1.31 seconds

Ein bestimmtes Skript ausführen

Wenn Sie ein bestimmtes Skript ausführen möchten, können Sie die Option --script verwenden. Nach dieser Option müssen Sie den Namen des Skripts oder die Kategorie, zu der es gehört, angeben.

Nehmen wir beispielsweise an, Sie möchten den Titel einer Webseite abrufen. Es gibt ein Skript namens http - title, das dies für Sie tun kann. Um dieses Skript auszuführen, verwenden Sie den folgenden Befehl:

nmap --script=http-title -p 8080 localhost

Dieser Befehl teilt Nmap mit, das http - title - Skript auf Port 8080 Ihres lokalen Rechners auszuführen. Die Ausgabe sieht wie folgt aus:

Starting Nmap 7.80 ( https://nmap.org ) at 2024-03-15 12:35 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).

PORT     STATE SERVICE
8080/tcp open  http-proxy
|_http-title: Welcome to nginx!

Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds

Die Ergebnisse des Skriptscans verstehen

Die Ergebnisse des Skriptscans geben Ihnen detailliertere Informationen über die auf den offenen Ports laufenden Dienste.

  • Für den SSH - Dienst auf Port 22 hat das ssh - hostkey - Skript die Host - Schlüssel abgerufen. Diese Schlüssel sind wichtig für die sichere Kommunikation über SSH.
  • Für den HTTP - Dienst auf Port 8080 hat das http - title - Skript den Titel der Webseite abgerufen, der "Welcome to nginx!" lautet.

Diese Art von Informationen ist für Sicherheitsbewertungen sehr nützlich. Sie hilft Ihnen zu verstehen, wie die Dienste auf dem Zielsystem konfiguriert sind und wie sie sich verhalten.

Durch die Nutzung von Nmaps Skripting - Engine haben Sie eines seiner leistungsstärksten Merkmale erkundet. Dieses Merkmal kann Ihnen viel Zeit und Mühe sparen, wenn es um Netzwerkermittlung und Sicherheitsbewertung geht.

Aufräumen

Nachdem Sie alle Scanschritte abgeschlossen haben, ist es Zeit, aufzuräumen. Zu Beginn des Labs haben Sie einen Docker - Container erstellt. Wir müssen diesen Container stoppen und entfernen, um Ihr System sauber zu halten.

Führen Sie den folgenden Befehl aus:

docker stop cyber-seed-server && docker rm cyber-seed-server

Dieser Befehl stoppt zunächst den laufenden Docker - Container namens cyber - seed - server. Dann entfernt er den Container von Ihrem System.

Herzlichen Glückwunsch! Sie haben alle Schritte in diesem Lab erfolgreich abgeschlossen. Sie haben wertvolle praktische Erfahrungen mit verschiedenen Nmap - Scantechniken gesammelt.

Zusammenfassung

In diesem Lab haben Sie die Grundlagen des Netzwerkscannens mit Nmap gelernt, einem beliebten und leistungsstarken Cybersicherheitstool. Sie haben einen Docker - Container als Scanziel eingerichtet und so eine praktische Umgebung geschaffen, in der Sie Ihre neuen Fähigkeiten anwenden können.

Sie haben sich durch eine Reihe fortgeschrittener Nmap - Scantechniken gearbeitet, beginnend mit einem grundlegenden Portscan auf Ihrem lokalen Rechner. Anschließend haben Sie die Erkennung der Dienstversionen und des Betriebssystems gelernt und Nmaps Skripting - Engine genutzt, um Aufgaben zu automatisieren und mehr Informationen über das Ziel zu sammeln. Diese Fähigkeiten bilden die Grundlage für Sicherheitsbewertungen im Netzwerk und sind für Netzwerkadministratoren und Sicherheitsexperten von entscheidender Bedeutung. Das Beherrschen dieser Nmap - Techniken gibt Ihnen ein leistungsstarkes Werkzeug für reale Szenarien, von der Netzwerkbestandsaufnahme bis hin zu Sicherheitsbewertungen.