PolyShell:一款适用于Bash、Batch、PowerShell的polyglot

枫少@KillBoy
枫少@KillBoy
管理员
220
文章
0
粉丝
资源分享458,3531字数 678阅读2分15秒阅读模式
AI智能摘要
你是否遇到过在不同系统之间反复修改Payload的尴尬?PolyShell 给出一个更优解:一份脚本同时兼容 Bash、Batch 和 PowerShell,能以单文件或注入输入方式运行,适配终端差异、循环读取与中断退出的细节处理,极大简化渗透测试和设备键入注入(如Rubber Ducky/MalDuino)流程。本文解析其工作原理、运行方式与注意事项,并附源码获取与实操要点,读完你将能快速上手并避免常见失败坑。
— AI 生成的文章内容摘要

PolyShell:一款适用于Bash、Batch、PowerShell的polyglot-图片1

工具介绍

PolyShell是一款功能强大的polyglot脚本,它可以同时适用于Bash、Windows Bash和PowerShell。

这种特性使得PolyShell成了一渗透测试中一款非常有用的模板,因为它能够再无需目标特定的Payload的情况下在大多数目标系统中执行。除此之外,PolyShell还可以使用类似USB Rubby DuckyMalDuino这样的设备并通过输入注入来进行传递和发送。

工具下载

广大研究人员可以使用下列命令将该项目的源码克隆至本地:

git clone https://github.com/llamasoft/polyshell.git

如何使用

作为单独脚本使用:

1、拷贝/重命名脚本,配置正确的文件扩展名,例如.sh、.bat或.ps1;

2、以Batch文件或PowerShell文件的运行方式来运行脚本;

使用命令注入的方式使用脚本:

1、在目标设备上打开终端窗口;

2、运行Payload;

3、按下Ctrl-C,然后运行“exit”命令;

以输出注入的方式使用该脚本与脚本直接运行的使用方式有一些不同,当以单独脚本的方式运行时,一旦一种语言已经处理完成,那么Payload将会立即退出执行。如果是通过输入注入的方式运行的话,Payload将会以读取循环的方式运行。如果不以循环方式运行的话,Payload将会关闭当前终端窗口,并在一个未知窗口中继续输入执行。组合键Ctrl-C可以让脚本退出读取循环,并确保在运行的过程中不会产生任何意外情况。

除此之外,如果直接将脚本代码粘贴到终端中运行的话,可能会出现运行失败的情况。当脚本到达读取循环之处,某些终端会将剩下的粘贴文本当作读取循环的输入数据来处理,这就非常好了,但有的终端可能会在读取循环退出时继续执行脚本,这就不合适了。

脚本工作机制

当我们尝试运行指定代码语言的命令时,该工具会尝试对命令进行解析,分析因素包括参数引用、重定向和注释等等。大家可以参考下列这行代码:

echo /" <<'BATCH_SCRIPT' >/dev/null ">NUL "/" /`" <#"

每一种语言都可以识别echo命令,但不同语言会以不同的方式来解析后续的命令。比如说:

echo /" <<'BATCH_SCRIPT' >/dev/null ">NUL "/" /`" <#"
Bash [-----] [---]
Batch [-----------------------------] [-] [---]
PS [-----------------------------] [-]
 

工具运行截图

PolyShell:一款适用于Bash、Batch、PowerShell的polyglot-图片2
PolyShell:一款适用于Bash、Batch、PowerShell的polyglot-图片2
PolyShell:一款适用于Bash、Batch、PowerShell的polyglot-图片2

项目地址

PolyShell:【GitHub传送门

https://www.freebuf.com/sectool/228758.html

 
枫少@KillBoy
  • it2021
  • it2021.com
  • Polyglot利用
  • shell
  • 命令注入技巧
  • 多语言兼容
  • 渗透测试
  • 跨平台脚本
