Karma - DigiNinja
概述
Karma 是一组针对接入点软件的补丁,使其不仅响应自身的探针请求,还能响应任何请求的ESSID。这使得接入点能够充当诱饵,吸引任何探测已知网络的客户端。最初的Karma补丁由Dino Dia Zovi为Madwifi发布,随后由我接手并移植到Madwifi-ng,现在已迁移到新的hostapd。
工作原理
与某些人的误解相反,Karma补丁不会让接入点在其正常设置之外发送信标。这意味着启动时,您不应期望在客户端看到大量新网络广告。其工作方式是:大多数客户端有一个首选网络列表,通常设置为自动连接。当客户端启用无线功能时,它会遍历此列表,为每个网络发送探针请求。一旦Karma检测到探针请求,无论请求的ESSID是什么,它都会响应“是”,客户端随后尝试关联。某些客户端可能会继续探测列表中优先级更高的其他接入点,因此可能会断开与第一个关联的接入点,转而连接Karma响应的最高优先级网络。
大多数客户端在尝试关联时会检查接入点提供的加密级别。如果不匹配预期,客户端将不会关联。这会导致客户端频繁连接和断开(在短时间内快速连接和断开)。然而,我也见过一些客户端在提供无加密时直接降级到无加密状态。
如果您在测试Karma时客户端无法连接,请确保它们的首选列表中有网络且设置为自动连接。仅因为Windows有首选接入点列表,并不意味着它设置为自动连接所有网络。我经常收到错误报告,称Karma无法工作,但最终检查列表时发现没有网络设置为自动连接。
Hostapd集成
在Zero_Chaos的推动下,我终于为hostapd打了补丁,允许Atheros用户从Madwifi-ng迁移到ath5k和ath9k。这也应开放给Prism54和其他各种网卡用户,但这些尚未测试。
以下提供下载选项:针对版本1.0源代码的补丁或预打补丁的副本,还有一个示例配置文件。要使用预打补丁的源代码,只需解压tarball,切换到hostapd目录并运行make。然后,您可以使用-dd
参数启动接入点以获取Karma输出消息。我提供的配置文件有一个信标ESSID“FreeInternet”,旨在吸引那些不探测任何网络但可以被免费连接吸引的用户。配置文件已注释,应易于根据您的需求修改。
您可以通过检查版本信息来确认正在运行打补丁的hostapd版本:
1
2
3
4
5
6
|
# ./hostapd -v
hostapd v1.0
User space daemon for IEEE 802.11 AP management,
IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
Copyright (c) 2002-2012, Jouni Malinen <j@w1.fi> and contributors
Karma patches by Robin Wood - robin@digininja.org
|
并这样启动它:
1
|
# ./hostapd -dd ~/hostapd-karma.conf
|
如果您仅过滤KARMA引用,则在成功关联后会看到类似以下内容:
1
2
3
|
KARMA: Probe Request from 00:c0:ca:2f:96:50 for SSID 'test'
KARMA: Checking SSID for start of association, pass through test
KARMA: Successful association of 00:c0:ca:2f:96:50
|
如果您想将所有输出直接发送到文件而不是屏幕,或通过管道传输到文件或其他应用程序,从版本1.0开始,您可以使用-f
选项将输出发送到文件。唯一的问题是你必须在构建时启用此功能。打补丁的源代码和补丁都启用了此功能,但如果您想检查,请查找CONFIG_DEBUG_FILE并确保其设置为1。
此版本的一个已知问题是,当客户端最终关联时,仅打印MAC地址,而不打印其关联的ESSID。这是因为此时假定关联与配置文件中的ESSID相同,因此原始探测的ESSID似乎未存储在任何可用结构中。我正在解决此问题,并希望找到一种方法将其传递到这里。
hostapd_cli
使用madwifi-ng驱动程序时,您可以使用iwpriv命令与运行中的驱动程序交互;使用Hostapd时,您获得hostapd_cli,我认为这是一个更好的工具。我扩展了默认版本,添加了一组新命令来控制Karma附加功能。
启动hostapd_cli时,它会搜索hostapd实例并在可能时自动连接:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# ./hostapd_cli
hostapd_cli v1.0
Copyright (c) 2004-2012, Jouni Malinen <j@w1.fi> and contributors
This program is free software. You can distribute it and/or modify it
under the terms of the GNU General Public License version 2.
Alternatively, this software may be distributed under the terms of the
Selected interface 'wlan0'
Interactive mode
> ?
Commands:
mib get MIB variables (dot1x, dot11, radius)
sta <addr> get MIB variables for one station
all_sta get MIB variables for all stations
new_sta <addr> add a new station
deauthenticate <addr> deauthenticate a station
disassociate <addr> disassociate a station
get_config show current configuration
help show this usage help
interface [ifname] show interfaces/select interface
level <debug level> change debug level
license show full hostapd_cli license
ping send a ping, get a pong
karma_change_ssid change the default SSID for when Karma is off
karma_get_ssid get the default SSID for when Karma is off
karma_enable enable Karma
karma_disable disable Karma
karma_black blacklist Karma
karma_white whitelist Karma
karma_get_black_white get the black/whitelist state of Karma
karma_add_ssid add an SSID to the black/white list
karma_del_ssid delete an SSID from the black/white list
karma_get_state get the state of Karma
karma_add_black_mac add a MAC to the black list
karma_add_white_mac add a MAC to the white list
quit exit hostapd_cli
|
我不打算详细解释命令的工作原理,标准命令在其他地方有文档记录,Karma命令应自解释。我要指出的一点是,我厌倦了输入help来获取上述列表,因此我将?别名为相同功能——小改变,大解脱!
下载
- 示例配置文件
- hostapd版本1.0的补丁
- 打补丁的hostapd版本1.0
Madwifi-ng
由于我有一段时间没有为此创建任何补丁,我已经跟不上Madwifi项目的进度。上次我尝试打补丁时,无法在不进一步修补驱动程序的情况下使其与我的内核(2.6.23)构建,因此我放弃了。我将所有以前的补丁收集在下面,如果您因某种原因需要特定帮助,请联系我,否则我建议迁移到hostapd方法。
下载
- svn版本0.9.4-3379
- 0.9.4
- 0.9.3.3
- 0.9.3.2
- 0.9.3.1
- 0.9.3
支持本站
我不从此网站的任何项目中获得报酬,因此如果您想支持我的工作,可以通过使用下面的联盟链接来实现,我会获得账户积分或现金返还。通常只有几分钱,但它们会累积起来。
Buy me a smoothie
所有内容由Robin Wood创建,除非另有说明。