Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I create a sample IPSec packet using python scapy

I will create a VPN tunnel between two routers. So i need to send some raw packets generated by scapy through the VPN tunnel. Basically i need to generate some raw IPSec packets.

like image 306
Vinayak Hosamani Avatar asked May 08 '26 12:05

Vinayak Hosamani


1 Answers

Here is scapy’s test file for IPSec https://github.com/secdev/scapy/blob/master/test/ipsec.uts

It provides a lot of examples such as

import socket

p = IP(src='1.1.1.1', dst='2.2.2.2')
p /= TCP(sport=45012, dport=80)
p /= Raw('testdata')
p = IP(raw(p))
p

sa = SecurityAssociation(ESP, spi=0x222,
                         crypt_algo='NULL', crypt_key=None,
                         auth_algo='NULL', auth_key=None)

e = sa.encrypt(p)
e

assert(isinstance(e, IP))
assert(e.src == '1.1.1.1' and e.dst == '2.2.2.2')
assert(e.chksum != p.chksum)
assert(e.proto == socket.IPPROTO_ESP)
assert(e.haslayer(ESP))
assert(not e.haslayer(TCP))
assert(e[ESP].spi == sa.spi)
assert(b'testdata' in e[ESP].data)

d = sa.decrypt(e)
d
like image 198
Cukic0d Avatar answered May 10 '26 02:05

Cukic0d



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!