Nmap: Der Network Mapper

Nmap (Network Mapper) ist ein Open-Source-Tool für Netzwerk-Exploration und Sicherheits-Audits. Es wurde ursprünglich von Gordon Lyon (auch bekannt unter seinem Pseudonym Fyodor Vaskovich) entwickelt und wird häufig von Netzwerkadministratoren und IT-Sicherheitsexperten verwendet. Einige wichtige Funktionen und Einsatzgebiete von Nmap sind:

  • Netzwerk-Inventur: Nmap kann verwendet werden, um die Geräte zu identifizieren, die in einem Netzwerk aktiv sind. Dazu gehören Server, Computer, Drucker und jedes andere Gerät, das mit dem Netzwerk verbunden ist.
  • Port-Scanning: Es kann verwendet werden, um offene Ports auf Netzwerkgeräten zu identifizieren. Dies hilft zu verstehen, welche Dienste auf diesen Geräten laufen und ob diese Ports möglicherweise Sicherheitsrisiken darstellen.
  • Erkennung von Betriebssystemen und Diensten: Nmap kann Informationen über die auf den Netzwerkgeräten laufenden Betriebssysteme und Dienste sammeln. Diese Informationen sind nützlich für die Sicherheitsüberprüfung und das Netzwerkmanagement.
  • Sicherheitsüberprüfungen: IT-Sicherheitsexperten verwenden Nmap, um Netzwerke auf Schwachstellen und Sicherheitslücken zu überprüfen.
  • Scripting Engine: Nmap verfügt über eine leistungsfähige Scripting Engine (NSE), die es ermöglicht, eigene Skripte für automatisierte Aufgaben und erweiterte Netzwerkexploration zu schreiben.

Nmap ist ein sehr mächtiges Werkzeug, das jedoch verantwortungsvoll eingesetzt werden sollte. In vielen Fällen ist die Zustimmung des Netzwerkbetreibers erforderlich, bevor ein Scan durchgeführt wird.

Das Battlefield: Netzwerk

Um die Arbeitsweise von Nmap zu verstehen, ist es notwendig, sich den Ablauf des Verbindungsaufbaus einer Netzwerkverbindung und die verschiedenen Zustände einer Netzwerkverbindung in Erinnerung zu rufen:

TCP
Der Verbindungsaufbau in einer TCP-Verbindung, auch bekannt als "Drei-Wege-Handshake", ist ein grundlegender Prozess, der eine zuverlässige Verbindung zwischen einem Client und einem Server herstellt. Dieser Prozess beginnt damit, dass der Client eine Synchronisationsnachricht (SYN) an den Server sendet, um eine Verbindung anzufordern. Der Server antwortet mit einer Synchronisations-Acknowledgement-Nachricht (SYN-ACK), um zu bestätigen, dass er bereit ist, die Verbindung anzunehmen. Schließlich sendet der Client eine Acknowledgement-Nachricht (ACK) an den Server zurück, um den erfolgreichen Verbindungsaufbau zu bestätigen. Nach diesem dreistufigen Verfahren ist die TCP-Verbindung aufgebaut und Daten können sicher und zuverlässig zwischen Client und Server übertragen werden.
UDP
UDP (User Datagram Protocol) ist ein einfaches, verbindungsloses Netzwerkprotokoll aus der Familie der Internetprotokolle, das im Gegensatz zu TCP keine Verbindungsaufbauphase durchläuft. Bei der Verwendung von UDP sendet ein Client einfach ein Datenpaket (Datagramm) an einen Server, ohne vorher eine Verbindung aufzubauen oder den Empfang des Pakets zu bestätigen. Es gibt keinen Handshake wie bei TCP, d. h. UDP ist schneller und hat weniger Overhead, ist aber weniger zuverlässig, da die Zustellung von Paketen nicht garantiert ist und die Reihenfolge der Paketzustellung nicht kontrolliert wird. UDP wird häufig für Anwendungen verwendet, bei denen Geschwindigkeit wichtiger ist als Zuverlässigkeit, wie z. B. Live-Video- oder Audio-Streaming, Spiele und einige Echtzeit-Kommunikationsanwendungen.
ICMP
ICMP (Internet Control Message Protocol) ist ein wesentliches Protokoll der Internet-Protokoll-Suite, das hauptsächlich zur Übertragung von Fehlermeldungen und Informationen über den Netzwerkbetrieb verwendet wird. Es ist nicht für den regulären Datentransport zwischen Endgeräten vorgesehen, sondern dient der Kommunikation von Informationen über Netzwerkprobleme und -zustände. Ein bekanntes Beispiel für die Verwendung von ICMP ist das Ping-Tool, das ICMP-Echo-Requests und -Replies verwendet, um die Erreichbarkeit eines Hosts im Netzwerk zu testen. ICMP kann auch Fehlermeldungen wie Destination Unreachable senden, wenn Daten nicht erfolgreich an ihr Ziel geliefert werden können. Dies hilft bei der Diagnose von Netzwerkproblemen, indem es Rückmeldung über Probleme wie verlorene Verbindungen, unerreichbare Ziele oder Routing-Fehler gibt.
Ports
Ports in der Netzwerkkommunikation dienen als Endpunkte in einem Betriebssystem zur Unterscheidung von Netzwerkverbindungen. Jeder Port ist durch eine bestimmte Nummer gekennzeichnet und wird zusammen mit einer IP-Adresse zur eindeutigen Identifizierung einer Netzwerksitzung verwendet. In der TCP/IP-Kommunikation wird ein Port verwendet, um bestimmte Anwendungen oder Dienste auf einem Computer zu identifizieren. Beispielsweise lauscht der HTTP-Dienst standardmäßig auf Port 80 und HTTPS auf Port 443. Ports ermöglichen es einem Betriebssystem, mehrere Netzwerkanwendungen gleichzeitig auszuführen, indem der ein- und ausgehende Datenverkehr an den entsprechenden Port weitergeleitet wird. Es gibt insgesamt 65535 verfügbare Ports, die in verschiedene Bereiche unterteilt sind: die bekannten Ports (0-1023), die registrierten Ports (1024-49151) und die dynamischen oder privaten Ports (49152-65535).

