如何捕获从无线路由器发送的探测请求数据或探测响应数据

时间:2014-01-14 17:33:02

标签: linux openwrt

我有一个带OpenWrt的tplink-wr703n无线路由器。

我知道当适配器处于监控模式时,我可以捕获各种数据。

我希望适配器在主模式下工作,我还想捕获从客户端发送的探测请求数据或从我的路由器发送的探测响应数据。

我曾尝试使用libpcap来捕获数据,但我失败了。

你能告诉我如何获得这些数据吗?

2 个答案:

答案 0 :(得分:2)

您可以同时在一张无线电卡上设置多种模式。

使用“iw”命令你应该能够创建一个带有类型监视器的辅助wifi设备接口,我想你可以从这个读取所有帧类型。

请参阅http://wireless.kernel.org/en/users/Documentation/iw/vif/

答案 1 :(得分:-1)

我也在尝试准备一个scapy脚本来捕获探测请求。 有一个印度人制作了这个精彩视频:https://www.youtube.com/watch?v=Z1MbpIkzQjU

他的剧本似乎在他的环境中奏效,但出于某种原因,我无法让这个为我工作。

感谢您的协助。

脚本是:

#!/usr/bin/python

import sys
from scapy.all import *

clientprobes = set()

def PacketHandler(pkt):

    if pkt.haslayer(Dot11ProbeReq):

       if len(pkt.info) > 0:
          testcase = pkt.addr2 + '_ _ _' + pkt.info
          if testcase not in clientprobes:
            clientprobes.add(testcase)
            print "New Probe Found: " + pkt.addr2 + ' ' + pkt.info

            print "\n-----------Client Probes Table-------------\n"
            counter = 1
            for probe in clientprobes:
                [client, ssid] = probe.split('---')
                print counter, client, ssid
                counter = counter + 1
            print "\n--------------------------------------------\n"

sniff(iface = sys.argv[1], count = int(sys.argv[2]), prn = PacketHandler)