SIGN (SNIFFEN IN GESWITCHTEN NETZWERKEN) - DANIEL ETTLE FH-REGENSBURG INFORMATIKSTUDENT 23.05.2002

Die Seite wird erstellt Yves-Leander Steffens
 
WEITER LESEN
sigN
(sniffen in geswitchten Netzwerken)

              DaNiel Ettle
            FH-Regensburg
           Informatikstudent

              23.05.2002
1 SENSIBILISIERUNG                                                              1

1 Sensibilisierung
Es passiert immer genau dann, wenn man meint, dass man nichts zu befuerchten hat.

   frueher:

     telnet

     ftp

     www

     pop3

   heute:

     geswitchte netzwerke

     firewalls

     ssh/ssl

     allgemein verschluesselte uebtragungen

   morgen:

     IPsec

     bluetooth (teilweise heute schon)

     IPv6

     ssh2
2 GRUNDLAGEN UND VORRAUSSETZUNGEN                                             2

2 Grundlagen und Vorraussetzungen
2.1 Verantwortung
Verantwortungsbewusstes handeln.
Sichten, verfaelschen oder weitergeben von geschuetzten Daten ist strafbar.

2.2 Grundlagen
Allgemeine Grundkenntnisse in UNIX, C++, TCP/IP und Netwerktopologien sollten
vorhanden sein.
3 EINFUEHRUNG                                    3

3 Einfuehrung
   Hijacking: entfuehren, uebernehmen

   Flugzeugentfuehrung

   Sessions entfuehren

  Routing-Protokolle: http://www.phenoelit.de/
3 EINFUEHRUNG                                                                 4

3.1 Schichtwerk
Hijacking funktioniert auf verschiedenen Ebenen.

     Layer-2
     ARP, MAC Adressen.

     Layer-3/4
     TCP, IP, UDP, ICMP

     Layer-5
     Protokolle auf Application-Ebene (HTTP, FTP, POP3, . . . )

     Layer 8 (just kidding)
     Social Hijacking. (Radiergummi, Einkaufswagen, jemanden von einer Party ab-
     schleppen. ;-))
3 EINFUEHRUNG                                                                  5

3.2 Hardwarezeuch
Vorraussetzung ist:

      Der Angreifer muss in der Lage sein, Pakete fuer mindestens eines der Opfer
      empfangen zu koennen.

      Am besten ueber einen Hub verbunden, switches egal ob managebar oder nicht.

      Die Netzwerkkarte des Angreifers muss in den promiscuous mode“ schaltbar
                                                  ”
      sein (Realtek taugt da nix :-) ).
4 NETZTOPOLOGIEN                                               6

4 Netztopologien
4.1 Shared Medium Netzwerke
Aus dem Geschichtsunterricht:

4.1.1 Beispiel

                   Abbildung 1: Aufbau eines shared Networks
4 NETZTOPOLOGIEN                                                   7

4.2 geswitchte Netzwerke
     MAC-Tabelle existiert

     Sternverkabelung

     virtuelle P2P

4.2.1 Beispiel

                     Abbildung 2: Aufbau eines switched Networks
4 NETZTOPOLOGIEN                                8

4.3 ARP Spoofing/Relaying - Layer 2
4.3.1 Was’n ARP?
     setzt IP-Adresse auf MAC-Adressen um.

     physikalischen Adressierung im Ethernet.

4.3.2 Kids-club
     ARP Broadcaststurm laemt Netzwerke

     lame - nur was fuer Kids
4 NETZTOPOLOGIEN                        9

4.3.3 blonde Hardware
    begrenzter MAC-Table speicher

    Low End switches sind Hubs

    hoher Traffic           Hub modus
                        

                    
4 NETZTOPOLOGIEN                                                                10

4.3.4 Gundel Gaukelei
MAC Adresse auf einer UNIX Kiste aendern (!faelschen).

ifconfig           down
ifconfig           hw ether C0:0l:CA:FE:BA:BE down
ifconfig           192.168.1.23
ifconfig           up

    Die Adresse per ICMP-echo-request (ping halt) an eine IP-Adresse (Rechner) oder
per Broadcast an andere Rechner bekannt machen.
4 NETZTOPOLOGIEN                                                        11