Ports in der Netzwerkkommunikation können verschiedene Zustände haben, die Aufschluss über ihren aktuellen Status und ihre Verfügbarkeit geben. Die wichtigsten Zustände sind:

Offen (Open/Listen): Ein offener Port zeigt an, dass eine Anwendung auf dem Host aktiv auf eingehende Verbindungen oder Daten an diesem Port wartet. Dies ist häufig bei Servern der Fall, die Dienste wie HTTP oder FTP anbieten.
Geschlossen (Closed): Ein geschlossener Port bedeutet, dass keine Anwendung auf dem Host aktuell auf Daten an diesem Port lauscht. Ein geschlossener Port kann aber jederzeit geöffnet werden, wenn eine Anwendung ihn benötigt.
Geblockt (Blocked) oder Gefiltert (Filtered): Ein geblockter oder gefilterter Port ist einer, auf den aus Sicherheitsgründen kein Zugriff möglich ist. Dies kann durch eine Firewall oder andere Sicherheitsmechanismen erfolgen, um unbefugten Zugriff oder Angriffe zu verhindern.
Stealth: Dieser Zustand tritt auf, wenn ein Port so konfiguriert ist, dass er auf keine eingehenden Anfragen reagiert – weder mit einer Bestätigung noch mit einer Ablehnung. Dies kann dazu dienen, potenziellen Angreifern weniger Informationen über das Netzwerk zu geben.

Die Kenntnis des Zustands eines Ports ist wichtig für die Netzwerksicherheit und -verwaltung, da offene Ports potenzielle Eintrittspunkte für Sicherheitsbedrohungen darstellen können, während geschlossene oder gefilterte Ports anzeigen, dass Zugriffskontrollen und Sicherheitsmaßnahmen aktiv sind.

Zusammenfassung

Zusammengefasst sind TCP, UDP, ICMP und Ports wesentliche Komponenten der Netzwerkkommunikation, die zusammenarbeiten, um die Datenübertragung und das Netzwerkmanagement zu ermöglichen. TCP bietet eine zuverlässige, verbindungsorientierte Kommunikation, wobei ein Drei-Wege-Handshake die Datenintegrität sicherstellt. Im Gegensatz dazu ermöglicht UDP eine schnellere, verbindungslose Übertragung, ideal für zeitkritische Anwendungen, opfert aber die Zuverlässigkeit. ICMP spielt eine unterstützende Rolle bei der Übertragung von Fehlermeldungen und Netzwerkinformationen, die für die Diagnose und Fehlerbehebung unerlässlich sind. Ports fungieren als Endpunkte innerhalb eines Hosts, weisen den Datenverkehr bestimmten Anwendungen zu und ermöglichen so die gleichzeitige Ausführung mehrerer Netzwerkdienste und zeigen durch ihren Zustand (offen/listen, geschlossen, geblockt/gefiltert oder stealth) den Grad der Verfügbarkeit für Kommunikationsdienste an und können Hinweise auf die Netzwerksicherheit geben.

