TCP/IP-Pakete manipulieren?
Ich frage mich interessehalber, kann man Die Quell-IP-Adresse auf Bit Ebene meines Pakets, vor dem verschicken manipulieren?
Oder sagt dann mein erster Knoten also der Router wahrscheinlich, schon das das nicht hinkommen kann?
4 Antworten
Was heißt denn "auf Bit-Ebene"? Wenn man ein Paket manipuliert, äußert sich das auf Bit-Ebene natürlich immer. Das (ver)fälschen von IP-Adressen nennt man IP Spoofing. Klar ist das möglich. Ob "Dein erster Knoten" die Manipulation bemerkt, hängt von dessen Fähigkeiten und dessen Konfiguration ab.
Wenn sich die gefälschte IP-Adresse sich im gleichen IP-Subnetz befindet wie die orginale, könnte das bei entsprechender Konfiguration der Switch bemerken, an dem Dein Rechner hängt. Ein Heimrouter kann das nicht, bei einem professionellen Switch kann das ggf konfiguriert werden. Bei Cisco heißen die ensprechenden Funktionalitäten DHCP Snooping und Dynamic ARP Inspection. Standardisierte Mechanismen gibt es da meines Wissens nicht.
Wenn sich die gefälschte IP-Adresse in einem anderen IP-Subnetz befindet wie die originale, kann das der Switch, an dem Dein Rechner angeschlossen ist, bemerken, oder aber der nächste Router. Eine solche Funktionalität heißt Unicast Reverse Path Forwarding (uRPF), definiert in RFC 3704. Ein Heimrouter kann das nicht, bei einem professionellen Router kann das ggf. konfiguriert werden.
Vorneweg; es ist meistens sinnfrei.
Es kommt drauf an, welches Bit du manipulierst. Bits im Hostanteil sorgen einfach dafür, das Absender gefläscht wird. Entweder du nimmst damit die IP eines anderen Knoten oder erwischt eine IP die im Netz nicht vergeben ist. Du kannst keine Verbindung aufbauen weil schon das erste Antwortpaket ins Leere läuft (Syn, Ack).
Wenn du Bits im Netzwerkeil der Adresse änderst, sollte der Router das Paket verwerfen, weil es auf dem falschen Interface ankommt (Firewall). Normale Heimrouter machen NAT, das würde nicht funktionieren, weil der Router keine fremden Netze maskiert.
Andererseits manipuliert ein NAT-Router natürlich die Quelladressen in den IP-Pakteten. Und das ist nicht nur möglich, sondern auch sinnvoll.
Hallo Franzhartwig,
Danke für die Erläuterungen, wie meistens muss ich dir zustimmen. Ich hatte mich einfach auf die Frage bezogen und möchte meine Anwort nicht losgelöst davon sehen.
Hast Du das mal getestet? Ich würde dafür meine Hand nicht ins Feuer legen. Ich muss das mal ausprobieren.
So, ich habe getestet: Wenn mein Rechner IP-Pakete mit Absenderadresse aus einem anderen IP-Subnetz verschickt, schluckt der Router die Pakete. Auf der WAN-Seite kommt nichts an. Dabei ist es egal, ob die gefälschte Absenderadresse eine private oder eine öffentliche ist. Wenn mein Rechner eine Adresse aus dem gleichen Subnetz verwendet, geht das Paket durch den Router. Ich erhalte natürlich keine Antwort.
Wenn ich ein Ziel in meinem eigenen Netz anspreche, kommen dort alle gefälschten Pakete an. Es ist also der Router, eventuell der NAT-Prozess, der dort einschreitet, nicht jedoch der Switch.
Keine Ursache, ich bin ein neugieriges Spielkind. Normalerweise beschäftige ich mich mit professionellen Geräten. Da ist oft klarer, was passiert und wie ein Gerät reagiert. Bei diesen Heimgeräten weiß man ja nichts über die Implementierung.
Ja, die Quell Adresse eines TCP Paketes kannst du natürlich manipulieren. In meinen Tests hat das wunderbar funktioniert.
Natürlich darfst du dann aber keine Antwort mehr erwarten an die reale Absenderadresse.
Ja sollte gehen.
Beim IP-Spoofing werden IP-Paketen mit gefälschter Absender-IP-Adresse versand.
Verfälschungen von Bits im Hostanteil der Empfängeradresse sorgen natürlich dafür, dass die Empfängeradresse verfälscht wird. Ob Host- oder Netzanteil ist doch völlig wurscht.
Warum schränkst Du auf TCP ein? Es ist doch völlig egal, ob TCP, UDP, ICMP oder was auch immer.
Moment mal. Router oder Firewall? Das sind zwei verschiedene Geräte. Aber auf beiden ist es nicht selbstverständlich, dass ein Paket aus einem falschen Absendernetz verworfen wird. Das ist eine Frage der Konfiguration und der Fähigkeiten.
Hast Du das mal getestet? Ich würde dafür meine Hand nicht ins Feuer legen. Ich muss das mal ausprobieren.
Und damit wäre jegliches IP Spoofing hinfällig, weil überschrieben.