Karma - DigiNinja
Karma 简介
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 版本:
|
|
并这样启动它:
|
|
如果您仅 grep KARMA 引用,则在成功关联后会看到类似以下内容:
|
|
如果您希望将所有输出直接发送到文件,而不是屏幕或通过管道传输到文件或其他应用程序,从版本 1.0 开始,您可以使用 -f 选项将输出发送到文件。唯一的问题是在构建时必须启用该功能。打补丁的源代码和补丁都启用了此功能,但如果您想检查,请查找 CONFIG_DEBUG_FILE 并确保设置为 1。
此版本的一个已知问题是,当客户端最终关联时,仅打印 MAC 地址,而不打印关联的 ESSID。这是因为此时假定关联与配置文件中的 ESSID 相同,因此原始探测的 ESSID 似乎未存储在任何可用结构中。我正在解决此问题,并希望找到方法将其传递到这里。
hostapd_cli
使用 madwifi-ng 驱动程序时,您可以使用 iwpriv 命令与运行中的驱动程序交互;使用 Hostapd 时,您会获得 hostapd_cli,我认为这是一个更好的工具。我扩展了默认版本,添加了一系列新命令来控制 Karma 功能。
启动 hostapd_cli 时,它会搜索 hostapd 实例并在可能时自动连接:
|
|
我不打算详细解释命令的工作原理,标准命令在其他地方有文档记录,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
支持网站
本网站上的任何项目我都没有获得报酬,因此如果您想支持我的工作,可以通过使用下面的联盟链接来实现,我会获得账户积分或现金返还。通常只有几分钱,但积少成多。
所有内容由 Robin Wood 创建,除非另有说明。