Nmap baut auf diesen Komponenten auf und nutzt das Zusammenspiel von TCP, UDP, ICMP und Ports, um Netzwerke zu analysieren und zu diagnostizieren. Es verwendet TCP und UDP, um die Verfügbarkeit und den Status von Ports zu überprüfen, verwendet ICMP, um die Netzwerkkonnektivität und die Antwortzeiten zu testen, und identifiziert offene oder lauschende Ports, um potenzielle Sicherheitslücken aufzudecken und Dienste auf Netzwerkgeräten zu erkennen. Diese Integration ermöglicht Nmap eine umfassende Netzwerkanalyse und -überwachung, die für Sicherheitsexperten und Netzwerkadministratoren unerlässlich ist.

TCP-Connect-Scan

Zur Erinnerung: Der Drei-Wege-Handshake besteht aus drei Phasen. Zunächst sendet das verbindende Endgerät (in diesem Fall der angreifende Rechner) eine TCP-Anfrage an den Zielserver, wobei das SYN-Flag gesetzt ist. Der Server bestätigt dieses Paket dann mit einer TCP-Antwort, die das SYN-Flag sowie das ACK-Flag enthält (SYN-ACK). Schließlich schließt unser Terminal den Handshake ab, indem es eine TCP-Anfrage mit gesetztem ACK-Flag sendet:

In Nmap funktioniert ein TCP-Connect-Scan, indem der Drei-Wege-Handshake mit jedem Zielport der Reihe nach durchgeführt wird. Mit anderen Worten: Nmap versucht, sich mit jedem angegebenen TCP-Port zu verbinden, und ermittelt anhand der Antwort, ob der Dienst offen ist.

Wenn zum Beispiel ein Port geschlossen ist, sagt RFC 9293 folgendes:

"Wenn die Verbindung nicht existiert (CLOSED), dann wird ein Reset (RST) als Antwort auf jedes eingehende Segment gesendet, außer einem weiteren Reset (RST). Ein SYN-Segment, das nicht zu einer bestehenden Verbindung passt, wird auf diese Weise zurückgewiesen".

https://datatracker.ietf.org/doc/html/rfc9293

Mit anderen Worten: Wenn Nmap eine TCP-Anfrage mit gesetztem SYN-Flag an einen geschlossenen Port sendet, antwortet der Zielserver mit einem TCP-Paket, in dem das RST-Flag (Reset) gesetzt ist. Anhand dieser Antwort kann Nmap feststellen, dass der Port geschlossen ist.

Wenn die Anfrage jedoch an einen offenen Port gesendet wird, antwortet das Ziel mit einem TCP-Paket, bei dem das SYN-ACK-Flag gesetzt ist. Nmap markiert dann diesen Port als offen (und schließt den Handshake ab, indem es ein TCP-Paket mit gesetztem ACK zurücksendet).

Die dritte Möglichkeit wäre, dass der Port zwar offen aber hinter einer Firewall versteckt ist. Viele Firewalls sind so konfiguriert, dass sie eingehende Pakete einfach verwerfen. Nmap sendet eine TCP SYN-Anfrage und erhält nichts zurück. Das deutet darauf hin, dass der Port von einer Firewall geschützt wird und daher als gefiltert (FILTERED) gilt.

Es ist jedoch sehr einfach, eine Firewall so zu konfigurieren, dass sie mit einem RST-Paket antwortet. In IP-Tables für Linux würde eine einfache Version des Befehls zum Beispiel wie folgt lauten:

iptables -I INPUT -p tcp --dport -j REJECT --reject-with tcp-reset

Dies kann es extrem schwierig (wenn nicht gar unmöglich) machen, eine genaue Analyse der Ziele zu erhalten.

