|
| |
Scanning
Marc Ruef <marc.ruef@computec.ch>
Im mir sehr gefallenden Schreiben "Das Anti-Hacker-Buch" wird in der
Einführung zum Kapitel zu Scanning eine ziemlich passende Metapher
verwendet: "Wenn man das Footprinting mit dem Ausspionieren eines Gebäudes
auf der Suche nach Informationen vergleichen kann, ist das Scanningmit
dem Abklopfen der Wände zum Auffinden der Türen und Fenster vergleichbar."
Unter Scanning finden sich viele verschiedene Methoden, die auch jeweils
verschiedene Ziele zur Folge haben.
Das kleine Tool namens nmap, welches standartmässig oft
bei verschiedenen Linux-Distributionen installierbar ist - man kann es
sonst auch separat unter http://www.insecure.org/nmap/
herunterladen -, wird hier von mir versucht durchleuchtet zu werden, um
den Umgang damit und die schier erschreckend erscheinenden Funktionen in
vollem Umfang nutzen zu können.
Nmap von Fyodor
bietet ausser den bei den meisten Port-Scanning-Tools implementierten Funktionen
erweiterte TCP- und UDP-Funktionalitäten, die mit einem Portion Wissen
das Leben eines Netzwerk-Administrators extrem erleichtern können.
Selten war ein Netzwerk-Tool erhältlich, welches so viele ausgereifte
Funktionen bietet, wie nmap:
Der Parameter -sP ermöglicht die Degradierung von
nmap zu einem normalen Ping-Befehl um die aktiven Hosts in einem Netzwerk
zu ermitteln. Dabei wird traditionell ein ICMP-ECHO-(Typ 8)-Paket an ein
Ziel geschickt, wobei bei dessen Erreichbarkeit mit einem ICMP-ECHO-REPLY-(Typ
0)Paket als Antwort signalisiert wird. Für Mass-Pings sind andere
Tools für Unix-Derivate nutzbar, die weit effizienter als nmap
an
die Sache herangehen (Zum Beispiel fping, gping und
Hping.).
Der Parameter -sT führt einen normalen TCP-Port-Scan
bei dem eine Verbindung zum Ziel-Port zwangsweise aufgebaut werden muss,
und dadurch die Prozedur des 3-Wege-Handshakes von TCP-Verbindungen durchgeführt
werden muss. Um eine komplette TCP-Verbindung herzustellen muss der Client
als erstes mit der Übertragung eines SYN-Paketes an den Server beginnen.
Jener Quittiert den Empfang mit einem SYN-/ACK-Paket und wartet dann auf
den Erhalt einer weiteren Bestätigung durch ein ACK-Paket von Seiten
des Clients. Diese Scanning-Technik ist sehr leicht zu erkennen, wird standartmässig
von nmap ohne Scan-Technik-Parameter angewandt und kann von jedem
User auf jedes beliebige System ausgeführt werden.
Der Parameter -sS erlaubt es Root auf einem System mit
nmap einen halboffenen Scan durchzuführen. Diese Technik verdient
den Namen daher, da keine vollständige TCP-verbindung zustande kommt.
Stattdessen wird ein SYN-Paket zum Ziel-Port übertragen. Wenn der
Ziel-Port mit SYN/ACK antwortet, kann davon ausgegangen werden, dass der
Port den Listening-Status besitzt. Wenn RST/ACK zurückgegeben wird,
kann mit ziemlicher Wahrscheinlichkeit ein inaktiver Port dadurch angedeutet
worden sein. Das Client-System überträgt nach dem Empfang des
Paketes des Hosts ein RST/ACK-Paket, so dass keine vollständige Verbindung
hergestellt wird. Diese Technik hat den Vorteil, dass sie viel unauffälliger
auf das Ziel-System einwirkt und somit schwieriger zu erkennen ist, da
die meisten Systeme nur vollständige Verbindungen protokollieren.
Interessant ist die arg verfälschte Ausgabe eines TCP-SYN-Stealth-Port-Scans,
wenn er auf ein Windows 98-System ausgerichtet ist.
Der Parameter -sF kann den Network Mapper als Root veranlassen
einen Stealth-FIN-Scan durchzuführen, bei jener Technik ein FIN-Paket
zum Ziel-Port übertragen wird. Nach der Empfehlung von RFC 793 (http://www.ietf.org/rfc/rfc0793.txt)
müsste der Host danach RST für alle geschlossenen Ports zurückgeben.
Dies ist eine weitere Scanning-Möglichkeit, die zur Nutzung den Status
Root voraussetzt. Diese Scanning-Technik funktioniert normalerweise nur
bei UNIX-basierenden TCP-Stacks, was wiedereinmal sehr gut bei der inkorrekten
Implementierung von Microsoft in ihr Windows 98 deutlich wird.
Der Parameter -sX ermöglicht eine Technik, bei der der
Scanner ein FIN-, ein URG- und ein PUSH-Paket zum Ziel-Port schickt. Nach
den Empfehlungen von RFC 792 (http://www.ietf.org/rfc/rfc0792.txt)
müsste der Host RST für alle geschlossenen Ports zurückgeben.
Es sind Root-Rechte für das Durchführen eines solchen Scans von
Nöten. Meistens funktioniert dieser Scan nur bei Systemen mit UNIX-Protokollstapeln;
siehe Windows 98.
Mit dem Parameter -sN führt nmap einen sogenannten
TCP-Null-Scan durch, bei dem alle Flaggen ausgeschaltet werden. Nach den
Empfehlungen von RFC 793 (http://www.ietf.org/rfc/rfc0793.txt)
müsste das Ziel-System RST für alle geschlossenen Ports retournieren.
Um einen TCP-Null-Scan durchzuführen ist der Besitz des Status von
Root nötig. Auch dieser Scan funktioniert meist nur bei Systemen mit
UNIX-IP-Stacks.
Mit dem Parameter -sU führt nmap einen UDP-Port-Scan
durch, bei dem lediglich ein UDP-Paket zum Ziel-Port übertragen wird.
Wenn der Ziel-Port mit der Nachricht "ICMP Port unreachable" den Erhalt
quittiert, ist der Port inaktiv und somit geschlossen. Falls diese ICMP-Nachricht
nicht an den scannenden Clienten zurückgeschickt wird, kann davon
ausgegangen werden, dass der Port horcht. Als erstes muss erwähnt
sein, dass auch diese Scanning-Technik Root-Rechte benötigt. UDP ist
als verbindungsloses Protokoll bekannt und bietet daher nicht so genaue
Transaktionen wie TCP. Aus diesem Grunde hängt die Genauigkeit dieser
Scan-Technik von vielen kleineren Faktoren wie zum Beispiel der Auslastung
des Netzwerks oder den Systemressourcen ab. Desweiteren kann sich ein UDP-Scan
extrem in die Länge ziehen, wenn im grossen Umfang Paketfilter eigesetzt
werden sollten. UDP-Scans über das Internet sind eine sehr undankbare
Aufgabe. Sehr interessant ist, dass der Scan einwandfreie Informationen
über Microsoft Windows 98 offenbart, jedoch den User mit einer absolut
korrupierten Ausgabe bei Scans, die auf BeOS 4.5 losgelassen werden, konfrontiert
wird.
Mit dem Nutzen des Parameters -b <ftp_relay_host> greift
nmap auf eine Technik zurück, die von Hobbit in seiner Veröffentlichung
bei Bugtraq 1995 (http://geek-girl.com/bugtraq/1995_3/0047.html)
bekannt gemacht hat. In jenem Dokument wird auf eine Schwäche des
FTP-Protokolls hingewiesen, welches in RFC 959 (http://www.ietf.org/rfc/rfc0959.txt)
näher erläutert wird. Im Grunde genommen ist diese Technik eine
hinterlistige Methode, die versucht Verbindungen zu einem FTP-Server durch
den Missbrauch des Ports für FTP-Proxy-Verbindungen zu vertuschen.
Wie Hobbit relativ detailliert in jenem Bericht umschreibt, können
solche Angriffe für die Übermittlung von fast nicht zurückverfolgbaren
Mails und News, für Attacken auf beliebige Systeme durch das Füllen
von Festplatten oder das Durchbrechen von Firewalls genutzt werden. Diese
Scanning-Technik ermöglicht das erfolgreiche und graziöse Vertuschen
der Scan-Herkunft. Zugleich sind hohe Anforderungen für die Durchführung
dieser Funktion nötig: Der FTP-Server ein beschreibbares Verzeichnis
haben sowie falsche Port-Informationen mit dem PORT-Befehl von nmap
erlauben.
Neben diesen Anforderungen an den Host kann ein solcher Scan sehr zeitintensiv
sein.
Mit -O wird ein sogenannter Fingerprint des gescannten Systems
angefertigt, wodurch das verwendete Betriebssystem mit ziemlicher Wahrscheinlichkeit
korrekt ermittelt werden kann. Diese Option erwartet verständlicherweise
Root-Privilegien, da mit dem gewussten Nutzen dieser Option einem Angreifer
der erste Schritt für das Eindringen in ein System im Netzwerk ermöglicht
wird. Es kommt nahezu nie vor, dass ein falsches Betriebssystem prognostiziert
wird, solange die Protokollstapel beim Host nicht manipuliert wurden. Es
kann höchstens vorkommen dass nmap dem Fingerabdruck des
Computers kein Betriebssystem zuordnen kann. Sollte es einem Endanwender
von nmap möglich sein das Betriebssystem zu identifizieren, kann er
per CGI-Script auf http://www.insecure.org/cgi-bin/nmap-submit.cgi
aktiv zur Perfektionierung von nmap beitragen. Mit Eingriffen
in die Handhabung des Betriebssystems bei Verbindungs-Anforderungen und
direkt beim Protokollstapel könnte ein anderes Betriebssystem vorgetäuscht
werden. Diese Aktion ist jedoch mit dem bitteren Beigeschmack eines möglichen
Performance- und Stabilitäts-Verlusts des Betriebssystems in Angriff
zu nehmen.
Mit dem Parameter -I wird die identd-Information laut RFC 1413
(http://www.ietf.org/rfc/rfc1413.txt)
über die laufenden Prozesse auf dem Ziel-System eingeholt. Wie die
Funktion zum erstellen von Fingerprints ist auch diese Option in den Händen
eines potentiellen Eindringlings ungern gesehen und erfordert daher Root-Rechte
zur Ausführung.
Eine für potentielle Angreifer oft gern genutzte Funktion ist das
angeben einer falschen Source-IP-Adresse bei SYN- oder FIN-Scans, wodurch
das Herausfinden der Scan-Quelle erschwert werden soll. Um dies zu realisieren
wird auf -S <IP-Adresse> zurückgegriffen. Diese wirklich
exzellent ausgedachte und durchgesetzte Funktion kann unter Umständen
auch für Denial of Service-Attacken genutzt werden, falls ein Host
angegeben wird, der nicht ansprechbar ist.
| |
Scanning |
|
Ihr Name: Besucher (nicht angemeldet).
Online: 9 aktive User.
|
|
Anmelden | Abmelden |
|
|
Benachrichtigen bei Änderungen: |
|
|
|
|
Antivirus-Infos: |
|
|