4.3.5 Spoofen
ARP Spoofing im nichtgeswitchten Netzwerk.

                Bart                                          Lisa

             192.168.1.1                                192.168.1.42
         DE:AD:CA:FE:E0:00                          C0:01:CA:FE:BA:BE

                                              HUB

                     Sideshow Bob

                       192.168.1.23
                    23:05:19:87:DE:AD
                        (C0:0F:EE:15:60:0D)

                        Abbildung 3: einfaches ARP Spoofing

   Angreifer( SideShow Bob“) generiert gefaelschtes Paket und schickt es an sein
             ”
Opfer( LISA“).
      ”
C0:01:CA:FE:BA:BE arp reply 192.168.1.1 is-at C0:0F:EE:15:G0:0D
src-ip: 192.168.1.1
dst-ip: 192.168.1.42

 LISA“ aendert ihre ARP-Tabelle.
”
Bart bekommt evtl. Kernelmeldung

(C0:0F:EE:15:60:0D is using my ip

unwahrscheinlich.
4 NETZTOPOLOGIEN                                                                              12

4.3.6 Eisszeiten und Einfriermoeglichkeiten
ARP Tabelle einfrieren.

arp -v -i eth0 -s 213.233.23.1 00:31:6B:94:32:A8

loeschen, updaten oder faelschen.
macht kein mensch.

NetBSD und OpenBSD                Kernel, ’ARP robustness’           ’strange IP rejecting’
                                                                

                                                            
4 NETZTOPOLOGIEN                                                                13

4.4 TCP - Layer 4
    RFC 793

    quadruble (IP sender, TCP-port sender, IP empfaenger, TCP-port empfanger)

    32bit Sequenzummer

    Flags

4.4.1 Grundlegendes

                            Server           Client

                          SVR_SEQ           CLT__SEQ
                          SVR_ACK           CLT_ACK
                          SVR_WND           CLT_WND

                Abbildung 4: TCP Sequenznummernverhalten

CLT_ACK
4 NETZTOPOLOGIEN                                                            14

4.4.2 Verbdingsaufbau...
Three Way Handshake

                                    Client                         Server

                                             SYN | SEQ=1023
                Verbindungsaufbau

                                               SYN | SEQ=3023
                                             ACK=1024, WIN=500

                                              ACK=3024, SEQ=1024
                                                  WIN=500

                                              ACK=1024, SEQ=1124
                Datenaustausch

                                              ACK=3024, WIN=500

                                                 ACK,SEQ=3024
                                               ACK=1125, WIN=300

      Abbildung 5: TCP Verbindungsaufbau, Client sendet 100 Bytes Daten
4 NETZTOPOLOGIEN                                                    15

4.4.3 ... und Abbau
normal

             Abbildung 6: TCP Verbindungsabbau, Client sendet RST

   oder

     Timeout

     Gleichzeitiger, beidseitiger Abbau mit FIN

     Einseitiger Abbau mit RST

     Rechner explodiert, Nuklearkrieg, etc . . .
4 NETZTOPOLOGIEN                                                               16

4.4.4 RFC 793, RST und andere Phaenomene
Wann wird nun dieses RST Kommando gesendet?

     Antwort auf ein Packet einer nicht existierenden Verbindung.

     Antwort auf ein ACK eines noch nicht gesendeten Packets. ACK ist groesser als
     SEQ.

     Bei Verbindungsende einer Transmission.

     Verwerfen des Packets bei einer Firewall.

Artikel von Laurent Joncheray A Simple Active Attack Against TCP (1995)“.
                             ”
Angriff mittels mittels RST-Reopen“.
                       ”
spontaner Verbdindungsauffbau nach RST?!
4 NETZTOPOLOGIEN                                                              17

4.4.5 Desynchronized state
Verbinung desynchronized state“
         ”
      ESTABLISHED mode

     stable Zustand (keine Daten werden gesendet)

     die Server Sequenznummer ist nicht gleich der Client Acknowledgenummer
     (SVR SEQ != CLT ACK)

     die Client Sequenznummer ist nicht gleich der Server Acknowledgenummer
     (CLT SEQ != SVR ACK)

   Falls Daten gesendet werden, koennen folgende zwei Sitationen eintreten:

  1. CLT SEQ < SVR ACK + SVR WIND und CLT SEQ > SVR ACK wird das
     Paket akzeptiert

  2. CLT SEQ > SVR ACK + SVR WIND oder CLT SEQ < SVR ACK wird das
     Packet verworfen

   Verbindung desychronisieren:

     null data an Server schicken

     RST schicken

     FIN schicken (moeglich, aber schlecht da ACK resultiert)
4 NETZTOPOLOGIEN                                                           18

4.4.6 Angriff
Vorraussetzung: IP-Spoofing funktioniert (Angriff von aussen nach innen)
   desynchronisierten Zustand, Client sendet
                                Server               Client

                               SVR_SEQ   SEG_SEQ    CLT__SEQ
                               SVR_ACK   SEG_ACK    CLT_ACK
                               SVR_WND   SEG_FLAG   CLT_WND

                       Abbildung 7: TCP Sequenznummern Pakete

SEG_SEQ = CLT_SEQ
SEG_ACK = CLT_ACK

  Solange CLT SEQ != SVR ACK gilt, Pakete verwerfen.
Angreifer aendert Pakete. SEG SEQ und SEG ACK (und die Checksum)

SEG_SEQ = SVR_ACK
SEG_ACK = SVR_SEQ

   Server akzeptiert Paket.
keine Sorge, Bild folgt. ;-)
4 NETZTOPOLOGIEN                                                    19

         Server                                   Client

      LISTEN              SEG_SEQ=CLT_SEQ          CLOSED
                          SEG_FLAG=SYN
      LISTEN                                       SYN−SENT
                          SEG−SEQ=SVR−SEQ
                          SEG_ACK=CLT_SEQ+1
                          SEG_FLAG=SYN

      CLOSED              SEG_SEQ=CLT_SEQ+1
                          SEG_FLAG=RST

                          SEG_SEQ=ATK_SEQ
                          SEG_FLAG=SYN

                          SEG_SEQ=SVR_SEQ
                          SEG_ACK=ATK_SEQ+1
                          SEG_FLAG=SYN
     SYN−RECEIVED
                          SEG_SEQ=ATK_SEQ+1
                          SEG_ACK=SVR_SEQ+1
                          SEG_FLAG=SYN
      ESTABLISHED                                 ESTABLISHED

    SVR_SEQ=SVR_SEQ+1                           CLT_SEQ=CLT_SEQ+1
    SVR_ACK=ATK_SEQ+1                           CLT_ACK=SVR+SEQ+1

                  Abbildung 8: TCP Sequenznummern Attack
