Zum Inhalt springen

HTTP-Manipulation


Master3

Empfohlene Beiträge

Hallo

Ich suche entweder ein Programm oder Programmieranregungen (C, VB, Delphi, Java) für folgende Idee:

Ich möchte Pakete abfangen, manipulieren und weiterverschicken können. Das reine Sniffen ist kein Problem, aber wie manipuliert man Pakete? Insbesondere HTTP-Pakete. Die Idee: Ich durchsuche alle Pakete mit IP / TCP / HTTP- Header nach einem Stcihwort im HTML-Format und möchte dieses durch ein anderes ersetzen. (Quasi Manipulation von HTML-Seiten)

Hat jemand Ideen?

Gruß

Master3

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

Ich suche entweder ein Programm oder Programmieranregungen (C, VB, Delphi, Java) für folgende Idee:

Ich möchte Pakete abfangen, manipulieren und weiterverschicken können. Das reine Sniffen ist kein Problem, aber wie manipuliert man Pakete? Insbesondere HTTP-Pakete. Die Idee: Ich durchsuche alle Pakete mit IP / TCP / HTTP- Header nach einem Stcihwort im HTML-Format und möchte dieses durch ein anderes ersetzen. (Quasi Manipulation von HTML-Seiten)

Hat jemand Ideen?

Gruß

Master3

du erwartest doch keine wirklcih seriöse antwort darauf? warum willst du manipulieren?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bin Lehrer an einem Gymnasium und behandele gerade das Thema Datenmanipulation. Generell versuche ich den Schülerinnen und Schülern möglichst praktisch unsere Themen vor Augen zu halten. Aus diesem Grunde bastel ich mir auch (gänzlich ungefährliche) Phishingseiten (liegen aber lokal) und möchte nun auch zeigen, dass man HTTP-Anfrage (die bei uns alle über einen Proxy laufen) manipuieren kann. Insofern mache ich da nichts "böses" mit. Ich habe ja auch nicht angefragt, wie man eine SSL-Verschlüsselte Verbindung knacken kann, sondern nur, ob jemand Ideen zu meinem Programm hat.

Fakt ist: Es sollte (zumindest von der Theorie her) kein Problem sein, da jede Firewall nichts anderes macht und Pakete filtert und abfängt. Diese müssen dann halt nur wieder leicht manipuliert (u.a. IP-Header) in die Output-Queue geleitet werden.

Daher ja, ich erwarte mir schon ernsthafte Antworten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Phishing ist ansich keine Manipulation von IP bzw. HTTP-Traffic.

Phishing ist das Vortaeuschen von falschen Tatsachen zum Zwecke der Gewinnung von wertvollen Informationen wie z.B. PIN/TANs vom Onlinebanking.

Eine einfache Moeglichkeit des Nachbaus von Phishing ist z.B. der Nachbau einer Seite und das Setzen von Eintraegen in der hosts Datei.

Das ist dann aber keine Manipulation von HTTP-Traffic, sondern die Manipulation der Namensaufloesung.

Firewalls aendern idR keine Daten, sie filtern lediglich auf unerwuenschten Traffic.

Proxies bzw. IDS/IPS-Systeme koennen Traffic aendern.

Oft sind in kleinen Umgebungen Firewall und Proxy auf einem System oder in manchen Produkten sind beide Techniken auch kombiniert (z.B. MS ISA Server).

Wenn Du wirklich IP-Pakete aendern und erneut versenden willst, dann schau Dir in Deinem Sniffingtool Deiner Wahl die Moeglichkeiten der PCAP-Dateien an.

Bearbeitet von hades
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

Bzgl: Phishing - ich weiß, das war nur ein Bsp, warum ich überhaupt Pakete manipulieren möchte. Ich bastel auch "böse" Seiten, um den Schülern daran die Gefahren zu erläutern.

Das Firewalls keine Daten ändern ist auch klar, aber sie schauen rein (zumindest schauen sie auf den Port) und lassen sie durch oder nicht - also fangen sie Pakete ab.

Für mich sehe ich 2 Möglichkeiten:

1. Ich nehme das Paket direkt aus der Incoming-Queue raus, bearbeite es und schicke es dann an die Output-Queue oder

2. Ich fange das Pakte ab (droppen) und bastel mir dann ein komplett neues Paket.

>Wenn Du wirklich IP-Pakete aendern und erneut versenden willst, dann schau Dir in Deinem Sniffingtool Deiner Wahl die Moeglichkeiten der PCAP-Dateien an.

Hier wird es interessant PCAP-Dateien. Was meinst du damit genau? Ich kenne PCAP als Treiber. Ich benutze zB Wireshark als Tool, wie kann ich aber damit Pakete manipulieren?

Gruß

Master

Link zu diesem Kommentar
Auf anderen Seiten teilen

Richtig, PCAP ist die Treiber-Bibliothek libpcap.

Die Windows-Version heisst WinPCAP.

PCAP heisst auch ein gebraeuchliches Dateiformat zum Exportieren/Importieren von mitgeschnittenem Traffic.

Es wird von vielen Sniffingtools, Portscannern, IDS-Systemen und Vulnerability Management Systemen unterstuetzt, die wiederum selbst die libpcap/WinPCAP nutzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Fakt ist: Es sollte (zumindest von der Theorie her) kein Problem sein...

Natürlich ist es in der Theorie kein Problem, da auch die Pakete nur mit Wasser kochen. Sprich sie bestehen auch nur aus normalem Text.

