Windows上的Bash实战:利用Linux工具生成PowerShell载荷

本文详细介绍了如何在Windows 10上通过Windows Subsystem for Linux运行Linux工具,结合PowerShell创建网络钓鱼载荷,并利用SET框架发送恶意附件的完整技术流程和实现方法。

Windows上的Bash实战(Bourne Again Shell详解)

编者按: 这是我们朋友Robert Schwass的又一篇精彩客座文章。如需投稿请联系我们。 Robert Schwass //

我听说过关于Windows Subsystem for Linux(WSL)的传言,最近观看了一个演示视频,展示开发运维人员如何使用bash shell通过WSL向Azure中的基于Linux的Web服务器推送更新。

这是否终结了无休止的Windows与Linux之争? 很可能没有,但我不参与这种争论,谁真的在乎呢? 然而,这为我提供了一个解决古老问题的方案: 如何创建PowerShell载荷,并使用仅能在Linux上运行的工具轻松推送它们?

于是研究开始了。 我决定加入Windows 10 Insider计划。

第一步当然是设置Windows 10系统加入Insider预览计划,并启动运行bash。如果需要帮助,可以咨询互联网。有很多环境设置指南。我个人从Microsoft下载了最新的ISO,通过在操作系统中挂载并运行setup.exe进行升级安装。然后只需向Windows 10添加功能,即可启动运行bash。(大约45分钟)

我最近一直在广泛使用宏,并创建了一个PowerShell脚本(PSPayload),可以从PowerShell脚本生成宏,甚至创建Excel文件。 我一直是社会工程学工具包(SET)的忠实粉丝,它发送网络钓鱼攻击非常容易。尽管这个工具是基于Python的,也可以在Windows上运行;但Windows版本功能有限,Linux版本功能齐全。

所以我的下一步是在子系统环境中运行SET。如果你想要SET的所有功能(就像我一样);你还需要安装Metasploit。安装Metasploit及其所有依赖项需要一些研究,但我在这里提供了一系列命令,以节省感兴趣者的麻烦。主要问题是安装一个稳定的Ruby副本。

默认情况下,SET允许你使用Metasploit生成载荷,如PDF和ZIP文件,用于网络钓鱼攻击,但我无法完全弄清楚如何使用外部文件与SET框架。这个功能可能默认存在,完全披露,我是个新手。我还是在SET Github上提交了功能请求。在收到SET开发者的回复之前,我通过复制和修改SET使用的电子邮件脚本,并将其放入SET的根目录,自己找到了解决方法。脚本可以从此处下载。

该脚本利用框架内的核心功能和模块,因此必须放在SET的根目录中,在我的bash环境中是/opt/set。

演示

阶段1. 创建PowerShell载荷,即宏,即Excel .xls文件

(载荷是一个简单的“get-process;read-host”,列出进程并暂停。) .xls文件已创建,还有一个仅包含宏的.txt文件。让我们检查.xls文件。(在Excel开发者选项卡→VBA按钮) 点击VBAProject下的“ThisWorkbook”项查看宏。

“ThisWorkbook”对象将在文档打开时执行创建的宏。用户将需要允许宏,但大多数时候他们很容易被欺骗。 PSPayload生成的宏默认在后台运行。我将在此演示中编辑一个,删除“-NoP -NonI -W Hidden”,以便稍后可以看到结果。

阶段2. 从Bash发送电子邮件

SET会询问一系列问题。

我想保留文件名。

对于此演示,我发送单封电子邮件,但你可以使用Mass Mailer轻松从列表中读取地址。 设置主题、纯文本或HTML以及正文。

我使用相同的Gmail作为发件人和收件人。

设置发件人名称、密码,以及是否将电子邮件标记为重要。 如果一切正常,你将看到以上内容。 消息在我的收件箱中

内部我们看到消息正文和附件。

下载附件,打开它,并启用编辑和启用内容。 记住PowerShell单行命令是“get-process;read-host”,这就是弹出的窗口显示的内容。另外,记住我故意禁用了隐身性。

结论

所以你有它。我使用了一个基于Linux的工具来推送我用PowerShell创建的载荷,全部在Windows系统上完成。这只是利用WSL进行工具组合的第一个可能很棒的示例。

另一个很酷的功能是,你可以在命令提示符下使用几个命令删除并重新安装整个bash文件系统,从头开始。 lxrun /uninstall /full

lxrun /install

PSPayload可以处理更大更复杂的脚本,并将它们放入宏形式。我使用多行脚本甚至PowerCat模块生成的载荷进行了测试。所有这些信息都可以在Github上找到。

注意事项

WSL仍然非常新,并且严重受限。例如,它无法打开网络套接字,并且发送ICMP数据包有问题。网络问题限制了SET发送自己的载荷和启动监听器的能力。因此,这个概念目前尚未准备好用于生产环境。然而,Microsoft正在以非常快的速度开发此功能,我怀疑在不久的将来他们可能会修复网络错误。

我确实在Github上联系了TrustedSec,自从进行这项研究以来,他们已将功能添加到SET中,以使用非SET本身生成的电子邮件附件。因此,如果你使用最新版本的SET,可能不需要使用我的Email_attachment.py脚本。

Metasploit本身无法正确运行,我只是需要它来满足SET。希望在将来Metasploit也能在这个环境中启动并运行。

现在,我知道这永远不会取代通过启动盘运行或直接安装到PC上访问硬件的Linux。在许多情况下,你必须使用Linux,例如进行无线网络审计。这个想法并不是要取代Linux,而仅仅是增强Windows。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计