4 NETZTOPOLOGIEN                                                          20

4.4.7 ACK-Storm
Nachteil: ACK Storm resultiert.
                   Server                                 Client

                                  SYN(100)

                                  SYN(400)|ACK(101)

                                  RST(101)

                                   SYN(700)

                                  SYN(900)|ACK(701)

                            SYN(701)|ACK(901)

                                      SYN(101)|ACK(401)

                               SYN(900)|ACK(701)

       Abbildung 9: TCP ACK Storm, ausgeloest durch eine Hijack-Attacke
4 NETZTOPOLOGIEN                                                         21

4.4.8 Kevin vs. Tsutomu
 TCP Sequence Number Guessing“
”
Angriff von Kevin Mitnick auf die Workstation von Tsutomu Shimomura.

   Theorie:

     RFC 693

     4 Mikrosekunden erhoeht

   Realitaet:

     keine Verbindung - keine Erhoehung

     neue Verbindung +64

     laufende Verbdinung +128/sec

   BSD und Linux (ab 2.4.10) benutzen real random“
                                     ”
Selbst bei ungenauer Anfangssequenznummer des Opfers noch hijacken moeglich.
Mehrere Packete mit gleichen Inhalts mit anderer SEQ.
4 NETZTOPOLOGIEN                                                  22

4.4.9 Verteidigung
     Unterdrueckung von IP-Spoofing (Inputfilterung)

     keine Authentifikation eines Benutzers mittels IP-Adressen

     Auth. durch ein Cryptosystem (Einmalpasswort etc.)

     echter Zufallsgenerators fuer die Anfangssequenznummern

  absehen von Filterung kritischer Seiten (Meinungsfrei-
heit).
4 NETZTOPOLOGIEN                                       23

4.5 UDP - Layer 4
Was ist UDP

     besseres IP Paket

     einfach zu spoofen

     keine Sequenznummern oder aehnliches

Wird trotzdem fuer viele wichtige Dienste verwendet:

     NFS

     SNMP

     DNS

     Netbios

     RIP

     ...

Grund: short requests“
       ”
