Risiko Netzwerk – Teil 4: Verfügbarkeits-Prüfung und Net-Scans


Aus unterschiedlichen Gründen müssen Netzwerke einmalig oder sporadisch gescannt werden. So lässt sich beispielsweise über einen längeren Zeitraum eine Auswertung über noch genutzte und freie IP-Adressen fahren, um damit sinnvoll zu haushalten. Es gibt allerdings auch Leute, die aus nicht ganz so alltäglichen und humanen Gründen Netzwerke scannen. Im folgenden Post berichte ich über grundlegende Scan-Techniken und deren Einsatz.

Allgemeine Netzwerk-Scan-Techniken

Als Net-Scanning bezeichnet man den Vorgang, möglichst viele oder gar alle Computer eines Netzwerkes zu identifizieren und zu verifizieren. Dies beinhaltet auch die Bestimmung der darauf laufenden Dienste und die dafür verwendeten Ports. Folgende Informationen sind Ziel eines solchen Angriffs:
– IP-Adressen
– TCP/UDP Portnummern und aktive Dienste
– Die verwendete Systemarchitektur (x86, x64, PowerPC, Sparc)
– Das Betriebssystem (Kernelversion, OS-Version)
Ein System- bzw. Network-Profiling ist meist der vorhergehende Schritt beim Network-Scanning. Dabei werden allgemeine Informationen kompakt zusammengefasst. Zum Beispiel könnte ein solches Profil einen geographischen Standort, Namen von Angestellten/Nutzern, Telefonnummern, IP-Adressen (Adressbereiche, Subnetze und VLANs) und Dienste wie DNS-Server, Mail-Server oder Web-Server enthalten. Zudem werden meist die Funktionen der einzelnen Systeme festgehalten und die Laufwege der Datenströme analysiert.
Manche Security-Scanner bieten zudem feinere Techniken zum Ausspionieren sicherheitsrelevanter Informationen eines Systems. Zu den daraus gewonnenen Informationen zählen:
– Benutzer- und Gruppennamen (AD oder LDAP)
– Schwachstellen, die genutzt werden können
– Routing-Tabellen
– SNMP-Informationen

Online-Prüfung via Ping/ICMP-Echo

Die Online-Prüfung ist nicht zwingend ein Angriff. Ziel dieser Methode besteht darin, herauszufinden, welche Rechner des Opfernetzwerkes (eines bestimmten IP-Bereichs oder Netzes) gerade aktiv sind.
Dies ist möglich durch
– ICMP-Echo-Anfragen (Ping, Broadcast)
– UDP /TCP Sweeps
Beide Methoden können via Kernelparameter und Paketfilter-Firewall deaktiviert werden. Nachteil ist dann nur, dass man auch als wartender Techniker keinen Überblick hat, ob das System grade online ist, oder nicht.

Das Port-Scannen

Nachdem sich die Verfügbarkeit der Systeme mittels Online-Prüfung herauskristallisiert hat und die aktiven Systeme ermittelt wurden, kann nun ins Detail pro System gegangen werden. Jeder Dienst, jedwede Kommunikation nach außen muss über entsprechende Ports stattfinden. Das sind meist TCP/UDP oder GRE-Ports. Am häufigsten davon sind jedoch verbindungsbasierte (TCP)-Ports und verbindungslose (UDP)-Ports. UDP prüft die Verbindung während des Datenaustausches nicht, wohingegen TCP auf sogenannten Handshakes basierend den Aufbau der Verbindung prüft. Meist wird der Status von Ports mittels TCP-SYN-Anfragen herausbekommen. Dabei wird die Verbindung über einen speziellen Port angefragt, allerdings findet kein Nutzdatenaustausch statt. Eine Entdeckung eines solchen „Angriffs“ ist aufgrund der nicht aufgebauten Verbindung zum Datenaustausch sehr schwierig.  Zudem werden die Anfragen nur sehr selten in Logs dokumentiert. Auch zu Test-Zwecken werden Port-Scans durchgeführt. Eine weiterentwickelte Form der Scans sind die sogenannten „Stealth Scans“. Dazu zählen unter Anderem der XMAS-Scan, der Null-Scan, SYN/ACK-Scans und FIN-Scans, um nur ein paar Methoden zu nennen. Dabei werden je nach Methode z.B. die Flags unterschiedlich gesetzt.
Was kann man dagegen tun? Es gibt Port-Scan-Detektoren wie scanlogd und PortSentry. Diese sind allerdings keine hundertprozentige Garantie, dass niemand nach Ports scannen kann und wird. Wie so oft gibt es hier auch Mittel und Wege, die Erkennung zu umgehen. Ein hundertprozentiger Schutz vor Portscans kann nicht gewährt werden – umso wichtiger ist es, dass so wenig Ports wie möglich offen sind und der Traffic über Application-Filter-Firewalls geschickt wird.

