Wireshark-dev: [Wireshark-dev] [PATCH] Decode Bluetooth HS 4-way handshake over 802.11 media
From: Emeltchenko Andrei <Andrei.Emeltchenko.news@xxxxxxxxx>
Date: Mon, 6 Aug 2012 17:10:36 +0300
From: Andrei Emeltchenko <andrei.emeltchenko@xxxxxxxxx>
Decode 4-way handshake over 802.11 media packets like one shown below:
...
Logical-Link Control
DSAP: SNAP (0xaa)
IG Bit: Individual
SSAP: SNAP (0xaa)
CR Bit: Command
Control field: U, func=UI (0x03)
Organization Code: Bluetooth (0x001958)
Type: Bluetooth Security (0x0003)
802.1X Authentication
Version: 802.1X-2001 (1)
Type: Key (3)
Length: 117
Key Descriptor Type: EAPOL RSN Key (2)
Key Information: 0x010a
.... .... .... .010 = Key Descriptor Version: AES Cipher, HMAC-SHA1 MIC (2)
.... .... .... 1... = Key Type: Pairwise Key
.... .... ..00 .... = Key Index: 0
.... .... .0.. .... = Install: Not set
.... .... 0... .... = Key ACK: Not set
.... ...1 .... .... = Key MIC: Set
.... ..0. .... .... = Secure: Not set
.... .0.. .... .... = Error: Not set
.... 0... .... .... = Request: Not set
...0 .... .... .... = Encrypted Key Data: Not set
Key Length: 16
Replay Counter: 1
WPA Key Nonce: 768574f5be8f87e5564ef8eab556a26c2e1f0abc6ca256b5...
Key IV: 00000000000000000000000000000000
WPA Key RSC: 0000000000000000
WPA Key ID: 0000000000000000
WPA Key MIC: 0553a180d3415401216c080bac23d381
WPA Key Data Length: 22
WPA Key Data: 30140100000fac040100000fac040100000fac020000
...
---
epan/dissectors/packet-eapol.c | 1 +
epan/dissectors/packet-ethertype.c | 1 +
epan/dissectors/packet-llc.c | 3 +++
epan/etypes.h | 4 ++++
epan/oui.h | 1 +
5 files changed, 10 insertions(+)
diff --git a/epan/dissectors/packet-eapol.c b/epan/dissectors/packet-eapol.c
index 304bba8..54081cd 100644
--- a/epan/dissectors/packet-eapol.c
+++ b/epan/dissectors/packet-eapol.c
@@ -517,4 +517,5 @@ proto_reg_handoff_eapol(void)
eapol_handle = create_dissector_handle(dissect_eapol, proto_eapol);
dissector_add_uint("ethertype", ETHERTYPE_EAPOL, eapol_handle);
dissector_add_uint("ethertype", ETHERTYPE_RSN_PREAUTH, eapol_handle);
+ dissector_add_uint("ethertype", ETHERTYPE_BT_SECURITY, eapol_handle);
}
diff --git a/epan/dissectors/packet-ethertype.c b/epan/dissectors/packet-ethertype.c
index 6a357cd..00ed2a4 100644
--- a/epan/dissectors/packet-ethertype.c
+++ b/epan/dissectors/packet-ethertype.c
@@ -49,6 +49,7 @@ static dissector_table_t ethertype_dissector_table;
static dissector_handle_t data_handle;
const value_string etype_vals[] = {
+ { ETHERTYPE_BT_SECURITY, "Bluetooth Security" },
{ ETHERTYPE_IP, "IP" },
{ ETHERTYPE_IPv6, "IPv6" },
{ ETHERTYPE_VLAN, "802.1Q Virtual LAN" },
diff --git a/epan/dissectors/packet-llc.c b/epan/dissectors/packet-llc.c
index e5a5203..61b47cc 100644
--- a/epan/dissectors/packet-llc.c
+++ b/epan/dissectors/packet-llc.c
@@ -207,6 +207,7 @@ http://www.cisco.com/univercd/cc/td/doc/product/software/ios113ed/113ed_cr/ibm_r
{ OUI_SONY_ERICSSON_5, "Sony Ericsson Mobile Communications AB" },
{ OUI_SONY_ERICSSON_6, "Sony Ericsson Mobile Communications AB" },
{ OUI_SONY_ERICSSON_7, "Sony Ericsson Mobile Communications AB" },
+ { OUI_BLUETOOTH, "Bluetooth" },
{ OUI_SONY_ERICSSON_8, "Sony Ericsson Mobile Communications AB" },
{ OUI_IEEE_802_1QBG, "IEEE 802.1Qbg" },
{ OUI_TURBOCELL, "Karlnet (Turbocell)" },
@@ -358,6 +359,7 @@ capture_snap(const guchar *pd, int offset, int len, packet_counts *ld)
case OUI_ENCAP_ETHER:
case OUI_CISCO_90:
+ case OUI_BLUETOOTH:
case OUI_APPLE_ATALK:
/* No, I have no idea why Apple used
one of their own OUIs, rather than
@@ -615,6 +617,7 @@ dissect_snap(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
break;
case OUI_ENCAP_ETHER:
+ case OUI_BLUETOOTH:
case OUI_CISCO_90:
case OUI_APPLE_ATALK:
/* No, I have no idea why Apple used
diff --git a/epan/etypes.h b/epan/etypes.h
index c208265..33bb20f 100644
--- a/epan/etypes.h
+++ b/epan/etypes.h
@@ -41,6 +41,10 @@
#define ETHERTYPE_UNK 0x0000
#endif
+#ifndef ETHERTYPE_BT_SECURITY
+#define ETHERTYPE_BT_SECURITY 0x0003
+#endif
+
/* Sources:
* http://www.iana.org/assignments/ethernet-numbers
* TCP/IP Illustrated, Volume 1
diff --git a/epan/oui.h b/epan/oui.h
index f06b7fc..cdfe19b 100644
--- a/epan/oui.h
+++ b/epan/oui.h
@@ -59,6 +59,7 @@
#define OUI_SONY_ERICSSON_5 0x001620 /* Sony Ericsson Mobile Communications AB */
#define OUI_SONY_ERICSSON_6 0x0016B8 /* Sony Ericsson Mobile Communications AB */
#define OUI_SONY_ERICSSON_7 0x001813 /* Sony Ericsson Mobile Communications AB */
+#define OUI_BLUETOOTH 0x001958 /* Bluetooth SIG */
#define OUI_SONY_ERICSSON_8 0x001963 /* Sony Ericsson Mobile Communications AB */
#define OUI_IEEE_802_1QBG 0x001B3F /* IEEE 802.1 Qbg */
#define OUI_TURBOCELL 0x0020F6 /* KarlNet, who brought you Turbocell */
--
1.7.9.5
- Follow-Ups:
- Prev by Date: [Wireshark-dev] Compile error for qtshark
- Next by Date: Re: [Wireshark-dev] [PATCH] Decode Bluetooth HS 4-way handshake over 802.11 media
- Previous by thread: Re: [Wireshark-dev] Compile error for qtshark
- Next by thread: Re: [Wireshark-dev] [PATCH] Decode Bluetooth HS 4-way handshake over 802.11 media
- Index(es):