[英]Not able to send packets in scapy on python3/Mac OS
我是 scapy 的新手,並試圖使用我的無線接口發送 icmp 數據包。 我不斷收到以下錯誤。 我在 python3 上使用最新的 scapy 版本。 當我嘗試使用 python3 shell 發送數據包時,我不斷收到分段錯誤 11 錯誤。 sr 和 send 都失敗了。
bash-3.2$ ifconfig en1
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 24:a0:74:ef:c2:0a
inet6 fe80::1421:2877:9b9f:8b7e%en1 prefixlen 64 secured scopeid 0x5
inet 192.168.0.56 netmask 0xffffff00 broadcast 192.168.0.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
bash-3.2$ ping -S 192.168.0.56 www.google.com
PING www.google.com (172.217.166.68) from 192.168.0.56: 56 data bytes
64 bytes from 172.217.166.68: icmp_seq=0 ttl=55 time=26.458 ms
64 bytes from 172.217.166.68: icmp_seq=1 ttl=55 time=21.927 ms
bASH-3.2$ scapy
WARNING: Cannot read wireshark manuf database
WARNING: Crypto-related methods disabled for IPsec, Dot11 and TLS
layers (needs python-cryptography v1.7+).
WARNING: No route found for IPv6 destination :: (no default route?)
INFO: Can't import python-cryptography v1.7+. Disabled WEP
decryption/encryption.
INFO: Can't import python-cryptography v1.7+. Disabled IPsec
encryption/authentication.
WARNING: IPython not available. Using standard Python shell instead.
AutoCompletion, History are disabled.
aSPY//YASa
apyyyyCY//////////YCa |
sY//////YSpcs scpCY//Pp | Welcome to Scapy
ayp ayyyyyyySCP//Pp syY//C | Version 2.4.0rc4
AYAsAYYYYYYYY///Ps cY//S |
pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy
SPPPP///a pP///AC//Y |
A//A cyP////C | Have fun!
p///Ac sC///a |
P////YCpc A//A | To craft a packet, you have to be a
scccccp///pSP///p p//Y | packet, and learn how to swim in
sY/////////y caa S//P | the wires and in the waves.
cayCyayP//Ya pY/Ya | -- Jean-Claude Van Damme
sY/PsY////YCc aC//Yp |
sc sccaCY//PCypaapyCP//YSs
spCPY//////YPSps
ccaacs
>>> sr(IP(dst='www.google.com')/ICMP())
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Library/Python/2.7/site-packages/scapy-2.4.0rc4-
py2.7.egg/scapy/sendrecv.py", line 364, in sr
s = conf.L3socket(promisc=promisc, filter=filter, iface=iface,
nofilter=nofilter)
File "/Library/Python/2.7/site-packages/scapy-2.4.0rc4-
py2.7.egg/scapy/arch/bpf/supersocket.py", line 57, in __init__
(self.ins, self.dev_bpf) = get_dev_bpf()
File "/Library/Python/2.7/site-packages/scapy-2.4.0rc4-
py2.7.egg/scapy/arch/bpf/core.py", line 98, in get_dev_bpf
raise Scapy_Exception("No /dev/bpf handle is available !")
Scapy_Exception: No /dev/bpf handle is available
用sudo scapy
試試,它對我sudo scapy
。
在這里我找到了解決方案: https : //github.com/secdev/scapy/issues/1343
guedou 於 9 月 8 日評論Scapy 需要以 root 身份運行才能發送數據包。
我遇到了同樣的問題,但也只是嗅探數據包(即,不發送,我知道需要 root)。 因此,只需啟動scapy
並運行>>> sniff()
將返回Scapy_Exception: No /dev/bpf handle is available
。
事實證明,默認情況下 /dev/bpf* 設備歸wheel
擁有,而我的普通用戶不屬於該wheel
。 這就是sudo scapy
起作用的原因。 問題是在 sudo 下運行並不總是很方便。
我不知道 /dev/bpf* 設備是否歸任何其他組所有,但快速解決方法表明他們可以...
只需安裝 Wireshark! 一旦安裝了wireshark,/dev/bpf* 設備就歸access_bpf
,非root 用戶添加到該組中。
我在 Mac 上以具有管理員權限的用戶身份使用 scapy 運行時遇到了同樣的問題。
解決方案是以超級用戶身份運行 - sudo
我在 python 2.7.17 和 3.7.6 上都試過了。 確保您有更新的 scapy 包,請參閱https://scapy.readthedocs.io/en/latest/installation.html 上的安裝說明
scapy 的 root 管理員權限列在以下 github 問題文檔https://github.com/secdev/scapy/issues/1851
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.