Nmap


Der Netzwerk-Scanner nmap unterstützt zahlreiche Praktiken zum Scannen von einzelnen Rechnern oder vollständigen Netzwerken. Er bietet nebst den oft gefährlichen Features auch viele nützliche Funktionen für einen sinnvollen Einsatz. Denkbar ist zum Beispiel die Überwachung der offenen Ports aller Netzwerkrechner oder das automatische Auslösen eines Alarms, wenn ein neuer Rechner ans Netz angeschlossen wird. Sozusagen ein Schutz vor zuvor beschriebenen Port-Scans.

Betriebssystemerkennung

Softwareschwachstellen sind meist an das verwendete Betriebssystem und die verwendete Architektur gebunden, weshalb Informationen darüber für den Angreifer äußerst wertvoll sind.
Einige Dienste – unter Anderem auch telnet, ssh oder Web-Dienste geben auch nicht autorisierten Benutzern Betriebssysteminformationen. Sie können dies einfach nachvollziehen:
user@linux $ telnet [IP des Opfers] [Port]
Trying [IP des Opfers]…
Connected to ha-42.web.de.
Escape character is ‚^]‘.
user@linux $ get
http/1.0 400 Bad Request
Date: Wed, 19 Jan 2000 15:33:21 GMT
Server: Apache/2.1 (Unix) (debian/Linux)
Connection: close
Aus der vorletzten Ausgabezeile ist ersichtlich, dass es sich um einen Linux Rechner (debian) handelt. Queso oder nmap sind zwei Beispiele für Betriebssystemerkennungsprogramme. Sie entnehmen Standardabfragen die essentiellen Informationen und bereiten sie etwas übersichtlicher auf. Dagegen unternehmen kann man nichts – außer so wenig Dienste, wie nötig auf web-verfügbaren Systemen zu nutzen und ggf. über Portforwarding und eine Application-Layer-Firewall die Hürde etwas höher setzen.

Firewalking

Hinter diesem bildhaften Namen verbirgt sich eine Technik, um an Informationen von Netzwerken zu erlangen, die hinter einer Firewall zu finden sind. David Goldsmith und Michael Schiffmann haben diese Technik im Oktober 1998 veröffentlicht. Firewalking nutzt den Standardbefehl traceroute, der eigentlich entwickelt wurde, den Weg einer TCP-Verbindung aufzuzeigen. Werden Zielports definiert, kann diese Standardfunktion Firewalls überwinden und die Hops hinter der Firewall offenbaren.

Bisher ist gegenüber dem Firewalking nur der Einsatz einer Application-Inspection-Firewall bekannt.

Inverse Mapping

Mit Inverse-Mapping-Techniken können Informationen über solche Rechner und Netzwerke erhalten werden, die über andere Wege als unerreichbar gelten (z.B. Rechner eines internen Netzwerkes).
Ein Beispiel dafür sind ftp-Bounce-Angriffe:
Ein Angreifer nutzt einen normalen ftp-Client und verbindet sich mit dem ftp-Server des Opfers. Er benutzt den ftp-Befehl mitsamt Portangabe um die IP-Adresse und die Portnummer des anzugreifenden Dienstes anzugeben. Der Angreifer sendet nun in Kommandos, die der attackierte ftp-Dienst versteht, in Form von Dateien an den ftp-Server und dieser leitet die empfangenen Befehlssätze einfach an den verbundenen Dienst weiter. Steht der ftp-Server hinter einer Firewall, ist es ach über diesen Weg möglich, Informationen zum betroffenen Netzwerk zu erhalten. Das Vorgehen ist erheblich aufwendiger als die vorher genannten Verfahren, was in manchen Situationen einen Angreifer allerdings nicht grundlegend von einem Angriff über diese Methode abhält.

Auch wenn ein System als grundlegend sicher gilt, bedeutet dies nicht, dass niemand ungewollten Zugriff darauf erhalten kann. Die Absicherung von Datenübertragungswegen sollte deshalb die höchste Priorität nebst der Performance haben, wenn es an die Realisierung eines Netzwerkkonzeptes geht.

Fehlen themenrelevante Punkte oder hat Euch der Post einfach gefallen? Dann schreibt´s in die Kommentare!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.