PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : basic ethernet hijackinig



disorgoth
16.03.03, 10:04
Ethernet Hijacking




1. Grundlagen Hijacking
1.1 Was ist Hijacking?
Hijacking bedeutet infiltrieren, umlenken, stören. Dies kann erfolgen auf:
- Layer 2: Spoofen von ARP
- Layer 3/4: Klassisches TCP, UDP/IP Hijacking
- Layer 5: HTTP, HTTPS, FTP, POP3, DNS, etc.

1.2 Ziele von Hijacking
- Bestehende Verbindungen werden übernommen. Während des Angriffs wird die
Identität eines, sich in Kommunikation befindlichen externen Rechners
vorgetäuscht.
- Leisten von Vermittlungsdienst zwischen zwei kommunizierenden Rechnern.
- Einfügen von irrelevanten, stupiden Informationen.
- Imitieren von Services (Router/Gateway, DNS, etc; direktes Umlenken des
Service)
- Imitieren von Antowrten von Services (kein direktes Umlenken). Wichtig zB
bei POP3 - Hijacking.

1.3 Voraussetzung
- Hardware:
Idealerweise Verbindung zu Hub/Switch, eigene IP und NIC, welche in promiscous mode schaltbar ist.
- Software:
Sniffer: tcpdump (X frontend: ethereal), sniffit
Paket-Generator: TkIpConstructor (Tk/Perl), SPak, IPPackage
ARP-Flooder \
Reset-Daemons => HAND (nachfolger von SATAN, Security Analysing Tool And Networkguard), D-Sniff
SYN-Flooder /

2. Grundlagen TCP
TCP verwendet einen vollständigen 3-Way-Handshake Verbindungsaufbau zu anderen Rechnern im Netz. Dieser gestaltet sich wie folgt:
(c) SYN, Sequencenumber
(s) SYN | ACK, Sequencenumber+1
(c) ACK

Das Beenden von bestehenden Verbindungen kann durch unterschiedliche Faktoren erreicht werden:
- Rechner/Service kann ausfallen
- Rechner/Service kann ausgefallen werden (DOS)
- Erreichen des Timeouts
- Gegenseitiges Aushandeln mittels SYN/FIN Flags
- Abrupte Beendigung durch RESET-Flag

3. Angriff eines Rechners und Angriffsstrategien auf Layer 3/4 und 5
Der für einen Angriff essentielle und somit zu erreichende Zustand des Opfers ist die desynchronisierte Verbindung. Dieser wird erreicht, wenn die Sequenznummern des am Server eingehenden Paketes außerhalb des Em pfangsfensters liegen. Wird vom Server ein solches Paket empfangen, dropt er dieses unverzüglich.

1. Infiltration
Infiltration entspricht der absichtlichen Desynchronisation einer Verbindung mittels Einschleusen von Daten in einen Strom.

Bsp.: Telnet
Der Angreifer schickt ein als Client getarntes Payload-Paket an den Server, mit den vom Server erwarteten Sequenznummern. In dem Paket liegen Anweisungen die der Server ausführen soll. Somit ist die Verbindung zw ischen wirklichen Client und Server desynchronisiert und es ist keine direkte Kommunikation mehr möglich.
Die Verbindung kann aber trotz allem noch aufrecht erhalten werden, durch Vermittlung. Das heißt die Verbi ndung zwischen Client und Server funktioniert nur mit Hilfe des Angreifers.

