From c1a856b18ba84f9ed1e40c77b398919752c3b8d0 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 30 Apr 2018 13:40:42 +0200 Subject: [PATCH] hostapd: add support for client taxonomy in the full config This can be used to fingerprint clients to try to identify the exact model Signed-off-by: Felix Fietkau (backported from 23c1827e341fce302ba2841ecabeeb3f95e21d68) --- .../hostapd/files/hostapd-full.config | 2 +- .../patches/430-hostapd_cli_ifdef.patch | 32 ++++++++++++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/package/network/services/hostapd/files/hostapd-full.config b/package/network/services/hostapd/files/hostapd-full.config index 786afad2bc..355a70b9e1 100644 --- a/package/network/services/hostapd/files/hostapd-full.config +++ b/package/network/services/hostapd/files/hostapd-full.config @@ -357,7 +357,7 @@ CONFIG_INTERNAL_LIBTOMMATH=y # Has the AP retain the Probe Request and (Re)Association Request frames from # a client, from which a signature can be produced which can identify the model # of client device like "Nexus 6P" or "iPhone 5s". -#CONFIG_TAXONOMY=y +CONFIG_TAXONOMY=y # Fast Initial Link Setup (FILS) (IEEE 802.11ai) # Note: This is an experimental and not yet complete implementation. This diff --git a/package/network/services/hostapd/patches/430-hostapd_cli_ifdef.patch b/package/network/services/hostapd/patches/430-hostapd_cli_ifdef.patch index c1882d84a5..29dc0832ee 100644 --- a/package/network/services/hostapd/patches/430-hostapd_cli_ifdef.patch +++ b/package/network/services/hostapd/patches/430-hostapd_cli_ifdef.patch @@ -1,6 +1,22 @@ --- a/hostapd/hostapd_cli.c +++ b/hostapd/hostapd_cli.c -@@ -417,7 +417,6 @@ static int hostapd_cli_cmd_sa_query(stru +@@ -385,7 +385,6 @@ static int hostapd_cli_cmd_disassociate( + } + + +-#ifdef CONFIG_TAXONOMY + static int hostapd_cli_cmd_signature(struct wpa_ctrl *ctrl, int argc, + char *argv[]) + { +@@ -398,7 +397,6 @@ static int hostapd_cli_cmd_signature(str + os_snprintf(buf, sizeof(buf), "SIGNATURE %s", argv[0]); + return wpa_ctrl_command(ctrl, buf); + } +-#endif /* CONFIG_TAXONOMY */ + + + #ifdef CONFIG_IEEE80211W +@@ -417,7 +415,6 @@ static int hostapd_cli_cmd_sa_query(stru #endif /* CONFIG_IEEE80211W */ @@ -8,7 +24,7 @@ static int hostapd_cli_cmd_wps_pin(struct wpa_ctrl *ctrl, int argc, char *argv[]) { -@@ -643,7 +642,6 @@ static int hostapd_cli_cmd_wps_config(st +@@ -643,7 +640,6 @@ static int hostapd_cli_cmd_wps_config(st ssid_hex, argv[1]); return wpa_ctrl_command(ctrl, buf); } @@ -16,7 +32,15 @@ static int hostapd_cli_cmd_disassoc_imminent(struct wpa_ctrl *ctrl, int argc, -@@ -1518,7 +1516,6 @@ static const struct hostapd_cli_cmd host +@@ -1510,15 +1506,12 @@ static const struct hostapd_cli_cmd host + { "disassociate", hostapd_cli_cmd_disassociate, + hostapd_complete_stations, + " = disassociate a station" }, +-#ifdef CONFIG_TAXONOMY + { "signature", hostapd_cli_cmd_signature, hostapd_complete_stations, + " = get taxonomy signature for a station" }, +-#endif /* CONFIG_TAXONOMY */ + #ifdef CONFIG_IEEE80211W { "sa_query", hostapd_cli_cmd_sa_query, hostapd_complete_stations, " = send SA Query to a station" }, #endif /* CONFIG_IEEE80211W */ @@ -24,7 +48,7 @@ { "wps_pin", hostapd_cli_cmd_wps_pin, NULL, " [timeout] [addr] = add WPS Enrollee PIN" }, { "wps_check_pin", hostapd_cli_cmd_wps_check_pin, NULL, -@@ -1543,7 +1540,6 @@ static const struct hostapd_cli_cmd host +@@ -1543,7 +1536,6 @@ static const struct hostapd_cli_cmd host " = configure AP" }, { "wps_get_status", hostapd_cli_cmd_wps_get_status, NULL, "= show current WPS status" }, -- 2.30.2