Standardmäßig führt Nmap einen SYN-Scan durch, ersetzt ihn aber durch einen Connect-Scan, wenn der Benutzer nicht die nötigen Rechte hat, um Raw-Pakete zu senden (erfordert root-Zugriff unter Unix), oder wenn IPv6-Ziele angegeben wurden.

Beispiel:

┌──(pronto㉿kali)-[~]
└─$ nmap 192.168.178.69
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-01-06 16:40 EST
Nmap scan report for znuny.fritz.box (192.168.178.69)
Host is up (0.0026s latency).
Not shown: 998 closed tcp ports (conn-refused)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

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

TCP-SYN-Scan

Wie bei TCP-Scans werden SYN-Scans (-sS) verwendet, um den TCP-Port-Bereich eines oder mehrerer Ziele zu scannen; die beiden Scan-Typen funktionieren jedoch etwas anders. SYN-Scans werden manchmal auch als "halboffene" Scans oder "Stealth"-Scans bezeichnet.

Während TCP-Scans einen vollständigen Drei-Wege-Handshake mit dem Ziel durchführen, senden SYN-Scans ein RST-TCP-Paket zurück, nachdem sie ein SYN/ACK vom Server erhalten haben (dies verhindert, dass der Server wiederholt versucht, die Anfrage zu stellen). Mit anderen Worten, die Sequenz zum Scannen eines offenen Ports sieht wie folgt aus:

Für einen Hacker hat dies eine Reihe von Vorteilen:

  • Ältere Intrusion Detection Systeme können damit umgangen werden, da sie auf einen vollständigen Drei-Wege-Handshake achten. Dies ist bei modernen IDS-Lösungen oft nicht mehr der Fall; aus diesem Grund werden SYN-Scans immer noch häufig als "Stealth"-Scans bezeichnet.
  • SYN-Scans werden von Anwendungen, die auf offenen Ports lauschen, oft nicht protokolliert, da die Standardpraxis darin besteht, eine Verbindung zu protokollieren, sobald sie vollständig hergestellt wurde. Auch dies trägt dazu bei, dass SYN-Scans als "heimlich" gelten.
  • SYN-Scans sind wesentlich schneller als ein Standard-TCP-Connect-Scan, da sie sich nicht um den Abschluss (und das Trennen) eines Drei-Wege-Handshakes für jeden Port kümmern müssen.

SYN-Scans haben jedoch auch einige Nachteile, und zwar:

  • Sie erfordern sudo-Berechtigungen, um unter Linux korrekt zu funktionieren. Das liegt daran, dass SYN-Scans die Fähigkeit voraussetzen, Raw-Pakete zu erstellen (im Gegensatz zum vollständigen TCP-Handshake), ein Recht, das standardmäßig nur der Root-Benutzer hat.
  • Instabile Dienste werden manchmal durch SYN-Scans zum Absturz gebracht, was sich als problematisch erweisen kann, wenn ein Kunde eine Produktionsumgebung für den Test zur Verfügung gestellt hat.

Aus diesem Grund sind SYN-Scans die Standard-Scans von Nmap, wenn sie mit sudo-Rechten ausgeführt werden. Wenn es ohne sudo-Berechtigungen ausgeführt wird, verwendet Nmap standardmäßig den TCP-Connect-Scan, den wir in der vorherigen Aufgabe gesehen haben.

Wenn Sie einen SYN-Scan verwenden, um geschlossene und gefilterte Ports zu identifizieren, gelten genau dieselben Regeln wie bei einem TCP-Connect-Scan.

  • Wenn ein Port geschlossen ist, antwortet der Server mit einem RST-TCP-Paket.
  • Wenn der Port von einer Firewall gefiltert wird, wird das SYN-Paket entweder verworfen oder mit einem RST-TCP-Paket gefälscht.

In dieser Hinsicht sind die beiden Scans identisch: Der große Unterschied besteht darin, wie sie mit offenen Ports umgehen.

Beispiel:

┌──(pronto㉿kali)-[~]
└─$ sudo nmap 192.168.178.69                                                                                                                                 
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-01-06 16:55 EST
Nmap scan report for znuny.fritz.box (192.168.178.69)
Host is up (0.00090s latency).
Not shown: 998 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 00:0C:29:3B:64:86 (VMware)

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

UDP-Scan

Im Gegensatz zu TCP sind UDP-Verbindungen zustandslos. Das bedeutet, dass UDP-Verbindungen keine Verbindung mit einem Drei-Wege-Handshake einleiten, sondern Pakete an einen Zielport senden und im Wesentlichen hoffen, dass sie ankommen. Dadurch eignet sich UDP hervorragend für Verbindungen, bei denen es mehr auf Geschwindigkeit als auf Qualität ankommt (z.B. Video-Stremaing), aber das Fehlen von Bestätigungen macht das Scannen von UDP deutlich schwieriger (und viel langsamer). Der Schalter für einen Nmap-UDP-Scan ist (-sU)

Wenn ein Paket an einen offenen UDP-Port gesendet wird, sollte es keine Antwort geben. Wenn das passiert, bezeichnet Nmap den Port als open/filtered. Mit anderen Worten, es vermutet, dass der Port offen ist, aber er könnte durch eine Firewall geschützt sein. Wenn es eine UDP-Antwort erhält (was sehr ungewöhnlich ist), dann wird der Port als open markiert. In diesem Fall wird die Anfrage ein zweites Mal gesendet, um sie zu überprüfen.

Wenn ein Paket an einen geschlossenen UDP-Port gesendet wird, sollte das Ziel mit einem ICMP-Paket antworten, das die Meldung enthält, dass der Port nicht erreichbar ist Destination Port unreachable. Dadurch werden geschlossene Ports eindeutig identifiziert, die Nmap als solche markiert und dann weitermacht.

Aufgrund dieser Schwierigkeit, festzustellen, ob ein UDP-Port tatsächlich offen ist, sind UDP-Scans im Vergleich zu den verschiedenen TCP-Scans in der Regel unglaublich langsam (etwa 20 Minuten für die ersten 1000 Ports, bei einer guten Verbindung). Aus diesem Grund ist es in der Regel eine gute Praxis, einen Nmap-Scan mit der Option --top-ports durchzuführen. Ein Beispiel: Scannen mit nmap -sU --top-ports 20 . Damit werden die 20 am häufigsten verwendeten UDP-Ports gescannt, was zu einer viel akzeptableren Scan-Zeit führt.

Beispiel:

┌──(pronto㉿kali)-[~]
└─$ sudo nmap -sU --top-ports 20 192.168.178.69                                                                                                              
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-01-06 17:04 EST
Nmap scan report for znuny.fritz.box (192.168.178.69)
Host is up (0.00064s latency).

PORT      STATE         SERVICE
53/udp    closed        domain
67/udp    closed        dhcps
68/udp    open|filtered dhcpc
69/udp    closed        tftp
123/udp   closed        ntp
135/udp   closed        msrpc
137/udp   closed        netbios-ns
138/udp   closed        netbios-dgm
139/udp   closed        netbios-ssn
161/udp   closed        snmp
162/udp   closed        snmptrap
445/udp   closed        microsoft-ds
500/udp   closed        isakmp
514/udp   closed        syslog
520/udp   closed        route
631/udp   closed        ipp
1434/udp  closed        ms-sql-m
1900/udp  closed        upnp
4500/udp  closed        nat-t-ike
49152/udp closed        unknown
MAC Address: 00:0C:29:3B:64:86 (VMware)

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

NULL-, FIN- und Xmas-TCP-Port-Scans

NULL-, FIN- und Xmas-TCP-Port-Scans sind miteinander verknüpft und werden vor allem deshalb verwendet, weil sie relativ gesehen noch unauffälliger sind als ein SYN-Stealth-Scan.

NULL-Scans

Wie der Name schon sagt, werden NULL-Scans (-sN) durchgeführt, wenn die TCP-Anfrage ohne gesetzte Flags gesendet wird. Gemäß dem RFC sollte der Zielhost mit einem RST antworten, wenn der Port geschlossen ist.

FIN-Scans

FIN-Scans (-sF) funktionieren fast identisch, aber anstatt ein komplett leeres Paket zu senden, wird eine Anfrage mit dem FIN-Flag gesendet (normalerweise verwendet, um eine aktive Verbindung ordnungsgemäß zu schließen). Auch hier erwartet Nmap ein RST, wenn der Port geschlossen ist.

Xmas-Scans

