Scanning 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 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 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. ----------------------------- Copyright by Convex -----------------------------