computerseite-spezial.de

handverlesene Infos zu Linux, FreeBSD und OpenSolaris

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size
Sie sind hier: Startseite Besondere Programme Der Portscanner Nmap – Eine Einführung

Der Portscanner Nmap – Eine Einführung

Dieser Beitrag ist erschienen in freiesMagazin (Link) 05/2010 / Lizenz: GNU Free Documentation License (GNU FDL) (Link) / Autor: Thorsten Töpper.

Wenn Sie diesen Artikel weiterverwenden möchten, beachten Sie bitte die Lizenzbedingungen. Vielen Dank.




Der Portscanner Nmap – Eine Einführung

von Thorsten Töpper


W
er mit Netzwerken zu tun hat, wird früher oder später über den Begriff Portscanner stolpern – jene Softwaregattung, welche es einem ermöglicht herauszufinden, auf welchen Ports sein eigenes System Dienste bereitstellt und zu welchen Ports dieses Systems man Verbindung aufnehmen kann. Die Verwendung eines Portscanners zum Überprüfen von eigenen Netzwerken ist eine wichtige Sache. Dabei ist die Verwendung gegen ein eigenes System nicht verboten [1] [2]. Dieser Artikel stellt den bekannten Portscanner Nmap vor und führt in die Grundlagen seiner Bedienung ein.

Installation

Es gibt kaum eine Linuxdistribution, bei der es nicht möglich ist, Nmap mittels der Paketverwaltung über das meist gleichnamige Paket nmap zu installieren. Wer Nmap für Windows benötigt oder das Programm aus den Quellen heraus installieren muss, findet dies auf der Projektseite [3]. Generell sollte man Nmap aber mithilfe der Paketverwaltung installieren.

Da der Scanner weit mehr Funktionen bietet als das reine Scannen von Systemen, hat er auch einige zusätzliche Abhängigkeiten mit den Paketen openssl, libpcap und pcre. Allerdings liegen die Pakete libpcap und pcre in angepasster Form den Nmap-Quellen bei, eine weitere Installation ist also nicht zwingend notwendig.

Wer die grafische Oberfläche Zenmap [4] nutzen möchte, benötigt außerdem python und pygtk.

Erste Schritte

Für einen einfachen Scan der ersten 1000 Ports genügt der Aufruf von Nmap mit dem gewünschten Ziel. Dieses kann auf verschiedene Arten angegeben werden: als einfache IP-Adresse, als Host oder auch als IP-Bereich. Bei IP-Adressen gelten nach wie vor IPv4-Adressen als Standard; soll eine IPv6-Adresse gescannt werden, ist die Verwendung des Schalters -6 nötig. Allerdings sind noch nicht alle Funktionen des Scanners IPv6-fähig; außerdem muss das System IPv6 unterstützen. Einen Scan des eigenen Systems kann man über einen der folgenden Aufrufe durchführen:

$ nmap 127.0.0.1
$ nmap -6 ::1
$ nmap localhost
$ nmap 127.0.0.1-254

Dabei werden mit dem letzten Befehl die Adressen von 127.0.0.1 bis 127.0.0.254 überprüft.

Die Ausgabe für einen IPv6-Scan des Localhosts mittels nmap -6 ::1 kann beispielsweise so aussehen:

$ nmap -6 ::1
Starting Nmap 5.21 ( http://nmap.org ) at 2010-02-28 02:08 CET
Nmap scan report for ::1
Host is up (0.00026s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
631/tcp open  ipp

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

Die Ausgabe eines Scans mit der IPv4-Adresse 127.0.0.1 auf demselben System könnte dies hier liefern:

$ nmap 127.0.0.1
Starting Nmap 5.21 ( http://nmap.org ) at 2010-02-28 02:11 CET
Nmap scan report for localhost.localdomain (127.0.0.1)
Host is up (0.00024s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
631/tcp open  ipp

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

Wie man den Daten entnehmen kann, ist der SSH-Dienst dieses Systems ausschließlich über IPv4 zu erreichen. Man sieht also, dass den Ergebnissen unterschiedlicher Scans desselben Systems schon Informationen über die Konfiguration einzelner Dienste entnommen werden können.

Systeminformationen auslesen

Anders als die meisten Portscanner bietet Nmap die Möglichkeit, weitere Informationen über das System und die darauf verwendeten Dienste auszulesen.

Für das Auslesen der Dienstversionen wird der Schalter -sV verwendet, für das Auslesen der Informationen über das Betriebssystem der Schalter -O, hierfür muss die Ausführung mit Rootrechten erfolgen:

# nmap -O -sV 127.0.0.1
Starting Nmap 5.21 ( http://nmap.org ) at 2010-02-28 03:22 CET
Nmap scan report for localhost.localdomain (127.0.0.1)
Host is up (0.000027s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE VERSION
22/tcp  open  ssh     OpenSSH 5.3 (protocol 2.0)
631/tcp open  ipp     CUPS 1.4
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.19 - 2.6.31
Network Distance: 0 hops

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

Zu scannende Bereiche festlegen

Für die Festlegung der zu scannenden Ports gibt es verschiedene Argumente für den Schalter -p. So scannt man die Ports 1000 bis 1010 mittels:

$ nmap -p 1000-1010 127.0.0.1

Möchte man gezielt eine Liste einzelner Ports scannen, trennt man diese durch Kommata:

$ nmap -p 22,80,443 127.0.0.1

Möchte man alle 65 536 Ports scannen, setzt man einen Bindestrich direkt hinter den Schalter:

$ nmap -p- 127.0.0.1

Darüber hinaus bietet Nmap noch einige weitere Möglichkeiten zur Wahl der zu scannenden Ports, wie den Schalter -F, mit welchem die 100 Ports, welche am wahrscheinlichsten offen sind, gescannt werden. Zum Absichern des eigenen Systems sind diese aber nicht zwingend nötig.

Scantimings und Host Discovery

Um die eigene Firewall zu testen, sollte man sein System mit unterschiedlichen Timings scannen. Nmap liefert hierfür den Schalter -Tx, wobei x für eine Ziffer von 0 bis 5 steht. Die Ziffern stehen für:

# Alias
0 paranoid
1 sneaky
2 polite
3 normal
4 aggresive
5 insane

Ein sogenannter Quick Scan erfolgt mittels

$ nmap -T4 -F 127.0.0.1

Man muss nun nicht unbedingt alle sechs Timings ausprobieren, aber ein Versuch mit zwei unterschiedlichen ist dennoch anzuraten, um die Reaktion der Firewall in Erfahrung zu bringen.

Da manche Systeme Pings blockieren, ist es ratsam, den Schalter -PN zu nutzen, woraufhin Nmap jedes System scannt, ungeachtet dessen, ob dieses auf einen Ping reagiert.

Mehr Informationen zu den verschiedenen Timing-Optionen findet man auf den Nmap-Projektseiten [5].

Grafische Oberflächen

Da man als normaler Heimanwender nicht sonderlich oft ein System absichern muss, aber auch nicht unbedingt die Manpage nach passenden Optionen durchsuchen möchte, ist es ratsam, die Nmap zugehörige GTK-Oberfläche Zenmap zu nutzen. Es vereinfacht die Bedienung enorm und führt auch schnell in die weitere Bedienung des Scanners ein.

Für Qt-Nutzer gibt es mit Nmapsi [6] ein Qt-Gegenstück, dieses muss jedoch gesondert installiert werden.

Weiterführende Literatur

Dieser Artikel soll nur als einfache Einführung in die grundlegende Verwendung dieses doch sehr umfangreichen Programms dienen. Eine komplette Beschreibung würde sicherlich eine ganze Ausgabe von freiesMagazin füllen.

Wer sich weiter mit Nmap auseinandersetzen möchte, sei zuerst einmal auf die sehr ausführliche und übersichtliche Manpage [7] verwiesen, des Weiteren findet man auf der Projektseite auch Informationen zum Buch [8] über dieses Programm sowie Teile des englischen Originals zur Lektüre im Browser.

Links

[1] http://www.bundesverfassungsgericht.de/pressemitteilungen/bvg09-067.html

[2] http://www.pro-linux.de/NB3/artikel/2/400/bundesverfassungsgericht-und-der-hackerparagraph-202.html

[3] http://nmap.org/download.html

[4] http://nmap.org/zenmap/

[5] http://nmap.org/book/man-performance.html

[6] http://www.nmapsi4.org/

[7] http://linux.die.net/man/1/nmap

[8] http://www.nmap.org/book/

 

Autoreninformation

Thorsten Töpper studiert Informatik Bachelor und ist in seiner Freizeit als Trusted-User bei Arch Linux aktiv. Durch sein reges Interesse an Netzwerken und Firewalls verwendet er Nmap regelmäßig in seiner Freizeit.



You are here: