引言
Fluxion 是一款安全审计和社会工程学研究工具。为了有效使用它,你通常需要先执行一系列设置命令,例如终止冲突进程和启用无线网卡的监听模式(monitor mode),然后再启动主应用程序。每次都重复执行这些命令会很繁琐。
在本实验中,你将学习如何通过创建一个简单的 Bash 脚本来自动化整个启动序列。这个脚本将按顺序执行所有必要的命令,让你只需一个命令即可启动 Fluxion。这是 Linux 中自动化重复性任务和改进工作流程的一项基本技能。
在本实验中,我们将使用一个模拟的 fluxion.sh 脚本,并假设存在一个名为 wlan0 的无线接口。
创建一个名为 'start_fluxion.sh' 的新文件
在此步骤中,你将创建包含自动化命令的 Bash 脚本文件。我们将此文件命名为 start_fluxion.sh。我们所有的工作都将在默认的 ~/project 目录中进行。
我们可以使用 touch 命令创建一个空文件。此命令会更新文件的访问和修改时间,如果文件不存在则会创建它。
在你的终端中执行以下命令来创建脚本文件:
touch start_fluxion.sh
运行命令后,你可以通过 ls 命令列出目录内容来验证文件是否已创建:
ls
你应该在输出中看到 start_fluxion.sh。
fluxion start_fluxion.sh
添加启用监听模式的命令
在此步骤中,你将向脚本添加初始命令。Bash 脚本应始终以 "shebang" (#!) 行开头,它告诉系统使用哪个解释器来运行脚本。对于 Bash 脚本,这通常是 #!/bin/bash。
在 shebang 之后,我们将添加准备无线接口的命令。对于 Fluxion 等工具,无线网卡必须处于“监听模式”(monitor mode)才能捕获附近所有的 Wi-Fi 流量。airmon-ng 工具通常用于此目的。我们将添加两个命令:
sudo airmon-ng check kill: 这会停止可能干扰该过程的网络服务。sudo airmon-ng start wlan0: 这会将无线接口(我们将使用一个假设的wlan0)置于监听模式。
我们使用 sudo 是因为这些命令需要 root 权限。
使用 nano 文本编辑器打开 start_fluxion.sh 文件:
nano start_fluxion.sh
现在,向文件中添加以下内容:
#!/bin/bash
## Prepare the wireless interface
echo "Stopping conflicting processes..."
sudo airmon-ng check kill
echo "Starting monitor mode on wlan0..."
sudo airmon-ng start wlan0
按 Ctrl+X 退出 nano,然后按 Y 确认要保存更改,最后按 Enter 以相同名称保存文件。
添加启动 'fluxion.sh' 的命令
在此步骤中,你将向脚本添加最终命令:即实际启动 Fluxion 应用程序的命令。
我们模拟的 fluxion.sh 脚本位于 fluxion 目录内。从我们的 start_fluxion.sh 脚本(位于 ~/project)来看,到 Fluxion 脚本的相对路径是 fluxion/fluxion.sh。由于它是一个可执行脚本,我们需要使用 ./ 来调用它,以指定当前目录上下文。
让我们再次使用 nano 打开脚本:
nano start_fluxion.sh
在文件末尾添加执行 Fluxion 脚本的命令。完整的脚本现在应该如下所示:
#!/bin/bash
## Prepare the wireless interface
echo "Stopping conflicting processes..."
sudo airmon-ng check kill
echo "Starting monitor mode on wlan0..."
sudo airmon-ng start wlan0
## Launch Fluxion
echo "Launching Fluxion..."
./fluxion/fluxion.sh
按 Ctrl+X 保存文件并退出 nano,然后按 Y,最后按 Enter。你的自动化脚本现已完成。
使用 'chmod +x' 使脚本可执行
在此步骤中,你将使脚本可运行。在 Linux 中,文件在可以作为程序运行时,需要先拥有“执行”权限。我们可以使用 chmod(change mode)命令来添加此权限。
+x 标志告诉 chmod 为用户、组和其他人添加执行权限。
运行以下命令使你的 start_fluxion.sh 脚本可执行:
chmod +x start_fluxion.sh
你可以使用 ls -l 命令来验证权限的更改,该命令提供详细的列表。
ls -l start_fluxion.sh
注意输出的权限块中的 x 字符。这表明该文件现在是可执行的。
-rwxr-xr-x 1 labex labex 218 Dec 10 12:00 start_fluxion.sh
运行脚本以启动整个过程
在最后一步中,你将运行新创建的自动化脚本。由于脚本现在是可执行的,你可以通过在其名称前加上 ./ 来从终端运行它,这会告诉 shell 在当前目录中查找该文件。
因为我们脚本中的一些命令(airmon-ng)需要管理员权限,所以我们必须使用 sudo 来执行整个脚本。
使用以下命令运行脚本:
sudo ./start_fluxion.sh
脚本现在将逐一执行你添加的所有命令。你将看到每个命令的输出,包括我们模拟的 Fluxion 启动消息。
预期输出:
Stopping conflicting processes...
Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill'? (y/n)
Killing all those processes...
Starting monitor mode on wlan0...
(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
(mac80211 station mode vif disabled for [phy0]wlan0)
Launching Fluxion...
Fluxion is starting...
Welcome to Fluxion!
The tool has launched successfully.
注意:airmon-ng 的输出可能会略有不同,但我们模拟的 Fluxion 脚本的最终消息应该会出现。
恭喜!你已成功自动化了 Fluxion 的启动过程。
总结
在本实验中,你成功创建了一个 Bash 脚本来自动化 Fluxion 的启动过程。你学习了如何将多个命令组合到一个可执行文件中,这是任何 Linux 用户的一项核心技能。
你练习了几个基本命令和概念:
touch: 用于创建新的空文件。nano: 用于编辑脚本内容。#!/bin/bash: 用于指定 Bash 解释器的 shebang。chmod +x: 用于使脚本可执行。sudo: 用于以管理员权限运行命令。./script_name.sh: 在当前目录中执行脚本的标准方法。
通过构建这个简单的自动化脚本,你迈出了使命令行工作更高效、更强大的重要第一步。