- Client öffnet Telnet Session
- Wir (Angreifer) warten einen Zeitpunkt ab an dem die Verbindung still steht um die derzeitgen Sequenznummern der einzelnen Pakete zu erkennen. Dies geschieht mittels eines sniffers (tcptump). Dies ist auch möglich ohne direkten Stillstand der Verbindung, durch automatisierte Sequencesoftware.
- Wir erkennen: Der Server hat eine Sequenznummer von 5000, und erwartet eine Clientsequenz von 1000.
- Wir schicken nun ein Packet mit gesetztem ACK und PUSH Flag (PUSH bewirkt, dass der empfangene Protokollstack die Daten sofort in die Anwendung hochreichen soll).
- Server führt payload-Daten aus und erwartet nun ein Paket mit der Nummer 1001.
- 'Realer' Client meldet sich mit einem Paket seiner ursprünglichen Sequenz 1000, was der Server nun natürlich dropt - somit ist die Verbindung desynchronisiert und der Server fürt möglicherweise böse Anweisungen aus.

Auf die Praxis bezogen heißt dies:
- ifconfig eth0 promisc # NIC in promiscous mode schlaten
- tcpdump -s #-S: absolute Sequenznummern; bei Stillstand merken
- tkIpConstruktor #zum generieren von IP Paketen mit SYN/PUSH mit richtigen IPs, Ports und einen #Infiltrationsstring der am Server ausgeführt wird (echo "xx" >> xx")

4. Angriff eines Rechners und Angriffsstrategien auf Layer 2
4.1 Layer 2 Grundlagen
Im Ethernet wird auf Layer 2 mittels MAC-Adressen jede NIC eindeutig identifiziert. Via ARP werden IPs und MAC-Adressen umgewandelt. Dies funktioniert so, dass der ARP-Request von irgendeinem Rechner an die Broadc astadresse des Netzwerks gesendet wird und jener Rechner mit der gesuchten MAC-Adresse meldet sich anschli eßend beim fragenden Rechner. Eine Optimierung ist ein ARP-Cache, um sich MAC-Adressen temporär zu merken. Ein weiterer Angriff wäre hie r der MAC-Table-Overflow, wobei der ARP-Cache durch ARP-Replies überflutet wird. Dies wirkt sich in einem DOS aus.

4.2 ARP-Spoofing
ARP-Spoofing ist das vortäuschen einer anderen MAC-Adresse. Ist ein Switch beispielsweise so konfiguriert, dass er an einem bestimmten Port nur eine bestimmte MAC-Adresse zulässt (zB Heim) kann man mit dem ifconfi g Kommando einfach seine MAC-Adresse ändern, in die die vom Switch angenommen wird.
Von großer Bedeutung ist hier auch das Spoofen der IP mittels ifconfig, um strategisch wichtige Positionen im Netzwerk zu erhalten, zB die eines Gateways, Servers, etc. Ändert man seine eigene IP in die eines Serv ers, braucht man nur den Victim-Rechner ein ICMP Ping request zu senden. Dieser entdeckt dass er vom Server einen pink request erhalten hat, und somit auch dass der Server seine MAC-Adresse geändert hat. Er merkt sich dies und schickt seine an den Server adressierten Pakete nun immer an den Angreifer.

4.3 ARP-Spoofing fremder MACs
Hierbei wird ein fremder ARP-Cache manipuliert

Prinzip:
3 Rechner: 192.168.0.1 (Client)
192.168.0.2 (Server)
192.168.0.3 (Angreifer)

Wir (Angreifer) möchten dass 192.168.0.2 denkt, dass 192.168.0.1 eine andere MAC-Adresse hat. Daher generi eren und senden wir einen gefälschten ARP-Reply an die MAC-Adresse der 192.168.0.2, tragen die gewünschte neue MAC-Adresse von 102.168.0.1 ein und setzen die original source und destination IPs ein. Nun denkt 192 .168.0.2 dass 192.168.0.1 eine andere IP hat.
Dies funktioniert nicht unter BSD, da dieses erkennt wenn andere Rechner Pakete mit der eigenen IP senden. Eine Gegenmaßnahme wäre das Abfangen von empfangen Replies ohne Requests, kommt aber nicht zum Einsatz.

5. Angriffe im Switched Ethernet (ARP-Relaying)
Bsp: Switch mit 3 Ports, Schema s.o.

