我想知道是否有可能在没有 root 权限的情况下运行 Scapy 的“嗅探(...)”。
它用于捕获某些包的应用程序中。但我不想使用 root 权限运行整个应用程序或更改 scapy 本身的任何内容。
提前致谢!
编辑:
为了测试,我使用以下代码:
from scapy.all import *
def arp_monitor_callback(pkt):
if ARP in pkt and pkt[ARP].op in (1,2): #who-has or is-at
return pkt.sprintf("%ARP.hwsrc% %ARP.psrc%")
sniff(prn=arp_monitor_callback, filter="arp", store=0)
我只能使用 sudo 运行它。
我尝试使用
sudo setcap 'cap_net_admin=+eip' test.py
设置功能。但它没有显示任何效果。甚至 all
功能也无济于事。 最佳答案
如果您希望能够仅以./test.py
的身份执行脚本,则需要为运行脚本的二进制文件(即python和tcpdump)设置功能:
setcap cap_net_raw=eip /usr/bin/pythonX.X
setcap cap_net_raw=eip /usr/bin/tcpdump
其中X.X是用于运行脚本的python版本。
(请注意,您的系统上的路径可能不同)
请注意,这允许任何人打开系统上的原始套接字。
关于python-2.7 - 没 Root过的Python Scapy嗅探,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36215201/