【问题标题】:detect eap pakets (802.1X auth) with pcap libraries使用 pcap 库检测 eap pakets (802.1X auth)
【发布时间】:2012-05-21 22:16:30
【问题描述】:
我正在用 pcap 编写一个 c 嗅探器(在我自己记录的 .cap 流上)。
我需要检测带有 802.1X 身份验证的 eap 数据包,但我不知道如何将它们与其他数据包区分开来。
使用wireshark它似乎是LLC层中的一个字段(值888e),但我不知道如何找到llc是否存在。
这里是一个eap包的例子
000018006e48000000169e09a000cd8103000000000000000802d50074f06d40a6a3000cf635dfab000cf635dfab90a6aaaa03000000888e0103005f02008a001000000000000000cbd5c0958cc32b7b3ae762c43b41436059e54cb48f224d35718613838d9640644d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
非常感谢!
【问题讨论】:
标签:
c
protocols
pcap
packet-sniffers
【解决方案1】:
准确地说,在以太网上,EAP-over-LAN (EAPOL) 数据包的以太网类型字段为 0x888e(根据 IEEE 标准 802.1X-2004 的第 7.2 节“用于 IEEE 802.3/以太网的 EAPOL MPDU 格式” ),并且在使用 IEEE 802.2 LLC(例如 802.11)的网络上,EAPOL 数据包的 LLC 标头的 DSAP 为 0xAA,表示 SNAP,后面跟着一个 OUI 为 0x000000 的 SNAP 标头(意思是“协议 ID 是以太网type") 和 0x888e 的协议 ID(因为这是 EAPOL 的以太网类型值)。
因此,对于 802.11 上的数据包,检查数据帧(而不是管理或控制帧),然后查看 802.11 标头之后的 802.2 LLC 标头(所有 802.11 数据帧都有一个 802.2 LLC 标头),然后检查对于 0xAA 的 DSAP,如果您看到,请检查 802.2 标头后面的 SNAP 标头是否有 0x000000 的 OUI 和 0x888e 的协议 ID。