Wie die beiden anderen Scans in dieser Klasse senden auch Xmas-Scans (-sX) ein fehlerhaftes TCP-Paket und erwarten eine RST-Antwort für geschlossene Ports. Er wird als Xmas-Scan bezeichnet, da die von ihm gesetzten Flags (PSH, URG und FIN) ihm das Aussehen eines blinkenden Weihnachtsbaums verleihen, wenn er als Paketaufnahme in Wireshark betrachtet wird.

Fazit

Die erwartete Antwort auf offene Ports bei diesen Scans ist ebenfalls identisch und ähnelt sehr der eines UDP-Scans. Wenn der Port offen ist, gibt es keine Antwort auf das fehlerhafte Paket. Leider ist dies (wie bei offenen UDP-Ports) auch ein zu erwartendes Verhalten, wenn der Port durch eine Firewall geschützt ist, so dass NULL-, FIN- und Xmas-Scans Ports immer nur als open|filtered, closed oder filtered identifizieren. Wenn ein Port mit einem dieser Scans als gefiltert identifiziert wird, dann liegt das in der Regel daran, dass das Ziel mit einem ICMP-Unreachable-Paket geantwortet hat.

Es ist auch erwähnenswert, dass RFC 793 zwar vorschreibt, dass Netzwerk-Hosts auf fehlerhafte Pakete mit einem RST-TCP-Paket für geschlossene Ports und überhaupt nicht für offene Ports reagieren, dies in der Praxis aber nicht immer der Fall ist. Insbesondere Microsoft Windows (und viele Cisco-Netzwerkgeräte) sind dafür bekannt, auf jedes fehlerhafte TCP-Paket mit einem RST zu reagieren - unabhängig davon, ob der Port tatsächlich offen ist oder nicht. Dies führt dazu, dass alle Ports als geschlossen angezeigt werden.

Das Ziel ist hier natürlich die Umgehung der Firewall. Viele Firewalls sind so konfiguriert, dass sie eingehende TCP-Pakete an blockierte Ports mit gesetztem SYN-Flag ablehnen (und damit neue Verbindungsanfragen blockieren). Indem wir Anfragen senden, die das SYN-Flag nicht enthalten, umgehen wir diese Art von Firewall effektiv. In der Theorie ist dies zwar gut, aber die meisten modernen IDS-Lösungen sind mit diesen Scan-Typen vertraut, so dass Sie sich nicht darauf verlassen sollten, dass sie bei modernen Systemen zu 100 % effektiv sind.

ICMP-Network-Scanning

Bei der ersten Verbindung mit einem Zielnetz im Rahmen besteht unser erstes Ziel darin, eine Karte der Netzwerkstruktur zu erhalten - oder anders gesagt, wir wollen sehen, welche IP-Adressen aktive Hosts enthalten und welche nicht.

Eine Möglichkeit, dies zu tun, besteht darin, mit Nmap einen so genannten Ping Sweep durchzuführen. Das ist genau das, was der Name vermuten lässt: Nmap sendet ein ICMP-Echo-Request-Paket an jede mögliche IP-Adresse des angegebenen Netzwerks. Wenn es eine Antwort erhält (ICMP-Echo-Reply), markiert es die IP-Adresse, die geantwortet hat, als aktiv.

Um einen Ping-Sweep durchzuführen, verwenden wir den Schalter -sn in Verbindung mit IP-Bereichen, die entweder mit einem Bindestrich (-) oder in CIDR-Schreibweise angegeben werden können. z.B. könnten wir das Netzwerk 192.168.178.x scannen mit

  • nmap -sn 192.168.178.1-254
  • nmap -sn 192.168.178.0/24

Der Schalter -sn weist Nmap an, keine Ports zu scannen - und zwingt es, sich hauptsächlich auf ICMP-Echo-Pakete zu verlassen (oder auf ARP-Anfragen in einem lokalen Netzwerk, wenn es mit sudo oder direkt als Root-Benutzer ausgeführt wird), um Ziele zu identifizieren.

Beispiele:

