ROLLING_POWERSHELL_EXECUTION详解:USB Rubber Ducky循环执行技术
ROLLING_POWERSHELL_EXECUTION详解USB Rubber Ducky循环执行技术【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloadsROLLING_POWERSHELL_EXECUTION是 USB Rubber Ducky 官方载荷仓库usbrubberducky-payloads中一个面向 Windows 的社区扩展它借助随机化与混淆技术以 16 种不同的隐藏窗口方式循环轮换启动 PowerShell是学习 DuckyScript 3.0 高级载荷设计的优秀范例。无论你是刚接触按键注入的新手还是想精进 DuckyScript 的老手理解这个扩展都能帮你掌握「变量、函数、条件分支、随机化」这套完整组合拳。什么是 ROLLING_POWERSHELL_EXECUTION 扩展扩展Extension是 DuckyScript 3.0 引入的可复用代码块官方将其比喻为「积木」——把复杂任务抽象成一个函数调用供任意载荷复用。扩展库位于 payloads/extensions/ROLLING_POWERSHELL_EXECUTION 正是其中的社区佳作属性说明作者0i41E目标系统Windows环境要求PayloadStudio v.1.3 及以上核心能力以随机、混淆、少用参数的方式启动隐藏 PowerShell 窗口设计理念通过轮换多种启动方式规避基础检测它的名字里「Rolling循环/滚动」指的是每次执行时从 16 种启动变体中随机挑选一种让目标机器上看到的 PowerShell 启动命令每次都不同。循环执行原理16 种随机化的 PowerShell 启动变体随机选择机制$_RANDOM_INT 变量扩展的核心逻辑只有三行见 ROLLING_POWERSHELL_EXECUTION$_RANDOM_MIN 1 $_RANDOM_MAX 16 VAR $RANDOM_PS $_RANDOM_INT$_RANDOM_INT是 DuckyScript 3.0 的内置随机数变量这里让它在 116 之间取值并存入$RANDOM_PS。随后Rolling_Powershell_Execution()函数内是一长串IF / ELSE IF分支第19-53行每个分支对应一种启动命令——随机数决定这一次轮到哪种写法。举个最典型的分支cmd.exe /c p%PSModulePath:~21,1%weRshe%PUBLIC:~12,1%l.exe -noPr -Noni -wi Hid看起来像乱码实际拼出来正是powershell.exe -noPr -Noni -wi Hid无配置文件、无输入读取、隐藏窗口。四种混淆手法新手易懂版 这个扩展的精华在于它把「打开一个 PowerShell」拆成了 16 种不同写法归纳起来是四类手法手法示例原理一句话环境变量拆词p%PSModulePath:~21,1%weRshe%PUBLIC:~12,1%l.exe从PSModulePath、PUBLIC等环境变量的固定位置各取 1 个字母拼出powershell.exe转义符断词p^Owe%ALLUSERSPROFILE:~7,1%Shell用^和变量插入打断关键词避免命令中出现完整的明文单词间接寻址FOR /F ... IN (set^|findstr PSM)DO %a ...先遍历系统环境变量找到 PowerShell 所在路径再执行命令里完全不出现程序名参数变体-NoPr /NonI /w hi、-noproF -noni -W Hi同一参数的不同大小写、截断与空格组合对检测方而言16 种写法意味着固定的字符串匹配规则很难一次命中所有变体——这就是文件头注释中evade basic detection规避基础检测的含义第7-8行。两个核心配置项EXECUTIONPOLICY 与 DELAY 参数设置扩展提供了两个DEFINE配置第12-13行新手只需关注它们DEFINE #EXECUTIONPOLICY FALSE DEFINE #DELAY 200#EXECUTIONPOLICY默认FALSE不加绕过参数。若目标机器的执行策略会拦截脚本可改为TRUE扩展会在启动命令后随机追加一种-ep ByPasS、-exec bypass、-exEcUtionPoL bYpaSs等变体写法第56-71行——连执行策略参数本身也被随机化了。#DELAY回车启动 PowerShell 后的等待毫秒数默认 200ms可按目标机器响应速度调大。下图是 Windows PowerShell 中用Get-ExecutionPolicy -List查看当前执行策略的典型画面来自同仓库的执行类载荷示例你可以用它理解执行策略到底是什么而开启#EXECUTIONPOLICY TRUE并执行Set-ExecutionPolicy Bypass后策略验证结果会变成这样CurrentUser 由 AllSigned 变为 Bypass 执行策略的完整演示过程可参考同仓库载荷 Starting_a_PowerShell_with_administrator_permissions_in_Windows。PayloadStudio 中使用 ROLLING_POWERSHELL_EXTENSION 的完整步骤⚙️ 使用该扩展只需 4 步全部在 PayloadStudioDuckyScript 的官方编辑器 编译器中完成引入扩展新建载荷文件在编辑器中输入EXTENSION ROLLING_POWERSHELL_EXECUTION从自动补全下拉列表中选择即可也可从本仓库 community 扩展目录 复制源码。调整配置按需修改#EXECUTIONPOLICY默认FALSE与#DELAY默认200。调用函数在需要的位置写入一行调用扩展文件末尾注释 第75-79行 给出了官方示例Rolling_Powershell_Execution()编译烧录编译为inject.bin后写入 USB Rubber Ducky 设备接入目标机器即自动执行。 之后你可以在打开的隐藏 PowerShell 窗口里继续STRING任意命令——这正是启动器扩展的经典用法扩展只负责隐形地打开门具体做什么由你的载荷决定。与 RUN_HOSTED_POWERSHELL 的区别为什么需要循环轮换仓库中还有一个同类扩展 RUN_HOSTED_POWERSHELL通过「WinR 运行框」启动 PowerShell 执行远程脚本。但它在文档中已被标记为deprecated弃用Windows Defender now blocks remote PowerShell execution via the Run window. ——RUN_HOSTED_POWERSHELL 第9行对比维度ROLLING_POWERSHELL_EXECUTIONRUN_HOSTED_POWERSHELL启动入口16 种随机混淆的命令行写法固定的 WinR 运行框窗口形态隐藏窗口-w hid可见窗口状态活跃维护已弃用被 Defender 拦截这正说明了循环轮换设计的价值单一固定模式迟早会被识别而持续变化的行为模式更难被针对性拦截。安全与合规注意事项 请务必牢记仓库 README.md 中的法律声明本仓库所有载荷仅用于教育目的和获得授权的安全审计与分析。PowerShell 提权与隐藏窗口执行属于高权限敏感操作请仅在自有设备或已获书面授权的环境中测试并遵守当地法律法规。相关文件与参考资料扩展源码ROLLING_POWERSHELL_EXECUTION同类扩展已弃用供对比RUN_HOSTED_POWERSHELL社区扩展目录payloads/extensions/community/执行策略演示载荷Starting_a_PowerShell_with_administrator_permissions_in_Windows仓库总览与扩展机制说明README.md✍️小结ROLLING_POWERSHELL_EXECUTION 用 16 种随机混淆变体 2 个配置项把如何隐形启动 PowerShell这件复杂的事浓缩成一行Rolling_Powershell_Execution()调用。读懂它你就同时掌握了 DuckyScript 3.0 的变量、条件分支、函数封装与随机化——这正是从会写 STRING迈向会设计载荷的关键一步。【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考