5.1 Spoofen fremder MAC-Adressen mit unserer eigenen.
Wir suggerieren Client und Server, dass der gegenseitige Zielhost unser Rechner ist, somit sind wir Vermit tler von Pakete zwischen den beiden Rechnern (dazu muss der Linuxkernel neu kompiliert werden mit der Opti on IP-Forwarding). Da wir somit ein Forarding Host sind ist die Kommunikation zwischen Client und Server n ur über unseren Rechner möglich und wir haben Einblick in alle gesendeten Pakete, können diese umbauen, du rchforstern nach Passwörtern, etc.

5.2 Spoofen fremder MAC-Adressen mit inexistenten MAC-Adressen
Essentielle Angriffsmöglichkeit in geswitchter Umgebung. Wir suggerieren beide Kommunikationspartner eine Zieladresse die im Netzwerk nicht existent ist. Effekt: Sie schicken ihre Pakete los, und kommen schließli ch an allen Ports des Switches raus, da dieser nicht weiß an welchem Port der Rechner mit der (von uns gefälschten) MAC-Adresse hängt; somit wäre das Sicherheitsprinzip eines Switches deaktiviert. Jeder Host drop t dieses Paket natürlich, da er eine andere MAC-Adresse hat, bis auf uns, weil wir das Paket natürlich als unser eigenes erkennen. Wir können das Paket nun umbauen und an den originalen Empfänger schicken, was das Hijacken in geswitchten Umgebungen ermöglicht.

6. Hijacking von Sicherheitsprotokollen SSH und HTTPS
Im Netz wird nach DNS-Request Paketen abgehört. Kommt ein solches Paket an, wird es nicht, wie bei anderen Rechnern, gedropt sondern eine gefälschte Antwort auf das DNS-Querie zurückgesendet. Die Wahrscheinlichkei t dass wir als Angreifer schneller reagieren als der tatsächliche DNS, ist groß da DNS oftmals nicht im in ternen Netz liegen (zB bei ISP). Sucht also beispielsweise ein Browser die Seite www.ccc.de, sucht er zuerst einen DNS auf um die IP dieses Servers in Erfahrung zu bringen. Wir schicken zuerst einen reply, daher wird unser Paket angenommen. Man n ehme an es handle sich hierbei um eine HTTPS-Anfrage, generieren wir auf unserem Rechner einfach ein neues Verschlüsselungszertifikat und schicken dies an den Anfragenden Rechner. Dieser bekommt eine Meldung über ein neues Zertifikat, was meist belanglos bestätigt wird. Nun können wir mit Hilfe von bereits angeführten Techniken, die vermeindlich sichere Verbindung überwachen. Selbe Strategie ist bei SSH anzuwenden.

Soviel zur kurzen Einführung von Ethernet Hijacking. Der Text entstand aufgrund eines Projektes im Rahmen von Prozessregelung und Rechnerverbund und wurde von mir ursprünglich in Englisch verfasst; Verbesserungsvorgschläge, Fehler etc bitte kommentieren. Have a lot of fun :)

SupaSONiC
19.03.03, 20:26
auf den aktuellen chaos congress seiten gibt es dazu auch eine sehr interessante pdf folie!

disorgoth
22.03.03, 13:07
yup -> sehr interessant diesbezüglich ist auch der vortrag von stefan krecher/18c3.

dis

SupaSONiC
24.03.03, 16:56
genau, ich meinte die folie von krecher vom 19c3

akula
28.03.03, 15:45
hmm wenn ihr mir noch den Link haettet :rolleyes:

derRichard
28.03.03, 16:12
Original geschrieben von akula
hmm wenn ihr mir noch den Link haettet :rolleyes:
schon mal von google gehört? :rolleyes:
http://www.google.at/search?q=ccc+krecher+19c3&ie=UTF-8&oe=UTF-8&hl=de&btnG=Google-Suche&meta=

//richard

akula
29.03.03, 22:38
upppsss sorry :rolleyes: :rolleyes: