gpt4 book ai didi

wifi - 在监控模式下使用 libpcap 嗅探 wifi

转载 作者:行者123 更新时间:2023-12-04 14:45:07 33 4
gpt4 key购买 nike

问题陈述

调用pcap_activate()结果 PCAP_ERR_RFMON_NOTSUP错误,即不支持射频监控模式。

上下文

我正在编写小型 C 程序,其工作是在监听模式下监听笔记本电脑的 wifi 卡。笔记本电脑运行的是 Ubuntu 12.04 LTS。我跑了airmon-ng start wlan0命令之后出现 mon0 接口(interface)。下面显示了运行 airmon 命令后 iwconfig 命令的输出:

$ iwconfig
mon0 IEEE 802.11bgn Mode:Monitor Tx-Power=16 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off

eth0 no wireless extensions.

lo no wireless extensions.

wlan0 IEEE 802.11bgn ESSID:"SKY88F48"
Mode:Managed Frequency:2.412 GHz Access Point: 7C:4C:A5:3B:33:59
Bit Rate=52 Mb/s Tx-Power=16 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=43/70 Signal level=-67 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:4 Invalid misc:415 Missed beacon:0

问题

在我的程序中,我使用 pcap_create() 在设备 mon0 上创建网络句柄.然后我成功设置了快照长度和混杂模式。

当我检查是否可以设置 rfmon 时,使用 pcap_can_set_rfmon()方法,它返回正数。然后我使用 pcap_set_rfmon() 设置 rfmon成功通过的方法。我也设置了超时。最后当我调用 pcap_activate()它返回错误 PCAP_ERR_RFMON_NOTSUP ,即不支持射频监控模式。我正在以 root 身份运行我的程序。

需要注意的一点是,我安装了 wireshark 并开始监听 mon0,它成功捕获了所有流量。

最佳答案

您不需要在 mon0 上设置 rfmon 模式 - 它本质上处于监控模式。捕获它;这就是你对 Wireshark 所做的。

由于各种原因与

  • libnl 有多个不兼容的版本,因此选择正确的版本来构建 libpcap 显然是分发构建者的痛苦;
  • 选择与同时使用 libnl 和 libpcap 的应用程序使用的版本不同的版本,由于上述不兼容性而导致可怕的问题;

  • 适用于 Linux 的 libpcap rfmon 模式代码最适合大多数使用 libnl 的设备(本质上,它创建一个新的 monN 接口(interface),复制 airmon-ng 所做的工作,打开该接口(interface)进行捕获,并在捕获完成时将其删除),在许多 Linux 发行版中未启用,因为 libpcap 配置为不使用 libnl。

    因此,它在 Linux 上不能很好地工作。

    为 libpcap 编写代码以直接使用 netlink 套接字,而不是通过 libnl,在我的待办事项 list 上,但不幸的是,它落后于该 list 上的许多其他问题。

    关于wifi - 在监控模式下使用 libpcap 嗅探 wifi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22569164/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com