引言
Fluxion 是一款流行的安全审计和社交工程研究工具。它自动化了创建虚假 Wi-Fi 接入点和捕获凭证的强制门户(captive portal)的过程。默认情况下,Fluxion 使用预配置的上游 DNS 服务器(如 Google 的 8.8.8.8)作为其 DNS 服务。
在某些场景下,你可能希望更改此默认 DNS 服务器。例如,你可能希望使用一个更快的服务器,一个具有特定过滤功能的服务器,或者一个由你控制的自定义 DNS 服务器。
在本实验(lab)中,你将学习如何在主 Fluxion 脚本中定位和修改 dnsmasq 配置,以更改上游 DNS 服务器地址。
导航至 'fluxion/lib/fluxion.sh'
在此步骤中,你将导航到包含主 Fluxion 脚本的目录。Fluxion 的核心逻辑和配置存储在 shell 脚本中。我们需要修改的主要脚本是 fluxion.sh,它位于 lib 目录下。
首先,使用 cd(change directory)命令进入 fluxion/lib 目录。所有必要的文件已经克隆到你的 ~/project 目录中。
cd ~/project/fluxion/lib
接下来,使用 ls 命令列出当前目录下的文件,以确认 fluxion.sh 存在。
ls
你应该会在列出的文件中看到 fluxion.sh。
controller.sh fluxion.sh installer.sh parser.sh prober.sh scanner.sh
使用文本编辑器打开脚本
在此步骤中,你将使用命令行文本编辑器打开 fluxion.sh 脚本。我们将使用 nano,这是一个在 LabEx 环境中可用的简单易用的编辑器。
执行以下命令在 nano 中打开 fluxion.sh:
nano fluxion.sh
你的终端现在将在 nano 编辑器中显示脚本的内容。你可以使用箭头键在文件中导航。在下一步中,我们将搜索相关的配置部分。
供参考,以下是一些基本的 nano 命令:
Ctrl + W:搜索文本。Ctrl + X:退出编辑器。
搜索 'dnsmasq' 配置部分
现在脚本已在 nano 中打开,你需要找到配置 dnsmasq 的部分。Fluxion 使用 dnsmasq 为伪接入点运行 DNS 服务器,该服务器将所有流量重定向到强制门户页面。
- 按下
Ctrl + W在编辑器底部打开搜索提示。 - 输入
dnsmasq并按下Enter。
这将带你到单词 dnsmasq 的第一次出现。你正在寻找一个启动 dnsmasq 服务的代码块。它看起来会与下面的代码片段相似。注意 --server 选项,它指定了上游 DNS 服务器。
...
## Start the DNS server (dnsmasq)
"$FLUXION_LIB_DIR/controller.sh" dnsmasq start "$interface" \
"$gateway" "$portal_address" "$channel" "$essid" &> /dev/null &
...
实际运行的命令在 controller.sh 脚本内部,该脚本又调用了一个包含 dnsmasq 命令及其参数的函数。我们需要更改的行是定义 --server 参数的地方。如果需要,请继续搜索,直到找到定义 dnsmasq 启动命令的函数,该函数将包含 --server=8.8.8.8 这一行。
修改上游 DNS 服务器地址
在此步骤中,你将修改 DNS 服务器地址。你应该已经找到了包含 dnsmasq 的 --server 选项的行。默认情况下,它设置为 Google 的公共 DNS 服务器 8.8.8.8。
我们将将其更改为 Cloudflare 的公共 DNS 服务器 1.1.1.1。
使用箭头键导航到以下行:
--server=8.8.8.8 \
将其更改为:
--server=1.1.1.1 \
进行更改后,你需要保存文件并退出 nano。
- 按下
Ctrl + X退出。 nano会询问你是否要保存修改后的缓冲区。按Y表示是。nano接着会询问要写入的文件名。默认是fluxion.sh,这是正确的。按Enter确认。
你现在已成功修改了脚本。
重新启动攻击并测试 DNS 解析
在实际场景中,下一步将是重新启动 Fluxion 攻击。然后,伪接入点将使用你新配置的 DNS 服务器(1.1.1.1)处理所有上游 DNS 查询。
在此实验环境中,我们无法启动完整的 Wi-Fi 攻击。但是,我们可以执行一个简单的检查,以确保我们的更改没有破坏脚本的语法。我们将通过运行带有 --help 标志的脚本来完成此操作。
首先,导航回主 fluxion 目录:
cd ~/project/fluxion
现在,运行脚本。由于 Fluxion 的许多操作都需要 root 权限,因此你必须使用 sudo。
sudo ./fluxion.sh --help
如果脚本在语法上是正确的,它将显示帮助菜单,确认在你的修改后它仍然是可执行的。
fluxion 6.8 (rev. 20210101)
usage: fluxion.sh [-i] [-k] [-d] [-h] [-v]
options:
-i, --install Install dependencies.
-k, --check-karma Check if karma patch is applied.
-d, --debug Enable debug mode.
-h, --help Print this help screen.
-v, --version Print version and exit.
这证实了你的更改是成功的,并且没有引入任何错误。
总结
在此实验中,你已成功修改了 Fluxion 工具的核心脚本以改变其行为。
你学会了如何:
- 导航项目目录结构以查找关键配置文件。
- 使用命令行文本编辑器(
nano)来查看和修改 shell 脚本。 - 定位特定配置,在此案例中是
dnsmasq服务设置。 - 将上游 DNS 服务器从默认的
8.8.8.8更改为1.1.1.1。 - 执行基本的语法检查,以确保脚本在修改后仍然可用。
这项技能对于定制和调整安全工具以适应你的特定测试需求和网络条件非常有价值。