Wie der aufgebaut ist etc erfährst du in den Protokollspezifikationen, die es im Netz bestimmt oft genug zu finden gibt.

Praktisch das etwas größere Problem ist es dann, beim jeweiligen Betriebssystem die Daten abzufangen. Dazu kann ich dir speziell nichts sagen. Ich würde dir aber einen Blick in die WinAPI empfehlen, da findest du bestimmt (irgendwo) etwas ;)

Etwas leichter sollte das ganze gehen, wenn du das als einen (transparenten) Proxy auslegst. Die Anfragen kommen alle zu deinem Programm und das schickt sie dann an den Zielserver weiter und bekommt natürlich auch die Antwort und gibt sie dann an den Client zurück. Natürlich kannst du dann alles mit den Daten machen was du willst. Du kannst damit sogar SSL-Verschlüsselungen "knacken". Das ganze ist als Man-in-the-middle bekannt.

Diese Art der Lösung hat auch den Vorteil, dass du das nicht auf Paketebene machen musst.

Und zu deinem droppen oder nicht. Wenn du es geschafft hast dich in den Netzwerkverkehr einzuklinken dann kommt das eh aufs selbe raus. Wenn du ein Paket manipulierst musst du das nach der Manipulation weiterschicken und droppst damit ja auf jeden Fall das eigentliche Paket und schickst das geänderte los. Selbst wenn du es nicht manipulierst und nur untersuchst hast du es ja abgefangen und musst es danach erneut losschicken. Somit ist es auch ein droppen und erneut losschicken.

Link zu diesem Kommentar
Auf anderen Seiten teilen

[...]

Selbst wenn du es nicht manipulierst und nur untersuchst hast du es ja abgefangen und musst es danach erneut losschicken. Somit ist es auch ein droppen und erneut losschicken.

Ist das so? Ich meine nicht. Denn: nur weil ich es mir anschaue, heißt es noch lange nicht, dass daraus ein neues Paket wird. Beispiel Netcat. Platt formuliert: der vorbeiziehende Traffic wird einfach weiterhin ganz normal behandelt und nebenher noch über stdout ausgegeben. Da wird dann spontan nichts manipuliert.

@Master3: schau dir mal netcat an:

Overview

********

Netcat is a simple Unix utility which reads and writes data across

network connections, using TCP or UDP protocol. It is designed to be a

reliable "back-end" tool that can be used directly or easily driven by

other programs and scripts. At the same time, it is a feature-rich

network debugging and exploration tool, since it can create almost any

kind of connection you would need and has several interesting built-in

capabilities. Netcat, or "nc" as the original program was named,

should have been supplied long ago as another one of those cryptic but

standard Unix tools.

Könnte interessant sein und wäre sicherlich auch via cygwin unter Windows nutzbar - wenn es nicht sogar Windows-Versionen gibt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist das so? Ich meine nicht. Denn: nur weil ich es mir anschaue, heißt es noch lange nicht, dass daraus ein neues Paket wird. Beispiel Netcat. Platt formuliert: der vorbeiziehende Traffic wird einfach weiterhin ganz normal behandelt und nebenher noch über stdout ausgegeben. Da wird dann spontan nichts manipuliert.

Wenn du es nur anschaust und sonst nichts damit vorhast ok. Aber ich meinte eine Untersuchung machst um zu schauen ob du es ändern willst. Dann kannst du es nicht nur im "Vorbeiflug" anschauen sondern musst es abfangen.

Und nur anschauen bin ich mir nicht sicher. Es kommt auf die Software drauf an, bzw die API. Leitet die Verkehr aus oder gibt es diese möglichkeit nicht. Wenn sie den Verkehr nebenbei auch ausleiten kann (zum loggen o.ä.) dann kannst du den nur anschauen. Wenn diese Möglichkeit nicht gegeben ist geht das natürlich nicht und du musst den Verkehr erstmal abfangen. Aber soweit hatte ich mich damit nie beschäftigt.

EDIT:

Als Beispiel kann man da gut ein Wasserohr nehmen. Wenn du das Wasser beobachten willst, geht das direkt wenn das Rohr ein Fenster hat. Hat es kein Fenster musst du ein Ventil da einbauen welches das Wasser in einen Behälter von dir leitet und von wo aus du das Wasser dann wieder ins Rohr leitest. Du kannst das Wasser aber nicht in deinem Gefäß untersuchen und gleichzeitig das Wasser im Rohr durchlaufen lassen.

Bearbeitet von JesterDay
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 7 Monate später...

OMG !!!!"du erwartest doch keine wirklcih seriöse antwort darauf? warum willst du manipulieren? "

@Cold-Fusion: Wenn ich sowat schon lese... lamer !:upps

- Zentraler Advertisement Blocker.

- Advertisement injector.

@Master3:

ettercap und etterfilter solltest du dir mal anschauen. Kleiner Tip: replace("Accept-Encoding","Accept-MeMaster") für nen tcp.dst == 80 lässt dich nicht nur gzip komprimierte HTML dateien sehen :)

Vielleicht solltest du dir auch mal die HTTP-Request-Methode Trace anschauen. wenn du wirklich an ids interessiert bist und nicht selber ein i bist :D

mfg max.

Zensur ist das Eingeständniss einer Regierung, die keine intelligenten Menschen sondern nur hirnlose gutgläubige Trottel regieren kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast
Dieses Thema wurde nun für weitere Antworten gesperrt.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...