【问题标题】:How to send both 802.11 management frames and data frames using RAW sockets in linux如何在 linux 中使用 RAW 套接字发送 802.11 管理帧和数据帧
【发布时间】:2018-01-15 21:48:53
【问题描述】:

我正在尝试构建一个应用程序,该应用程序将使用原始套接字从用户空间一起发送 802.11 管理帧和数据帧。我能够使用 sendto() 函数发送数据帧,但我也需要发送管理帧,我主要是卡住了。有没有可能的方法?

【问题讨论】:

  • 你试过谷歌搜索一下吗?看看这个Github link
  • 你需要使用 libtins 之类的东西,它使用了 radiotap 扩展
  • @Gaurav 我已经查看了这个 Github 链接,实际上已经实现了。那么问题是当我检查wireshark中的痕迹时,802.11帧是数据帧,但我期望的是使用RAW套接字发送控制帧。

标签: c linux raw-sockets


【解决方案1】:

为了从无线接口发送管理、数据或任何类型的纯原始数据包,您必须执行以下操作:

  1. 确保无线接口硬件在监控模式下支持数据包注入。
  2. 将无线接口设置为监控模式。例如

sudo ifconfig wlan0 关闭
sudo iwconfig wlan0 模式监视器

或者您也可以创建一个新的虚拟监视器界面。

sudo iw dev wlan0 interface add mon0 type monitor

  1. 现在打开一个到这个监控模式接口的原始套接字。

  2. 最后,在为管理和控制帧构建无线 802.11 数据包时,在开头构建并附加适当的 radiotap 标头。由于您基本上绕过了所有较低级别的无线驱动程序(处理管理和控制帧),因此包含 radiotap 标头成为您的工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    相关资源
    最近更新 更多