如何在Mac OS上修复BPF设备权限以使用tcpdump

时间:2019-08-22 17:55:42

标签: macos wireshark wireless tcpdump bpf

我可能已经做了一些更改我的设备权限的操作,因为出现错误:"tcpdump: en0: You don't have permission to capture on that device"。 TCP部分无关紧要,因为我在使用bpf设备时遇到问题。我试图将权限恢复为默认值,并将其设置为以下所示的内容,但是还是遇到问题sudo

我具有重置权限,并已多次重启。另外,我的笔记本电脑也被更换了,只有硬盘才被转移。

zjam@ZimSec:~$ tcpdump -i en0

tcpdump: en0: You don't have permission to capture on that device
((cannot open BPF device) /dev/bpf0: Permission denied
)
zjam@ZimSec:~$ sudo tcpdump -i en0

tcpdump: en0: You don't have permission to capture on that device
((cannot open BPF device) /dev/bpf0: Permission denied)

0 crw-rw----   1 root  access_bpf      23,   0 Aug 22 13:27 bpf0

0 crw-rw----   1 root  access_bpf      23,   1 Aug 22 13:22 bpf1

0 crw-rw----   1 root  access_bpf      23,   2 Aug 22 13:22 bpf2

0 crw-rw----   1 root  access_bpf      23,   3 Aug 22 13:22 bpf3

Mac Version 10.14.6

2 个答案:

答案 0 :(得分:1)

我的同事有同样的问题,我们通过检查清单来解决此问题。

  1. 您似乎已在Mac上安装了Wireshark,因此/dev/bpf0的组为access_bpf,已被ChmodBPF更改,因此必须确保您位于{ {1}}组。

    bpf_access
  2. 确保已在系统上启用系统集成保护,如果未启用,则将系统重新引导至恢复模式,并使用命令$ id uid=501(gasolwu) gid=20(staff) groups=20(staff),501(access_bpf),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),250(_analyticsusers),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh),701(com.apple.sharepoint.group.1) 启用SIP,然后再次重新引导。

    csrutil enable
  3. 如果您已安装$ csrutil status System Integrity Protection status: enabled. 之类的第三方防火墙应用程序,则必须关闭网络过滤或重新启用它,然后重试。

我们在第三步解决了这个问题,希望对您有所帮助。

答案 1 :(得分:0)

今天解决了这个问题。通过上面的命令行示例在chmodbf组中找到我,但是无法运行tcpdump。同样的错误。

原来,我必须先启动wireshark,然后在wireshark中进行安全提示,然后从wireshark窗口中的链接下载ChmodBPF工具。

enter image description here