|
|
Dieses Dokument ist verfübar auf: English Castellano Deutsch Francais Nederlands Portugues Russian Turkce |
von Danilo Lujambio Inhalt: |
Zusammenfassung:
Warum sind Scanner so wichtig für die Sicherheit eines Netzwerkes? Grundsätzlich weil sie das wichtigste Werkzeug für die Leute sind, die ein System angreifen wollen. Die Vorbereitung eines Angriffs durch einen Cracker könnte z.B. folgendermaßen aussehen:
Für einen Systemadministrator ist es wichtig, das eigene Netzwerk zu scannen und die dann aufgezeigten Sicherheitslöcher zu schließen bevor ein Anderer mit weniger guten Absichten das Netz scannt.
Es gibt verschiedenste Scanningwerkzeuge zu diesem Zweck. Dieser Artikel beschäftigt sich aber nur mit nmap. Nmap ist einer der besten Scanner- und Sicherheitswerkzeuge.
Nmap erlaubt dem Systemadministrator Netzwerke zu scannen, um zu erfahren, welche Server aktiv sind und welche Dienste sie anbieten. Zu diesem Zweck bietet Nmap verschiedene Scantechniken an. Dieser Artikel beschäfigt sich mit einigen von ihnen.
In diesem Artikel werden einige der gängigen Strategien, die Nmap bietet, gezeigt. Gleichzeitig wird gezeigt, wie sich der Scannvorgang auf dem Zielrechner ausdrückt.
Nmap kann man über www.insecure.org bekommen. Führe nach dem Download folgendes aus:
tar zxvf nmap-2.30BETA17.tgz cd ...../nmap-2.30BETA17/ ./configure make make installund es ist installiert.
Die Ausgabe von Nmap ist normalerweise eine Liste von "interessanten" (aktiven) Ports auf dem gescannten Server. Diese Ports werden mit dem Namen des Dienstes, dem Status und dem Protokoll ausgegeben.
Einfaches Nmap-Scannen kann mit der Option -sT erledigt werden. Es basiert auf der Methode der Verbindungserstellung des TCP-Protokolls, bekannt als Drei-Wege-Handshake. Die Abfolge [1] kann grob wie folgt beschrieben werden:
Dieser Weg des Scannens hat zwei Vorteile
Wir verfolgen die von NMap angewandte Prozedur mittels des Programmes tcpdump auf dem Zielserver. NMap wird auf dem Rechner 192.168.255.20 ausgeführt und zeigt auf den Server house2.xxx.xxx.xxx über ein Ethernet Netzwerk.
1) 08:24:18.393108
192.168.255.20.1024 house2.xxx.xxx.xxx.653: S
2632227152:2632227152(0) win 16060 < mss
1460,sackOK,timestamp 232602[|tcp] (DF) 2) 08:24:18.393167 house2.xxx.xxx.xxx.653 192.168.255.20.1024: R 0:0(0) ack 2632227153 win 0 3) 08:24:18.393227 192.168.255.20.1025 house2.xxx.xxx.xxx.6141: S 2644226118:2644226118(0) win 16060 < mss 1460,sackOK,timestamp 232602[|tcp] (DF) 4) 08:24:18.393258 house2.xxx.xxx.xxx.6141 192.168.255.20.1025: R 0:0(0) ack 2644226119 win 0 5) 08:24:18.453343 192.168.255.20.1298 house2.xxx.xxx.xxx.pop3: S 2640612362:2640612362(0) win 16060 < mss 1460,sackOK,timestamp 232608[|tcp] (DF) 6) 08:24:18.453542 house2.xxx.xxx.xxx.pop3 192.168.255.20.1298: S 1658259980:1658259980(0) ack 2640612363 win 16060 < mss 1460,sackOK,timestamp 243353[|tcp] (DF) 7) 08:24:18.458667 192.168.255.20.1298 house2.xxx.xxx.xxx.pop3:. ack 1 win16060<nop,nop,timestamp 232609 243353 (DF) 8) 08:24:18.461280 192.168.255.20.1298 house2.xxx.xxx.xxx.pop3: F 1:1(0) ack 1 win 16060 < nop,nop,timestamp 232609 243353 (DF) |
Dieser Durchgang erlaubt NMap zu erkennen, dass port 110 (pop3) von house2 ein aktiver Port auf diesem Server ist.
Wie oben schon angemerkt, ist dieser Scannvorgang sehr einfach zu entdecken. Je nach Konfiguration von syslog.conf könnte die Verbindung aus Zeile 5 bis 8 folgendermaßen in der /var/log/messages erscheinen:
May 6 08:24:01 house2 in.pop3d[205]: connect from root@192.168.255.20
Diese Scanmethode wird angewandt, wenn NMap mit der Option -sS ausgeführt wird. Die benutzte Technik basiert auf "halb-offenen" Verbindungen: Wir senden ein SYN-Segment und wenn ein ACK-Segment darauf empfangen wird, so haben wir einen aktiven Port und wir schließen die Verbindung mit einem RESET-Segment. Wenn wir statt eines ACK- ein RST-Segment empfangen, so haben wir einen nicht aktiven Port. Diese Methode hat den Nachteil, dass ROOT-Rechte auf dem angreifenden Rechner vorhanden sein müssen. Der Vorteil ist die schwere Entdeckbarkeit dieser Mehode.
Im folgenden sehen wir einen vergleichbaren Scanvorgang mit NMap. Wir analysieren ihn wieder mit tcpdump
1) 22:25:45.856936 192.168.255.20.40175
house2.tau.org.ar.946: S 1292785825:1292785825(0) win
3072 |
3) 22:25:45.970365
192.168.255.20.40175 house2.tau.org.ar.pop3: S
1292785825:1292785825(0) win 3072 4) 22:25:45.976022 house2.tau.org.ar.pop3 192.168.255.20.40175: S 185944428:185944428(0) ack 1292785826 win 16080 < mss 536 (DF) 5) 22:25:45.979578 192.168.255.20.40175 house2.tau.org.ar.pop3: R 1292785826:1292785826(0) win 0 |
Dieser Scanvorgang hinterläßt keinen Eintrag in der Logdatei /var/log/messages, wie es der vorhergehende Versuch gemacht hat.
Diese Scanmethode basiert darauf, dass nicht-aktive Ports auf ein FIN-Segment mit einem RST-Segment antworten, aktivierte Ports diesen Befehl aber einfach ignorieren. Die aktivierten Ports sind also die, die nicht antworten. Mit dieser Methode können keine Server mit einem Betriebssystem von Microsoft gescannt werden, da diese eine nicht standard-konforme Implementation von TCP-Operationen haben.
Es gibt 3 Formen dieser Methode in NMap (-sF, -sX und -sN). Wir werden die Option -sF wie in den vorhergehenden Optionen analysieren.
1) 06:50:45.643718 192.168.255.20.35600
casahouse.tau.org.ar.864: F 0:0(0) win 2048 |
In den Zeilen 1 und 2 wird das FIN-Segment übertragen (beachte das F nach der 864 in Zeile 1). Daraufhin antwortet der Server house2 mit einem RST-Segment. Daraus schließt NMap, dass dieser Port nicht aktiv ist.
3) 06:50:47.933227 192.168.255.20.35600 >
house2.tau.org.ar.pop3: F 0:0(0) win 2048 |
Zeile 3 und 4 nehmen wieder den POP3-Port als Beispiel. In Zeile 3 sehen wir ein FIN-Segment, auf das keine Antwort gegeben wird. In Zeile 4 wird überraschender Weise noch einmal ein FIN-Segment geschickt, auf das wieder keine Antwort kommt. Dies zeigt NMap, dass dieser Port aktiv ist.
In dem Abschnitt über den "Drei-Wege-Handshake von TCP" wurde zuerst eine Methode gezeigt, die in den Logdateien nachzulesen ist. Danach wurden mit den Optionen -sS und -sF zwei Methoden gezeigt, die nicht mitgeloggt werden. Wir können tcpdump dazu benutzen, auch diese Angriffe zu erkennen. Tcpdump erzeugt aber so viele Informationen, dass diese nicht mehr gespeichert oder überprüft werden können. Im folgenden sind einige Ausdrücke aufgeführt, die wie Filter für tcpdump wirken. Damit werden die Informationen von tcpdump überschaubar und einfacher zu analysieren.
Zum besseren Verständnis der Ausdrücke wird im folgenden das Format eines TCP-Paketes gezeigt [2].
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Quellport | Zielport | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequenznummer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgement Nummer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Offset | Reserver |U|A|P|R|S|F| Window | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksumme | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Optionen | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Daten | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Wir sehen, dass das 13te Byte das Flag-Byte ist, welches
die Art des Paketes (SYN, FUN, etc.) bezeichnet. Mit diesem
Wissen und dem UND (&) Operator können wir Masken für die
aktiven Bits konstruieren. Daraus ergeben sich Ausdrücke wie
tcpdump ' tcp[13] & 7 != 0 and dst 192.168.255.20 ' >
/tmp/out7
, das den Eingang mit den Bits R, S oder F (Maske ist 00000111)
und dem Ziel 192.168.255.20 aktiv lässt und den Rest einfach ignoriert.
Mit
tcpdump ' tcp[13] & 1 != 0 and dst 192.168.255.20 ' >
/tmp/out1
überwachen wir die Pakete mit aktivem FIN-Bit (Maske 00000001).
Dies kann zur Entdeckung von Scannvorgängen mit der Option -sF
benutzt werden. Und mit
tcpdump ' tcp[13] & 2 != 0 and dst 192.168.255.20 ' >
/tmp/out2
bekommen wir alle Pakete mit aktivem SYN-Bit. Dies kann zum Entdecken
von Scannvorgängen mit der Option -sS dienen.
Für die Option -sS gibt es aber auch ein spezielles Programm zur Entdeckung dieser Angriffe. Mehr unter [3].
Programme wie NMap sind sehr nützlich, um die Systemsicherheit in Netzwerken zu verbessern. Dies geschieht sozusagen durch die Augen des Hackers. Wir haben einen kleinen Teil aus diesem Bereich gezeigt, doch ich hoffe, dass damit das Scannen ein wenig besser verstanden werden kann.
Anmerkung des Übersetzers:
Das Scannen von fremden Servern kann in Deutschland eine Straftat darstellen.
Dies solltet ihr beachten, wenn ihr diese Anleitung zum Scannen fremder
Server benutzt.
[1] W. Richard Stevens Unix Network Programming Volume 1
[2] RFC 793
[3] siehe nmap Dokumentation
|
Der LinuxFocus Redaktion schreiben
© Danilo Lujambio, FDL LinuxFocus.org Einen Fehler melden oder einen Kommentar an LinuxFocus schicken |
Autoren und Übersetzer:
|
2001-07-10, generated by lfparser version 2.17