python scapyでsendを使いたい。
参考書は「つくりながら学ぶ!Pythonセキュリティプログラミング(https://book.mynavi.jp/supportsite/detail/9784839968502.html)」を使っています。
そこでパケット生成とパケット送受信の項目があるのですが、
sendがSyntaxError: invalid syntaxで使えないようです。
Googleで色々調べてみましたが、よく分からなかったので教えてください。
よろしくお願いします!
発生している問題・エラーメッセージ
>>> send(tcp_pkt) Traceback (most recent call last): File "<console>", line 1, in <module> File "/usr/local/lib/python3.6/dist-packages/scapy/sendrecv.py", line 312, in send socket = conf.L3socket(*args, **kargs) File "/usr/local/lib/python3.6/dist-packages/scapy/arch/linux.py", line 445, in __init__ self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type)) # noqa: E501 File "/usr/lib/python3.6/socket.py", line 144, in __init__ _socket.socket.__init__(self, family, type, proto, fileno) PermissionError: [Errno 1] Operation not permitted >>> >>> sudo send(tcp_pkt) Exception ignored in: <bound method SuperSocket.__del__ of <scapy.arch.linux.L3PacketSocket object at 0x7f425ec98390>> Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/scapy/supersocket.py", line 123, in __del__ self.close() File "/usr/local/lib/python3.6/dist-packages/scapy/arch/linux.py", line 481, in close set_promisc(self.ins, self.iface, 0) AttributeError: 'L3PacketSocket' object has no attribute 'ins' File "<console>", line 1 sudo send(tcp_pkt) ^ SyntaxError: invalid syntax
該当のソースコード
Python
1>>> from scapy.all import * 2>>> 3>>> from scapy.all import Ether 4>>> from scapy.all import IP 5>>> from scapy.all import TCP 6>>> 7>>> tcp_pkt = Ether()/IP()/TCP() 8>>> 9>>> ip = IP(src='127.0.0.1', dst='xxx.xxx.xxx.xxx') 10>>> tcp = TCP(dport=8000, flags='S') 11>>> tcp_pkt = ip/tcp 12>>> tcp_pkt 13<IP frag=0 proto=tcp src=127.0.0.1 dst=Net('xxx.xxx.xxx.xxx') |<TCP dport=8000 flags=S |>> 14>>> 15>>> from scapy.all import send 16>>> send(tcp_pkt) 17Traceback (most recent call last): 18 File "<console>", line 1, in <module> 19 File "/usr/local/lib/python3.6/dist-packages/scapy/sendrecv.py", line 312, in send 20 socket = conf.L3socket(*args, **kargs) 21 File "/usr/local/lib/python3.6/dist-packages/scapy/arch/linux.py", line 445, in __init__ 22 self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type)) # noqa: E501 23 File "/usr/lib/python3.6/socket.py", line 144, in __init__ 24 _socket.socket.__init__(self, family, type, proto, fileno) 25PermissionError: [Errno 1] Operation not permitted 26>>> 27>>> sudo send(tcp_pkt) 28Exception ignored in: <bound method SuperSocket.__del__ of <scapy.arch.linux.L3PacketSocket object at 0x7f425ec98390>> 29Traceback (most recent call last): 30 File "/usr/local/lib/python3.6/dist-packages/scapy/supersocket.py", line 123, in __del__ 31 self.close() 32 File "/usr/local/lib/python3.6/dist-packages/scapy/arch/linux.py", line 481, in close 33 set_promisc(self.ins, self.iface, 0) 34AttributeError: 'L3PacketSocket' object has no attribute 'ins' 35 File "<console>", line 1 36 sudo send(tcp_pkt) 37 ^ 38SyntaxError: invalid syntax 39
試したこと
help()コマンドでsendを入力し、出力されたものを読んだのですが、
参考書と違いすぎてよく分かりませんでした。
補足情報(FW/ツールのバージョンなど)
sys.version
'3.6.7 (default, Oct 22 2018, 11:32:17) \n[GCC 8.2.0]'
回答1件
あなたの回答
tips
プレビュー