Abgefangenes TCP Paket wieder versenden

  • Sonstige

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von kayle.

    Abgefangenes TCP Paket wieder versenden

    Hallo zusammen,

    ich besitze einen Robotersauger der sich über das Internet steuern lässt. Dazu verbindet sich sowohl der Roboter als auch die App auf meinem Smartphone über das Wlan mit einem Server. Der Server ( steht irgendwo in China ) steigt des öfteren aus und ich kann dann den Sauger nicht steuern.

    Meine Idee wäre jetzt die TCP Paket die der Sauger über den Server empfängt zu sniffen und lokal über eine separate App an den Sauger zu senden. Dazu habe ich über meine Fritzbox die Pakete die zur Sauger IP gesendet werden gesnifft und mir mit Wireshark angesehen. Leider bin ich nicht der Netzwerk Spezialist um diese Pakete "einfach" lokal an den Sauger zu senden.

    Jetzt meine Frage: Wie kann ich Pakete die über Wireshark ( Fritzbox ) gesnifft wurden einfach lokal ( über einen PC oder Android Device ) versenden ? Geht das überhaupt ?

    Danke im Voraus
    Gruß Kay

    kayle schrieb:

    Netzwerk Spezialist um diese Pakete "einfach" lokal an den Sauger zu senden.
    Musst' auch keiner sein. Das einzige was sinnvoll wäre, ist wenn du dich ein wenig mit der Materia auseinander gesetze hast und das ISO/OSI Modell verstehst. Ein bisschen Layer4-Kenntniss, eine Prise Wissen, wie ein TCP Paket augebaut ist (Frame, Header, Trailer - sind alles recht fancy Wörter, aber die musst du können und wissen, was dahinter steht). Das versenden ist dann IMHO die kleinste Hürde.

    kayle schrieb:

    Geht das überhaupt ?
    Prinzipiell geht das.

    kayle schrieb:

    Wie kann ich Pakete die über Wireshark ( Fritzbox ) gesnifft wurden einfach lokal ( über einen PC oder Android Device ) versenden ?
    Wie oben beschrieben: Du brauchst Wissen, WIE ein Paket aufgebaut ist, dann musst du es nur noch nachstellen und versenden.

    Ich hab dir hier mal ein wenig zusammen gesucht:
    How send raw ethernet packet with C#?
    C# Raw Socket Ping Program Example
    A Network Sniffer in C#
    Raw Ethernet Packet Sending
    SharpPcap - A Packet Capture Framework for .NET

    Einfach ein bisschen einlesen und verstehen, dann klappt das schon ;D
    Lg Radinator

    PS: Wenn du das ganze unter Windows machen willst, dann passt das ganze eh, da du dich soswieso im .NET Bereich aufhälst. Sollte du allerdings das ganze unter Android machen wollen, empfehle ich dir die Community Edition von Visual Studio - sofern du sie noch nicht hast - dir zu holen und dir die Xamarin-Erweiterung zu holen (VS kannst du auch offline installieren). Mit Xamarin hast du die Möglichkeit deine Anwendung in C# unter .NET zu entwickeln, sie aber auf Windows-Devices, Android UND iOS laufen zu lassen!
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Also ich hab verstanden das du die Pakete die der Server der in China steht selbst zusammen basteln willst (emulieren).

    Dafür musst du es aber erstmal schaffen, das der Roboter sich zu deinem Server verbinder anstatt zu dem in China, hast du dir darüber mal gedanken gemacht? Oder willst du den Traffic der an den China server geht einfach umleiten? So MITM mäßig?

    jmj schrieb:

    Also ich hab verstanden das du die Pakete die der Server der in China steht selbst zusammen basteln willst (emulieren).

    Dafür musst du es aber erstmal schaffen, das der Roboter sich zu deinem Server verbinder anstatt zu dem in China, hast du dir darüber mal gedanken gemacht? Oder willst du den Traffic der an den China server geht einfach umleiten? So MITM mäßig?


    Hi,

    ich habe jetzt den Internet Traffic mal mitgeschnitten ( Wireshark ) und auf die IP des Saugers gefiltert. Dann sehe ich ja welche Pakete vom Server zum Sauger geschickt werden. Jetzt war mein Gedanke, eben genau diese Pakete lokal aus meinem Heimnetz zu schicken. Ich möchte mich unabhängig vom Server machen. Dabei ist es erstmal zweitrangig ob die Pakete von einem Windows PC, Linux PC oder Android Device geschickt werden. Hauptsache lokal würde funktionieren.

    Gruß Kay
    @kayle Dafür musst du, wie ich oben schon erwähnt habe, den Sauger dazu bringen sich nicht zum China Server zu verbinden sondern zu deinem eigenen, bzw. es irgendwie schaffen deine eigenen Pakete einzuschleusen. Wie das genau funktioniert ist unterschiedlich, irgendwoher muss der Sauger ja wissen wohin er sich verbinden soll. Die Frage ist nur wie. Und ob es anders funktioniert weiß ich ehrlich gesagt nicht so genau, man kann vielleicht mittels Man-in-the-Middle den Traffic vom Sauger zum China Server umleiten auf eine andere Adresse, das wäre die "unschönere" Variante. Vielleicht gibt es noch mehr Möglichkeiten über die ich jetzt allerdings selbst nicht Bescheid weiß. Ist die Verbindung denn SSL/TLS gesichert? Wenn ja, wird das ganze noch schwieriger.

    jmj schrieb:

    @kayle Dafür musst du, wie ich oben schon erwähnt habe, den Sauger dazu bringen sich nicht zum China Server zu verbinden sondern zu deinem eigenen, bzw. es irgendwie schaffen deine eigenen Pakete einzuschleusen. Wie das genau funktioniert ist unterschiedlich, irgendwoher muss der Sauger ja wissen wohin er sich verbinden soll. Die Frage ist nur wie. Und ob es anders funktioniert weiß ich ehrlich gesagt nicht so genau, man kann vielleicht mittels Man-in-the-Middle den Traffic vom Sauger zum China Server umleiten auf eine andere Adresse, das wäre die "unschönere" Variante. Vielleicht gibt es noch mehr Möglichkeiten über die ich jetzt allerdings selbst nicht Bescheid weiß. Ist die Verbindung denn SSL/TLS gesichert? Wenn ja, wird das ganze noch schwieriger.


    Habe jetzt den Netzwerktraffic eine längere Zeit gesnifft. Ohne das ich an der APP etwas mache sendet der Sauger UDP Pakete an den Server nach China und bekommt darauf UDP Pakete zurück. Sobald ich z.B. in der APP auf "Zurück zur Basis" klicke werden TCP Pakete TLS verschlüsselt geschickt. Alles nicht so einfach. Der Aufwand wird für mich leider zu groß sein. Mal sehen ob der Hersteller eventuell was dazu beitragen kann. Werde diesen mal anfragen.

    Gruß Kay