Windows上的Bash时间(Bourne Again Shell技术解析)

本文详细介绍了如何在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为devops推送更新到Azure中的基于Linux的Web服务器。

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

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

第一步当然是设置您的Windows 10系统以加入Insider Preview Program,并启动和运行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文件系统,从头开始。

1
2
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 设计