Netzwerkanalyse, Fehlersuche, Testberichte
Home / News
Netzwerkanalyse
Grundlagen
Verkabelung
Erste Schritte
Baselining
Let's sniff
Tools
Auswerten/Filtern
Typische Probleme 1
Typische Probleme 2
Sicherheit
Bücher
Tutorials
Cacti
DSL einrichten
DynDNS einrichten
m0n0wall | pfSense
Nmap
VirtualBox
Wireshark
FAQ
Know How
Testberichte
Hardware-DB
Netzwerklexikon
Links / Service
Suche
Kontakt
Impressum
Feedback
Sitemap
Netzwerkanalyse

Let's sniff

So, los geht's. Mit Bordmittel konnte der Fehler nicht beseitigt werden und wir packen unseren Sniffer aus. Aber wie kommen die interessanten Daten nun zum Sniffer?

Wie kommen die Daten zum Sniffer?

In den heutigen geswitchten Netzen kommen die interessanten Daten nicht unbedingt ohne mein Zutun am Sniffer vorbei. Ein Switch leitet nur Broadcasts und Frames mit unbekanntem Empfänger an alle Ports weiter. Hat er die MAC-Adresse des Empfängers in seiner Tabelle, werden die Frames nur an einen Port gesendet.

Shared Media / Hub

An einem Hub ist es naturgemäß am einfachsten. Alle Daten kommen an allen Ports vorbei. Sniffer einstecken und es geht los. Der Admin kann zum sniffern auch einen Hub in die betreffende Verbindung einschleifen. Das funktioniert leider nur bei Halfduplex. Eine Fullduplex-Verbindung wird damit auf Halfduplex gezwungen und unter Umständen noch zusätzlich Fehler erzeugen. Allerdings bekommt der Sniffer an einem Hub (und mit der richtigen Netzwerkkarte) aber auch wirklich alle Frames an den Sniffer.

Vorsicht bei modernen Hubs die 10 Mbit/s und 100 Mbit/s unterstützen. Diese enthalten zwei getrennte Backplanes die dann über einen Switch verbunden sind. Hier sehen also nur Hosts mit der selben Geschwindigkeit die Daten der jeweils anderen.

Wiretaps und Splitter

Um den Traffic einer Fullduplex Verbindungen aufzuzeichnen, ist ein Splitter recht nützlich. Der Splitter wird wie ein Hub in die Verbindung eingeschliffen und ist völlig transparent. Splitter gibt es für alle Medien von 10BaseT bis Gigabit Ethernet.

Prinzipdarstellung eines Splitters

Prinzipdarstellung eines Splitters

Bei einem Fullduplex-Link fallen dann 2 mal 100 Mbit/s an. Dazu wird ein Protokollanalyser mit 2 Eingängen (z.B. Network General Sniffer Hardware) benötigt. Im Normalfall tut es natürlich auch ein PC mit zwei Netzwerkkarten und ein nachträglicher Merge der Tracefiles mit mergecap von Ethereal.

Von NetOptics gibt es einen 10/100 BASE T Port Aggregator Tap. Dieser erlaubt das Mitschneiden von Vollduplex-Links mit einer einzigen Netzwerkkarte. Deutscher Distributor von NetOptics ist die Firma systeam (www.systeam.de)

Taps gibt es von einigen weiteren Anbietern:

NetOptics (www.netoptics.de)
Network Critical (www.networkcritical.co.uk)
Finisar (vormals Shumiti, www.finisar.com)

ein Tap, Zigarrenkiste mit 4 RJ45-Buchsen

100BaseT-Tap von NetOptics

In Deutschland werden diese Taps von

BlueNet (www.bluenet.de)
Synapse (www.synapse.de) und
Allmos Elektronik (www.allmoselectronic.de)

vertrieben. Los geht der Spaß bei ca. 500 Euro für einen 100BaseT-Tap.

Network General vertreibt für seinen Sniffer auch einen Tap. Bei Cisco gibt es als Zubehör zur SwitchProbe verschiedene Taps. Und wer noch 10Base5 im Einsatz hat kann natürlich einen Vampire Tap einsetzen.

Monitor Port, Portspiegelung

Nahezu alle Hersteller bieten an ihren Switchen eine Monitorfunktion an. Diese erlaubt es, den Traffic eines Ports auf einen anderen Port zu spiegeln. Mit diesem Port wird der Sniffer verbunden.

Der Monitor Port wird auch Mirror Port, SPAN (Switch Port Analyser) Port oder Maintenance Port bezeichnet.