┌──(pronto㉿kali)-[~]
└─$ nmap -sn 192.168.178.0/24                                                                                                                                
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-01-06 17:33 EST
Nmap scan report for fritz.box (192.168.178.1)
Host is up (0.0015s latency).
Nmap scan report for raspberrypi.fritz.box (192.168.178.2)
Host is up (0.0025s latency).
Nmap scan report for 192.168.178.25
Host is up (0.070s latency).
Nmap scan report for iMac-von-pronto.fritz.box (192.168.178.35)
Host is up (0.0022s latency).
Nmap scan report for kali.fritz.box (192.168.178.59)
Host is up (0.0049s latency).
Nmap scan report for 192.168.178.60
Host is up (0.00026s latency).
Nmap scan report for Graylog2.fritz.box (192.168.178.66)
Host is up (0.00044s latency).
Nmap scan report for znuny.fritz.box (192.168.178.69)
Host is up (0.0011s latency).
Nmap done: 256 IP addresses (8 hosts up) scanned in 2.35 seconds
┌──(pronto㉿kali)-[~]
└─$ sudo nmap -sn 192.168.178.0/24                                                                                                                           
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-01-06 17:34 EST
Nmap scan report for fritz.box (192.168.178.1)
Host is up (0.00087s latency).
MAC Address: 38:10:D5:83:C0:C6 (AVM Audiovisuelles Marketing und Computersysteme GmbH)
Nmap scan report for raspberrypi.fritz.box (192.168.178.2)
Host is up (0.0011s latency).
MAC Address: E4:5F:01:14:A4:2A (Raspberry Pi Trading)
Nmap scan report for 192.168.178.25
Host is up (0.027s latency).
MAC Address: 60:33:4B:11:8F:D8 (Apple)
Nmap scan report for iMac-von-pronto.fritz.box (192.168.178.35)
Host is up (0.00028s latency).
MAC Address: 68:FE:F7:0F:64:A9 (Apple)
Nmap scan report for 192.168.178.45
Host is up (0.0013s latency).
MAC Address: AC:6F:BB:B4:05:52 (Tatung Technology)
Nmap scan report for 192.168.178.54
Host is up (0.053s latency).
MAC Address: BC:D0:74:98:02:D5 (Apple)
Nmap scan report for kali.fritz.box (192.168.178.59)
Host is up (0.028s latency).
MAC Address: 60:33:4B:11:8F:D8 (Apple)
Nmap scan report for Graylog2.fritz.box (192.168.178.66)
Host is up (0.00030s latency).
MAC Address: 00:0C:29:21:A1:5E (VMware)
Nmap scan report for 192.168.178.69
Host is up (0.00062s latency).
MAC Address: 00:0C:29:3B:64:86 (VMware)
Nmap scan report for kali.fritz.box (192.168.178.60)
Host is up.
Nmap done: 256 IP addresses (10 hosts up) scanned in 2.64 seconds

Wenn Sie die Liste nur auf die ausgegebenen IP-Adressen reduzieren möchten pipen Sie die Ausgabe in folgenden awk- und sed-Filter:

┌──(pronto㉿kali)-[~]
└─$ nmap -sn 192.168.178.0/24 | awk '/Nmap scan report for/{print $NF}' | sed 's/[()]//g'
192.168.178.1
192.168.178.2
192.168.178.35
192.168.178.60
  • awk '/Nmap scan report for/{print $NF}' filtert die Ausgabe, um nur die Zeilen zu zeigen, die mit Nmap scan report for beginnen, und gibt dann das letzte Feld dieser Zeilen aus ($NF steht für das letzte Feld in awk, welches in diesem Kontext die IP-Adresse ist).
  • sed 's/[()]//g' sucht nach Klammern ( oder ) und ersetzt sie mit nichts (//), d.h., es entfernt sie. Das g am Ende des sed-Befehls gibt an, dass die Ersetzung global innerhalb der Zeile durchgeführt werden soll, für alle Vorkommen der Muster.

Zusammenfassung

Nmap ist ein leistungsfähiges und vielseitiges Werkzeug für Netzwerksicherheit und Netzwerk-Monitoring. Es wird häufig verwendet, um Netzwerke zu scannen und zu analysieren, indem es Informationen über angeschlossene Geräte, verwendete Dienste und offene Ports sammelt. Nmap verwendet eine Vielzahl von Techniken, um Hosts in einem Netzwerk zu erkennen und Sicherheitslücken aufzudecken. Es unterstützt verschiedene Arten von Scans, darunter Stealth-Scans, Port-Scans und Versionserkennung, was es zu einem unverzichtbaren Werkzeug für Systemadministratoren und Cybersecurity-Experten macht.

Loading

Updated on 29. März 2024
Was this article helpful?

Related Articles