myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Netzwerktechnologien » ARP-poisoning ohne Bibliotheken machbar, welches Format hat ein ARP-Paket & welcher Port?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

ARP-poisoning ohne Bibliotheken machbar, welches Format hat ein ARP-Paket & welcher Port?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
HexEdit HexEdit ist männlich
myCSharp.de-Mitglied

Dabei seit: 18.02.2019
Beiträge: 38
Entwicklungsumgebung: VisualStudio 2019


HexEdit ist offline

ARP-poisoning ohne Bibliotheken machbar, welches Format hat ein ARP-Paket & welcher Port?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,
ich möchte ein ARP-poisoning Tool programmieren (bitte fragt nicht warum xD).

Meine Frage wäre: Ist so etwas ohne zusätzliche Bibliotheken zu bewerkstelligen wann ja, welches format hat so ein ARP-Packet bzw wie bilde ich so etwas in C#
und über welchen Port muss ich es senden.

Ich hab im Internet folgenden code zum Format in C# gefunden:

C#-Code:
  // Get adapter hardware address and IP address
  Adapter oAdapter = (Adapter)oPktX.Adapter;
  string sHWAddr = oAdapter.HWAddress;
  string sIPAddr = oAdapter.NetIP;
  string sIPMask = oAdapter.NetMask;
  Console.WriteLine("MAC Addr = " + sHWAddr);
  Console.WriteLine("IP  Addr = " + sIPAddr);

  // Send ARP request for this IP address
  string sIPReso = "11.12.13.14";
  char [] aDelimiter = {'.'};
  string[] aIPReso = sIPReso.Split(aDelimiter, 4);
  string[] aIPAddr = sIPAddr.Split(aDelimiter, 4);

  // Build ARP packet
  Object[] oPacket = new Object[] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    Convert.ToByte("0x" + sHWAddr.Substring(0,2), 16),
    Convert.ToByte("0x" + sHWAddr.Substring(2,2), 16),
    Convert.ToByte("0x" + sHWAddr.Substring(4,2), 16),
    Convert.ToByte("0x" + sHWAddr.Substring(6,2), 16),
    Convert.ToByte("0x" + sHWAddr.Substring(8,2), 16),
    Convert.ToByte("0x" + sHWAddr.Substring(10,2), 16),
    0x08, 0x06, 0x00, 0x01,
    0x08, 0x00, 0x06, 0x04, 0x00, 0x01,
    Convert.ToByte("0x" + sHWAddr.Substring(0,2), 16),
    Convert.ToByte("0x" + sHWAddr.Substring(2,2), 16),
    Convert.ToByte("0x" + sHWAddr.Substring(4,2), 16),
    Convert.ToByte("0x" + sHWAddr.Substring(6,2), 16),
    Convert.ToByte("0x" + sHWAddr.Substring(8,2), 16),
    Convert.ToByte("0x" + sHWAddr.Substring(10,2), 16),
    Convert.ToByte(aIPAddr[0], 10),
    Convert.ToByte(aIPAddr[1], 10),
    Convert.ToByte(aIPAddr[2], 10),
    Convert.ToByte(aIPAddr[3], 10),
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    Convert.ToByte(aIPReso[0], 10),
    Convert.ToByte(aIPReso[1], 10),
    Convert.ToByte(aIPReso[2], 10),
    Convert.ToByte(aIPReso[3], 10),
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

  // Send 100 ARP requests      
  oAdapter.SendPacket(oPacket, 100);

ka ob das so richtig ist, aber selbst wenn ja, verstehe ich das nicht wirklich,
da das wie ich es sehe mit externen Bibliotheken gecodet wurde und ich ja auch kein
Copy-Paste code den ich nicht verstehe verwenden will.

Über einen kleinen Beispielcode(mit Erklärung) würde ich mich freuen. Danke im Voraus.
18.02.2019 19:07 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.262
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

ARP Poisoning wird i.d.R. nicht für gute Zweck eingesetzt.
Daher verstößt dies prinzipiell gegen den Forengrundsatz und ist daher dicht.

Du kannst aber gerne erklären (via PN) was du vor hast.
Sollte dies ein legitimer Grund sein, so würden wir das Thema wieder eröffnen.
Die Aussage 'fragt nicht' reicht hier aber absolut nicht - so läuft der Hase nicht ;-)

Edit: wir können natürlich die Richtigkeit nicht überprüfen, aber die Erklärung via PN macht soweit tendenziell Sinn.
Daher ist das Thema wieder offen.
18.02.2019 21:36 Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.412
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

den Code hast du ja von  How to broadcast ARP packet in C#.
Dort wird u.a. auch WinPCap empfohlen - für .NET gibt es auch eine Umsetzung:  Pcap.Net (anscheinend eine Mischung aus C# und C++/CLI).
Ohne so eine Lib müßtest du selber die Funktionalität nachbauen (für das Original-WinPCap gibt es die Sourcen unter  WinPcap Developer' Resources - ist aber C-Code!).

Und in  Spoofing the ARP Table of Remote Computers on a LAN gibt es ein Beispieltool (inkl. C++-Sourcen).

Und im Wiki-Artikel  Address Resolution Protocol (ARP9 findest du den Aufbau eines ARP-Pakets.

PS: In dem von dir geposteten Code sollte statt

C#-Code:
Object[] oPacket = new Object[] { ... };

besser

C#-Code:
byte[] oPacket = new byte[] { ... };

benutzt werden.
19.02.2019 09:36 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
HexEdit HexEdit ist männlich
myCSharp.de-Mitglied

Dabei seit: 18.02.2019
Beiträge: 38
Entwicklungsumgebung: VisualStudio 2019

Themenstarter Thema begonnen von HexEdit

HexEdit ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Danke für die schnelle Antwort hast mir damit sehr geholfen.
19.02.2019 18:33 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 9 Monate.
Der letzte Beitrag ist älter als 9 Monate.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 15.12.2019 11:42