I am trying to learn a bit of packet generation using scapy. It looks pretty cool. Following some documentation, I do this:
l3=IP(dst="192.168.0.1", src="192.168.0.2", tos=(46 << 2))
But only to receive the error message:
Traceback (most recent call last): File "<console>", line 1, in <module> File "/usr/lib/python2.7/dist-packages/scapy/sendrecv.py", line 251, in send __gen_send(conf.L3socket(*args, **kargs), x, inter=inter, loop=loop, count=count,verbose=verbose, realtime=realtime) File "/usr/lib/python2.7/dist-packages/scapy/arch/linux.py", line 307, in __init__ self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type)) File "/usr/lib/python2.7/socket.py", line 187, in __init__ _sock = _realsocket(family, type, proto) error: [Errno 1] Operation not permitted
Running scapy as root solved the problem. But this is not what I wanted. Is this because a regular user cannot create a RAW socket? If so, is there a solution?
scapy
lang2
source share