In den meisten Fällen erspart einem der Monitor Port den Einsatz eines Taps. Allerding werden bei fast allen Herstellern nicht alle Frames zum Monitor Port gespiegelt. Defekte Frames werden nicht an den Monitor Port übertragen. Oft werden auch nur die Frames eines VLANs gespiegelt. Und bei einer Fullduplex-Verbindung können nur 100 Mbit/s am Monitor Port ankommen obwohl ja 200 Mbit/s möglich sind.

Tip: Um auf einem Cisco Catalyst 2900 oder 3500 einen Port zu spiegeln, werden die folgenden Kommandos benötigt:

conf t
int fa0/7           ! auf diesen Port (fa0/7) kommt der Sniffer
port monitor fa0/2  ! und dieser Port (fa0/2) wird gespiegelt
end

! Zur Kontrolle dient das Kommando

show port monitor

! und deaktiviert wird der Spiegelport mit:

conf t
int fa0/7			
no port monitor
end

Wichtig ist dabei, dass sich beide Ports im selben VLAN befinden.

Der Administrator sollte immer darauf achten, daß der Monitor Port genügend Bandbreite hat. Also keinen 100BaseT-Port auf einen 10BaseT-Port spiegeln. Ansonsten können zwei Probleme auftreten:

1. Der Switch spiegelt nur einen Teilmenge der Frames. Damit ist der Trace vollkommen wertlos.

2. Obwohl es in den Unterlagen der Switchhersteller anders steht: Auch der gespiegelte Port kann in seiner Performance einbrechen und die Fehlersuche produziert erst wirklich Probleme.

Die folgenden kleinen Gigabit Switches haben die Möglichkeit, einen Spiegelport einzurichten: Allnet ALL0478, Edimax ES-5400D+, Level One GSW-0841, Longshine LCS-GS8208 und TP-LINK TL-SG2109WEB.

Matrix Switche / Insert Switche

Für die Beobachtung mehrerer Segmente eignen sich Matrix und Insert Switche. Diese Geräte bieten die Möglichkeit die Monitor Ports vieler Switche auf einen Analyser zu spiegeln (Matrix) oder viele Verbindungen abwechselnd auf einen Tap zu schalten (Insert).

19 Zolleinbau

Span Port Switch mit 16 Ports (Matrix)

Interessante Produkte kommen von NetOptics (www.netoptics.de) und
Datacom Systems (www.datacomsystems.com).

Cisco Router

Auf Routern von Cisco gibt es ein undokumentietes IOS-Kommando zur Anzeige von IP-Daten. Mit

debug ip packet dump

wird eine Dump aller IP-Pakete angezeigt. Dieses Kommando stellt wirklich nur eine Notlösung dar. Der Router wird dadurch sehr stark belastet. Die Ausgabe sollte auf jeden Fall mit einer Access List eingeschränkt werden:

debug ip packet dump acl-nummer

Dadurch werden nur Pakete gedumpt die von der angegebenen ACL erlaubt sind. Auch das Einschränken auf ein bestimmtes Interface ist sinnvoll.

debug int eth0/1

beschränkt das Debugging auf das Interface Ethernet 0/1.

Das folgende Perlscript wandelt das Ausgabeformat von Cisco in ein Format um, dass das zu Ethereal gehörenden Tool text2pcap in ein pcap-File konvertieren kann.

#!/usr/bin/perl
# Convert Cisco dump file format to something text2pcap can read.
# Author: Hamish Moffatt hamish(at)cloud.net.au.
# License: GPL (see www.gnu.org)

sub dumppkt () {
     for ($i = 0; $i < scalar(@pkt); $i++) {
         if ($i % 16 == 0) {
             printf "\n%08X", $i;
         }
         printf " %02X", $pkt[$i];
     }
}

while(<>) {
     chomp;

     unless (m/[0-9A-F]{8}:/) {
         $new_pkt = 1;
         dumppkt;
         undef @pkt;
         next;
     }
     # Strip the offsets and ASCII dump
     $hex = substr $_, 10, 35;

     # Remove all spaces
     $hex =~ s/ //g;

     # Convert hex bytes on this line
     while ((length $hex) > 0) {
         push @pkt, hex (substr $hex, 0, 2, "");
     }
}

dumppkt;
print "\n";

Abbildung: Perlscript cisco2txt.pl

Wenn sich der Dumpoutput in der Datei cisco.dump befindet würde der Aufruf so aussehen:

perl cisco2txt.pl < cisco.dump | text2pcap – cisco.pcap