Inzwischen: TCP extensions (RFC 1644)
4 NETZTOPOLOGIEN                                             24

4.5.1 Flutwellen, . . .
      keine Flusskontrolle

      keine virtuellen Verbindungen

      Server muss alle Pakete annehmen

      Ueberlastung

4.5.2 Stuerme . . .
      Echo Reply Attack

      ping an die Broadcast Adresse mit der IP des Opfers

      Modemzugang reicht

      falsch Konfigurierte Route Subnetzuebergreifend

4.5.3 . . . und andere Katastrophen
      zustandslos

      keinerlei Quittungs oder Laufnummern

      keine Ueberpruefung auf richtigkeit der Quelladresse
4 NETZTOPOLOGIEN                                                               25

   UDP spoofing Szenario

Windows Rechner mit einem Namensdienstdatagramm (netbios-ns 137/udp)
Senden einer nicht angeforderten negativen Nachricht eines lokal registrierten Na-
mens

      der Browserdienst“ verweigert ein Durchsuchen der Netzwerkumgebung.
          ”
      es werden keine Nachrichten mehr empfangen (net send), severmeldungen wer-
      den ignoriert.

      Domaenendienste koennen aufgrund der falschen authentiaet nicht mehr ausge-
      fuehrt werden.

      freigegeben Resourcen, sowohl auf dem eigenen Rechner sowie auch bezogene
      fallen aus.

NFS

      ist noch schlimmer.

      Klartextuebertragung.

      IP-Adresse als Authentifizierung

       Nightmare File System“
      ”
4 NETZTOPOLOGIEN                                               26

4.5.4 Deiche, Daemme und brennende Waende
Resultat:

      Kein Schutz moeglich aufgrund der Architektur

      Dienste bleiben unsicher

      Authentifizierung nur auf Anwendungsebene verbesserbar

Schutz:

      Abschalten von Diensten

      Firewall

      neue Protokolle
4 NETZTOPOLOGIEN                                           27

4.6 ICMP - Layer 3
 Internet Control Message Protokoll“
”

4.6.1 RFC 792 und andere Zustaende
Netzzustand

           Echo/ Echo Reply (Ping)

           Destination Unreachable (Host down, Firewall)

           Source Quench

           Redirect

           Route Advertisement

           Information Request/Reply

           ...

            Angriffsmoeglichkeiten
       

   
4 NETZTOPOLOGIEN                                              28

4.6.2 Router Advertisement
         default-route normal ueber DHCP oder manuell

          ICMP Router Advertisement“ Packete
         ”
         kein Routing Protokoll

         discovern eines Netzes

         RFC 1256 ICMP Router Discovery Message“
                 ”

        hey, wir haben doch da eine bessere route
    



4.6.3 Redirection - Umleitung
         Aufallsicherheit

         Router sind eher unanfaellig

         beliebige Umleitung moeglich

         dauerhaft, erst bei erneutem ICMP Packet geaendert

4.6.4 Source Quench
         Netz-load-balancing

         Flusskontrolle

         Reduzierung des Datenstroms

         beinahe stillegung
4 NETZTOPOLOGIEN                                            29

4.6.5 Durstloescher und andere Schutzmassnahmen
Gegenmassnahmen:

     schwierig

     notwendiges Protocoll

     haeufige fehlerhafte config von Firewall und Routern

     unfreiwillige Informationsfreigabe

Hardware:

     ICMP MSG/Zeit

     feste Routingeintraege
5 TOOLS                                                                 30

5 Tools
5.1 do it yourself
Man braucht einen sniffer

      tcpdump

      sniffit

      ethereal

einen Packetgenerator

      ippacket

      tkipconstructor

      spak

und noch paar Flooder

      ARP-Flooder

      SYN-Flooder

      RST-Deamon

alternativ kann man sich auch noch selber was mit libnet oder libpcap
5 TOOLS                                                                            31

5.2 ready, steady, hijack
Hier gibt es nicht (noch nicht) soviele Programme. Hier wiederrum nur die wichtigsten.

      juggernaut (fuer geswitchte netzwerke nicht so geeignet)

      hunt (teilweise umstaendlich)

      dsniff (core dumped schon mal, aber sehr nett)

      ettercap (unterstuezt plugins)
6 SCHUTZMASSNAHMEN                                                         32

