如何抓取无线网络数据包

结论:
Mac: airport, tcpdump
Windows: Omnipeek
Linux: tcpdump, airmon-ng

以太网里抓包很简单,各种软件一大把,什么Wireshark,Ethereal,Sniffer Pro 一抓一大把。不过如果是无线数据包,就要稍微麻烦一点了。网上找了一堆罗里吧嗦的文章,绕来绕去的,其实抓无线包一条命令就好了。

Windows下因为无线网卡驱动会拒绝进入混杂模式,所以比较蛋疼,一般是用Omnipeek去弄,不细说了。

Linux和Mac就很方便了。只要用tcpdump就可以,一般系统都自带了。最后-i选项的参数填想抓的网络设备名就行。Mac默认的WiFi网卡是en0。
tcpdump -Ine -i en0

主要就是指定-I参数,进入监控模式。
-I :Put the interface in "monitor mode"; this is supported only on IEEE 802.11 Wi-Fi interfaces, and supported only on some operating systems.
进入监控模式之后计算机用于监控的无线网卡就上不了网了,所以可以考虑买个外置无线网卡来抓包,上网抓包两不误。

抓了包能干很多坏事,比如WEP网络抓几个IV包就可以用aircrack破密码,WPA网络抓到一个握手包就能跑字典破无线密码了。如果在同一个网络内,还可以看到各种未加密的流量……什么小黄图啊,隐私照啊之类的……。

假如我已经知道某个手机的MAC地址,那么只要
tcpdump -Ine -i en0 | grep $MAC_ADDRESS
就过滤出该手机相关的WiFi流量。

具体帧的类型详情参看802.11协议,《802.11无线网络权威指南》等。

顺便解释以下混杂模式与监控模式的区别:
混杂(promiscuous)模式是指:接收同一个网络中的所有数据包,无论是不是发给自己的。
监控(monitor)模式是指:接收某个物理信道中所有传输着的数据包。

RFMON
RFMON is short for radio frequency monitoring mode and is sometimes also described as monitor mode or raw monitoring mode. In this mode an 802.11 wireless card is in listening mode (“sniffer” mode).

The wireless card does not have to associate to an access point or ad-hoc network but can passively listen to all traffic on the channel it is monitoring. Also, the wireless card does not require the frames to pass CRC checks and forwards all frames (corrupted or not with 802.11 headers) to upper level protocols for processing. This can come in handy when troubleshooting protocol issues and bad hardware.

RFMON/Monitor Mode vs. Promiscuous Mode
Promiscuous mode in wired and wireless networks instructs a wired or wireless card to process any traffic regardless of the destination mac address. In wireless networks promiscuous mode requires that the wireless card be associated to an access point or ad-hoc network. While in promiscuous mode a wireless card can transmit and receive but will only captures traffic for the network (SSID) to which it is associated.

RFMON mode is only possible for wireless cards and does not require the wireless card to be associated to a wireless network. While in monitor mode the wireless card can passively monitor traffic of all networks and devices within listening range (SSIDs, stations, access points). In most cases the wireless card is not able to transmit and does not follow the typical 802.11 protocol when receiving traffic (i.e. transmit an 802.11 ACK for received packet).

Both modes have to be supported by the driver of the wired or wireless card.

另外在研究抓包工具时,发现了Mac下有一个很好用的命令行工具airport,可以用来抓包,以及摆弄Macbook的WiFi。
位置在
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport

可以创建一个符号链接方便使用:
sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport  /usr/sbin/airport

常用的命令有:
显示当前网络信息:airport -I
扫描周围无线网络:airport -s
断开当前无线网络:airport -z
强制指定无线信道:airport -c=$CHANNEL

抓无线包,可以指定信道:
airport en0 sniff [$CHANNEL]
抓到的包放在/tmp/airportSniffXXXXX.cap,可以用tcpdump, tshark, wireshark等软件来读。

最实用的功能还是扫描周围无线网络。

时间: 2024-12-03 00:23:20

如何抓取无线网络数据包的相关文章

使用无线网络数据包对无线网络安全进行分析

本文阐述的是利用无线网络数据包来对无线网络安全的正确分析,在无线网络中,建立连接并不像连接有线网络那样简单,物理安全也没有阻止未经授权人员进入设备室那样容易,甚至在接入点总方向的小问题都可能让你崩溃.也就是说,保护无线网络安全将成为未来安全行业的挑战.在这篇文章中,我们将探讨解决利用数据包分析无线安全问题的实用技巧,首先我们将展示正确连接无线网络数据包的方法,收集到正确数据后,我们将探讨不同的分析技术,包括分析WEP/WPA认证.过滤加密流量以及寻找恶意接入点等.捕获无线数据包从数据包 来看,无

Android利用tcpdump和wireshark抓取网络数据包

主要介绍如何利用tcpdump抓取andorid手机上网络数据请求,利用Wireshark可以清晰的查看到网络请求的各个过程包括三次握手,但相对来说使用Fiddler进行网络数据抓包和展现更方便,优点包括: (1)无需root (2)对Android和Iphone同样适用 (3)操作更简单方便(第一次安装配置,第二次只需设置代理即可) (4)数据包的查看更清晰易懂 (5) 可以查看https请求,建议使用Fillder,具体可见:利用Fiddler进行网络数据抓包. 1.下载并安装tcpdump

网络数据抓包 windows- VC++ 用原始套接字编程,怎样抓取网页响应数据?

问题描述 VC++ 用原始套接字编程,怎样抓取网页响应数据? 在网上找了很多方法,都是只能抓取发出的请求数据,没有响应数据 recv(sock, recvInf, sizeof(recvInf), 0);//接收包 windows环境下,VS2015 解决方案 参考:http://www.codeproject.com/Articles/17031/A-Network-Sniffer-in-Chttp://www.netresec.com/?page=RawCap 解决方案二: 这个是开发给特定

网络爬虫-Jsoup 如何抓取GOOGLE网页数据

问题描述 Jsoup 如何抓取GOOGLE网页数据 网络爬虫新手,以前学过JAVA,所以想用JAVA来做一些数据抓取工作 在网上找的 Jsoup的JAR,试了一下感觉比较容易上手,所以想抓取GOOGLE数据 代码也是网上找的, 但是出现 timeOut,我觉得可能是GOOGLE被屏蔽的问题,我使用Ishadowsock翻墙平时,但是打开以后运货还是timeOut. 不知道各位大神能不能支支招,另外想问一下GOOGLE数据抓取有没有更好一些的开源工具,谢谢万分! Set result = new

网络 linux-用ostinato构造一数据包(有Dmac、Smac),数据包本地发出后,在目的端抓不到该数据包

问题描述 用ostinato构造一数据包(有Dmac.Smac),数据包本地发出后,在目的端抓不到该数据包 用ostinato构造一数据包(有源mac和目的mac以及ethtype),数据包本地发出后(本地wireshark可以抓到发出的包),在目的端抓不到该数据包?求解

一个最简单的通过WireShark破解SSL加密网络数据包的方法

原文地址: http://article.yeeyan.org/view/530101/444688 一般来说,我们用WireShark来抓取包进行分析是没有多大问题的.但这里有个问题是,如果你碰到的是用SSL/TLS等加密手段加密过的网络数据的时候,往往我们只能束手无策.在过去的话,如果我们拥有的该传输会话的私钥的话我们还是可以将它提供给WireShark来让其对这些加密数据包进行解密的   1. 简介     相信能访问到这篇文章的同行基本上都会用过流行的网络抓包工具WireShark,用它

网络数据包捕获函数库Libpcap安装与使用(非常强大)

1.Libpcap简介 Libpcap是Packet Capture Libray的英文缩写,即数据包捕获函数库.该库提供的C函数接口用于捕捉经过指定网络接口的数据包,该接口应该是被设为混杂模式.这个在原始套接子中有提到. 著名的软件TCPDUMP就是在Libpcap的基础上开发而成的.Libpcap提供的接口函数实现和封装了与数据包截获有关的过程. Libpcap提供了用户级别的网络数据包捕获接口,并充分考虑到应用程序的可移植性.Libpcap可以在绝大多数Linux平台上运行.在Window

Jsoup 抓取页面的数据实例详解

Jsoup 抓取页面的数据 需要使用的是jsoup-1.7.3.jar包   如果需要看文档我下载请借一步到官网:http://jsoup.org/ 这里贴一下我用到的 Java工程的测试代码 package com.javen.Jsoup; import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.

UNIX网络编程:网络数据包检测

网络数据包检测 数据包捕获(sniffer):是指在网络上进行数据收集的行为,需要通过网卡来完成. 三种访问方式: BSD Packet Filter(BPF) SVR4 Datalink Provider Interface(DLPI) linux SOCK_PACKET interface libpcap库 安装: apt-get install libpcap-dev 常用API 捕获数据包 查找缺省的用来捕获数据网络设备 char * pcap_lookupdev ( char * er