使用 Bash 脚本自动化 Fluxion 启动

Beginner
立即练习

引言

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 工具通常用于此目的。我们将添加两个命令:

  1. sudo airmon-ng check kill: 这会停止可能干扰该过程的网络服务。
  2. 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: 在当前目录中执行脚本的标准方法。

通过构建这个简单的自动化脚本,你迈出了使命令行工作更高效、更强大的重要第一步。