6 Schutzmassnahmen
6.1 Einfuehrung
Nachdem das Problem das nun bekannt ist macht man sich natuerlich Gedanken was
man dagegen tun kann.

     IPsec verwenden

     verschluesselte Methode oder Zertifikate verwenden.

     weniger anfaellige Netzwerktopologien aufbauen.

6.2 Hardware
     wenig sinnvolle Devices

     Log-file server

     (richtig configurierte!) firewalls

     neue switches

6.3 Software
     viele programme

     unueberschaubar

     zeitintensiv

     erkennen von promiscous mode
6 SCHUTZMASSNAHMEN                                                             33

6.4 IP Filter
wichtige hinweise und erfahrungen.

6.4.1 Inputfilterung
     private Adressen kommen niemals von einem externen Device. (naja, fast nie)

     Multicast-Adressen der Klasse D. (224.0.0.0 bis 239.255.255.255)

     Reservierten Adressen der Klasse E. experimentellen Anwendungen. (NSA und
     amerikanische Militaer     Stecker ziehen)
                                 

                             

     Loopback.

     Netz-Broadcast (0.0.0.0)

     eigene IP-Adresse

6.4.2 Empfaenger IP Filterung
     Alle Packete die nicht die eigene IP haben intressieren nicht

     Broadcast auf 0.0.0.0 (old school BSD-Stack reagiert mit ICMP)

einziges gutes Beispiel wo man (DENY) anstatt (REJECT) zurueckschicken kann.

6.4.3 Port Filterung
     Client sendet niemals unter 1023

     Server sendet niemals ueber 1024

6.4.4 TCP Flags
Server: SYN, ACK, ACK, ACK, . . .
Client: SYN—ACK, ACK, ACK, . . .
6 SCHUTZMASSNAHMEN                                                              34

6.5 Umgang mit ICMP
Kriegsstimmung.

   Ueberlegung:

     meisten packete boesartig, keine harmlosen unschuldigen anfragen

     Jedes Paket das man wegschickt kann als DoS eingesetzt werden

     mehr Informationen fuer den Angreifer, selbst eine Fehlermeldung bringt info.

     Eine Fehlermeldung verdoppelt den Verkehr auf dem Netz (naja, was war mal)

ICMP ist ein Netzzustandsprotokoll.
6 SCHUTZMASSNAHMEN                                                          35

  Devise:
Man kanns nie richtig aber sicherlich falsch machen
    kein oder nur teilweises Versenden von ICMP Echo-Replys.

      – Spionagemoeglichkeit fuer interne Netzstrukturen.

    verhindern von ICMP Echo

      – Ping Flooding
      – nur zu wenigen Rechnern erlauben. Suchmaschinen nutzen dies fuer Webser-
        ver.

    kein versenden von Destination Unreachable“
                      ”
       – Auskunft ueber offene UDP Ports
      – Siehe nmap UDP scan oder nessus.

    ignorieren von ICMP Source-Quench

      – DoS durch einschleusen von ICMP Pakten mit diesem Inhalt. Erreichbar-
        keit sinkt.

    ignorieren von ICMP Redirect

      – DoS angriff oder Ueberlast
      – Man-in-the-Middle Attack
      – unerwuenschte IP Routen (traffic abkommen)

    verhindern von ICMP Time-Exceeded

      – Auskunft ueber interne Router und Bandbreiten (traceroute)
      – Firewall sollte nicht im Traceroute sichtbar sein.
6 SCHUTZMASSNAHMEN                                            36

6.6 misstrauen
ein gewisses Mass an misstrauen schadet nie.

     login Leichen entfernen

     Zertifaktsaenderungen betrachten (beware of Snake Oil)

     connection lost (internes netz)

      peer hunting“
     ”
6 SCHUTZMASSNAHMEN         37

6.7 wenns doch passiert?
    Notfallplan

    weglaufen
7 PRAKTISCHE VORFUEHRUNG   38

7 praktische Vorfuehrung
Realitaetsabgleich

   . . . festhalten
7 PRAKTISCHE VORFUEHRUNG                                              39

  Danksagung

   Die Jungs und Maedls die sich das zeuch ausdenken, Programme coden und
   verbreiten.

   dem CCC

   Den verstaendnissvollen Admins der FH/UNI-Regensburg

   team23.org

   H. Prof. Dr. Pohl fuer seine gute CK Vorlesung

   alle meine Freunde die mich unterstuetzt haben
Sie können auch lesen