评论  45  访客  45
    • 隐形人007
      隐形人007 0

      这个工具看起来挺实用的,跨平台脚本方便不少。

        • 尘外清音
          尘外清音 0

          @ 隐形人007 确实挺实用的,尤其是不用针对不同系统写不同payload了。

          • 血狱狂魔
            血狱狂魔 0

            @ 隐形人007 感觉还行,至少比写三套脚本强多了。

          • 鬼泣子
            鬼泣子 0

            有人试过在Mac上能用吗?感觉配置有点复杂。

            • Rain小雨
              Rain小雨 1

              之前用类似工具踩过坑,兼容性经常出问题。

              • 社恐小影子
                社恐小影子 0

                Ctrl-C退出循环这设计不错,避免意外执行。

                • 问天无语
                  问天无语 0

                  代码截图里的原子图案挺酷的,有科技感。

                  • 香香橙
                    香香橙 0

                    要是能支持更多脚本语言就好了,比如Python。

                      • 鬼煞
                        鬼煞 0

                        @ 香香橙 要是能支持Python就完美了,写自动化脚本会方便很多。

                      • 西红柿炒自己
                        西红柿炒自己 0

                        GitHub链接打不开?求个备用地址。

                        • 四海浪人
                          四海浪人 0

                          这种polyglot脚本在渗透测试里确实好用,减少针对性payload。

                            • 人丑就要多读书
                              人丑就要多读书 0

                              @ 四海浪人 在渗透测试里用这个能减少被发现的概率吧?

                            • 人工智能导师
                              人工智能导师 0

                              运行截图里那个函数定义是不是写错了?看着别扭。

                                • 儿时光影
                                  儿时光影 0

                                  @ 人工智能导师 函数定义看着怪,但可能是为了兼容多语言故意写的。

                                • 奶泡狐
                                  奶泡狐 0

                                  直接粘贴运行失败遇到过,原来得用输入注入方式。

                                  • 躲在角落的光
                                    躲在角落的光 0

                                    兼容性确实是个问题,之前用类似工具折腾了好久才搞定。

                                    • 魅影
                                      魅影 0

                                      这玩意儿在实战中用过几次,确实省了不少事。

                                      • 飞天羽
                                        飞天羽 1

                                        GitHub链接可以科学上网打开,或者搜下项目名找镜像。

                                        • 会飞的时钟
                                          会飞的时钟 0

                                          代码截图里那个原子图案是随便配的吧,跟工具本身关系不大。

                                          • 心雾
                                            心雾 0

                                            直接粘贴失败的问题,用cat命令导入文件会不会好点?

                                              • MoonlitMarauder
                                                MoonlitMarauder 0

                                                @ 心雾 粘贴失败的问题确实头疼,cat导入可能行不通,毕竟不是所有系统都有cat。

                                              • 终焉观测者
                                                终焉观测者 0

                                                感觉配置步骤写得有点简略,新手可能看不懂。

                                                • 狗头保命侠
                                                  狗头保命侠 0

                                                  这种工具是不是对系统权限要求比较高?

                                                  • 梦回之翼
                                                    梦回之翼 0

                                                    这工具在实战里真能省不少事,之前用过类似的。

                                                    • 雪凝
                                                      雪凝 0

                                                      Mac上跑过一次,配置完能用,就是得手动改扩展名。

                                                      • 樱坂葵
                                                        樱坂葵 1

                                                        新手表示步骤太简略了,第一步就卡住了啊嘛。

                                                        • 神经网络使徒
                                                          神经网络使徒 1

                                                          支持Python的话直接封神,现在还是有点局限。

                                                          • 花雀
                                                            花雀 0

                                                            权限要求其实不高,普通用户也能跑,试过了。

                                                            • 露米
                                                              露米 0

                                                              截图里的原子图案纯属配图吧,别太当真。

                                                              • 风暴颂者
                                                                风暴颂者 0

                                                                要是批量部署会不会出问题?有老哥试过没?

                                                                • 织女梭
                                                                  织女梭 0

                                                                  挺实用的,跨平台省事。

                                                                  • 玉尘心
                                                                    玉尘心 0

                                                                    文档写得有点晦涩,翻来翻去的。

                                                                    • 锈迹时光
                                                                      锈迹时光 0

                                                                      GitHub那链接能直接打开吗?

                                                                      • 灵音之语
                                                                        灵音之语 1

                                                                        这工具跨平台兼容性挺有意思的。

                                                                        • 沉默的大多数
                                                                          沉默的大多数 0

                                                                          我之前也踩过兼容坑,调了好久才跑通。

                                                                          • 堕星使
                                                                            堕星使 1

                                                                            ctrl-c这招学到了,之前老被终端坑

                                                                              • 波波马
                                                                                波波马 1

                                                                                @ 堕星使 同感,终端有时候真能坑人

                                                                              • PlatypusPioneer
                                                                                PlatypusPioneer 0

                                                                                这脚本在老系统上经常卡死,真是坑。

                                                                                • RuneSomnium
                                                                                  RuneSomnium 1

                                                                                  兼容性这块确实是个坑啊

                                                                                  • 布鲁斯
                                                                                    布鲁斯 1

                                                                                    配置步骤稍微详细点会更友好,尤其是扩展名改动。

                                                                                    • 夜空画师
                                                                                      夜空画师 1

                                                                                      有没有人在Mac上跑过?我尝试改名后卡住了。

                                                                                      • 血影煞
                                                                                        血影煞 0

                                                                                        看了几次更新日志,感觉作者对跨平台兼容真的下了功夫,挺让人期待的。

                                                                                        • 寂灭之翼
                                                                                          寂灭之翼 0

                                                                                          那如果目标是容器会不会有问题?

                                                                                          • 独行暗夜
                                                                                            独行暗夜 1

                                                                                            之前用类似的polyglot脚本做渗透,兼容性总是头疼,这次的PolyShell在多系统间切换倒是顺手不少,只是文档里对输入注入的说明还有点模糊,希望后续能补充细节。👍

                                                                                            • Awkward Ace
                                                                                              Awkward Ace 0

                                                                                              这工具真的省了不少事,我在一次内部渗透演练里直接把payload写进.sh文件,目标机器是linux和Windows双系统,一次成功执行,省去了分别准备payload的麻烦。

                                                                                            匿名

                                                                                            发表评论

                                                                                            匿名网友

                                                                                            拖动滑块以完成验证