Search code examples
c#ip-addressspoofingsharppcap

IP address spoofing using SharpPcap on C#


I will use SharpPcap framework to make my spoofing program, so I need to edit my machine's IP address of the packet with another IP address on the source address field.

I found some example on SharpPcap project, but how can I edit or change the source address field of sending packet?

Here is the sample code for sending random packets:

byte[] bytes = GetRandomPacket();

private static byte[] GetRandomPacket()
{
    byte[] packet = new byte[200];
    Random rand = new Random();
    rand.NextBytes( packet );
    return packet;
}

- device.SendPacket( bytes );


Solution

  • Try Pcap.Net instead.

    Here is how you build a simple IPv4 packet with specific source and destination addresses and a custom payload in Pcap.Net:

    Packet packet =
        PacketBuilder.Build(DateTime.Now,
                            new EthernetLayer
                                {
                                    Source = new MacAddress("11:22:33:44:55:66"),
                                    Destination = new MacAddress("11:22:33:44:55:67"),
                                },
                            new IpV4Layer
                                {
                                    Source = new IpV4Address("1.2.3.4"),
                                    Destination = new IpV4Address("1.2.3.5"),
                                    Ttl = 64,
                                    Identification = 100,
                                },
                            new PayloadLayer
                                {
                                    Data = new Datagram(new byte[] {1, 2, 3, 4})
                                });