SIGN (SNIFFEN IN GESWITCHTEN NETZWERKEN) - DANIEL ETTLE FH-REGENSBURG INFORMATIKSTUDENT 23.05.2002
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
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