Die dabei erzeugte Datei cisco.pcap kann dann z.B. mit Wireshark gelesen werden.

Wireless LAN

Ein Wireless LAN ähnelt einem großen Hub. Alle Nutzer teilen sich ein shared Media – die Luft. Mit dem richtigen WEP-Key kann ein Sniffer also problemlos alle Daten aufzeichnen und auswerten. Einige Wirelessadapter unterstützen auch einen Monitormode. Mit diesem lassen sich auch Frames aufzeichnen, die der Steuerung des Netzes dienen.

SNMP und RMON

Via SNMP lassen sich eine Reihe von Parametern aus Netzkomponenten auslesen. So besteht Zugriff auf Werte wie „Bytes in“ und „Bytes out“, Errorcounter und CPU-Auslastung.

RMON geht einen Schritt weiter und bildet schon in der Netzkomponente Statistiken ohne dadurch Netzlast zu erzeugen.

Für die Abfrage von SNMP-Variablen eignet sich MIB-Browser. Auf www.snmplink.org findet der Interessierte Tools im Überfluss.

Für die Aufzeichnung und Auswertung über einen längeren Zeitraum eignet sich MRTG.

ARP-Spoofing & Co.

Der Admin wird wohl den Monitor-Port bevorzugen aber es gibt noch einige unorthodoxe Methoden um an die interessanten Frames zu kommen. Auch diese sollte der Netzwerker kennen und sich die einschlägigen Tools im Internet ansehen (Google ist dein Freund).

ARP-Spoofing / -Poisening

Mittels manipulierter ARP-Frames kann gezielt den ARP-Cache einzelner Stationen im Netz verändert werden (RFC 826). So kann man einer Station beispielsweise die MAC-Adresse des Sniffers als die ihres Default-Gateways unterschieben. Danach wird diese Station alle Frames für andere IP-Netze an unseren Sniffer senden. Dort benötigen wir natürlich ein Stückchen Software das die Frames dann an den wirklichen Router weiterleitet.

ARP-Spoofing ist eine gute Möglichkeit an einem Switch zu tracen der keine Portspiegelung unterstüzt.

Mit ettercap können Sie ARP-Poisoning unter Linux und Windows testen. Das Umleiten der Daten mittels ettercap kostet natürlich Zeit. Pakete die normalerweise direkt zum Default Gateway gehen, gehen ja dann zuerst zum Host mit ettercap und von dort erst zum Default Gateway. Die RTT kann dabei von unter 1 ms auf bis 20 ms ansteigen.

ICMP-Redirects

Durch ICMP-Redirects werden IP-Hosts angewiesen, Pakete für bestimmte Adressen an bestimmte Router zu senden. So kann ein Angreifer seinen Sniffer bequem zum Router erklären. Auch bei dieser Methode müssen die Packte natürlich an einen richtigen Router geleitet werden damit die Kommunikation nicht abbricht.

Trigger und Marker

Solange das gesuchte Problem dauerhaft auftritt oder reproduzierbar ist, sollte eine Aufzeichnung mittels Sniffer kein Problem sein. Was aber wenn das Problem nur unregelmäßig auftritt? Sniffer laufen lassen und dann im rechten Moment stoppen bevor der Capturebuffer wrapped?

Eleganter ist der Einsatz von Triggern. Network General Sniffer kann auf jedes beliebige Ereigniss im Netz getriggert werden. Ein ICMP-Ping auf eine Adresse kann die Aufzeichnung starten und mit einen anderen Ping kann die Aufzeichnung beendet werden. Es reichen also zwei Scripte auf der Oberfläche eines Anwender-PC’s zur Steuerung des Sniffers. Der Anwender kann beim Auftreten des Problems die Auszeichnung starten und der Administrator kann den Trace später in Ruhe auswerten.

Wireshark kann sehr gut von der Kommandozeile aus gesteuert werden (tshark) und in beliebige Scripte eingebunden werden.

Eine einfache Möglichkeit um bestimmte Vorgänge im Trace zu identifizieren sind ICMP-Pakete. Der Anwender bekommt ein Script auf seine Oberfläche, das einen Ping auf eine im Netz nicht genutzte Adresse absetzt. Zusätzlich wird auch noch die Größe auf einen markanten Wert setzen. Wenn das gesuchte Problem nun auftritt, löst der Anwender einfach das Ping aus. Die ICMP-Pakete lassen sich sehr leicht im Trace auffinden.

 

<-- Baselining Inhalt Tools -->

 

 
© 2004-2023, network lab - we make your net work - Netzwerkforum
aktualisiert am 22.03.2012