神出鬼没的马尔瓦里历险记,第一部分

神出鬼没的马尔瓦里历险记,第一部分

从本文开始,我们开始发布一系列有关难以捉摸的恶意软件的出版物。 无文件黑客程序,也称为无文件黑客程序,通常使用 Windows 系统上的 PowerShell 以静默方式运行命令来搜索和提取有价值的内容。 在没有恶意文件的情况下检测黑客活动是一项艰巨的任务,因为...... 防病毒软件和许多其他检测系统都是基于签名分析来工作的。 但好消息是这样的软件确实存在。 例如, 布巴系统,能够检测文件系统中的恶意活动。

当我第一次开始研究坏黑客这个话题时 不使用传统的感染方法,但只有受害者计算机上可用的工具和软件,我不知道这很快就会成为一种流行的攻击方法。 安全专业人员 他们说这正在成为一种趋势,并且 可怕的文章标题 - 确认这一点。 因此,我决定就这个主题出版一系列出版物。

伟大而强大的PowerShell

我之前曾写过其中一些想法 PowerShell混淆系列,但更多的是基于理论概念。 后来我遇到了 混合分析网站,您可以在其中找到在野外“捕获”的恶意软件样本。 我决定尝试使用这个网站来查找无文件恶意软件的样本。 我成功了。 顺便说一句,如果您想进行自己的恶意软件狩猎之旅,则必须经过此网站的验证,以便他们知道您正在以白帽专家的身份从事这项工作。 作为一个安全博主,我毫无疑问就通过了。 我相信你也可以。

除了示例本身之外,您还可以在网站上看到这些程序的用途。 混合分析在自己的沙箱中运行恶意软件,监视系统调用、运行进程和网络活动,并提取可疑文本字符串。 对于二进制文件和其他可执行文件,即您甚至无法查看实际的高级代码,混合分析可以根据软件的运行时活动来确定该软件是恶意的还是可疑的。 之后样品已经被评估。

对于 PowerShell 和其他示例脚本(Visual Basic、JavaScript 等),我能够看到代码本身。 例如,我遇到过这个 PowerShell 实例:

神出鬼没的马尔瓦里历险记,第一部分

您还可以以 base64 编码运行 PowerShell 以避免检测。 请注意非交互式和隐藏参数的使用。

如果您阅读过我关于混淆的文章,那么您就会知道 -e 选项指定内容是 base64 编码的。 顺便说一句,混合分析也可以通过解码所有内容来帮助解决这一问题。 如果您想尝试自己解码base64 PowerShell(以下简称PS),则需要运行以下命令:

 [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))

更深入

我使用这种方法解码了我们的PS脚本,下面是程序的文本,尽管我稍作修改:

神出鬼没的马尔瓦里历险记,第一部分

请注意,该脚本与 4 年 2017 月 XNUMX 日的日期相关联并传输会话 cookie。

我在中写过关于这种攻击方式的文章 PS混淆系列,其中加载了 base64 编码的脚本本身 丢失的 来自另一个站点的恶意软件,使用 .Net Framework 库的 WebClient 对象来完成繁重的工作。

这是为什么呢?

对于扫描 Windows 事件日志或防火墙的安全软件,base64 编码可防止纯文本模式检测到字符串“WebClient”,从而防止发出此类 Web 请求。 由于恶意软件的所有“邪恶”内容都会被下载并传递到我们的 PowerShell 中,因此这种方法使我们能够完全逃避检测。 或者更确切地说,这就是我最初的想法。

事实证明,启用 Windows PowerShell 高级日志记录(请参阅我的文章)后,您将能够在事件日志中看到加载的行。 我长得像 其他 )我认为微软应该默认启用这种级别的日志记录。 因此,启用扩展日志记录后,我们将在 Windows 事件日志中看到根据上面讨论的示例从 PS 脚本完成的下载请求。 因此,激活它是有意义的,您不同意吗?

让我们添加额外的场景

黑客巧妙地将 PowerShell 攻击隐藏在用 Visual Basic 和其他脚本语言编写的 Microsoft Office 宏中。 这个想法是受害者收到一条消息,例如来自送货服务的消息,并附有 .doc 格式的报告。 您打开包含该宏的文档,它最终会启动恶意 PowerShell 本身。

通常,Visual Basic 脚本本身会被混淆,因此它可以自由地逃避防病毒和其他恶意软件扫描程序。 本着上述精神,我决定用 JavaScript 编写上述 PowerShell 作为练习。 以下是我的工作成果:

神出鬼没的马尔瓦里历险记,第一部分

混淆的 JavaScript 隐藏了我们的 PowerShell。 真正的黑客会这样做一两次。

这是我在网络上看到的另一种技术:使用 Wscript.Shell 运行编码的 PowerShell。 顺便说一下,JavaScript 本身是 手段 恶意软件的传递。 许多版本的 Windows 都内置了 Windows脚本宿主,它本身可以运行JS。
在我们的例子中,恶意 JS 脚本被嵌入为扩展名为 .doc.js 的文件。 Windows 通常只会显示第一个后缀,因此它对受害者来说将显示为 Word 文档。

神出鬼没的马尔瓦里历险记,第一部分

JS 图标仅出现在滚动图标中。 毫不奇怪,许多人会认为它是 Word 文档而打开此附件。

在我的示例中,我修改了上面的 PowerShell 以从我的网站下载脚本。 远程 PS 脚本仅打印“Evil Malware”。 正如你所看到的,他一点也不邪恶。 当然,真正的黑客有兴趣通过命令 shell 访问笔记本电脑或服务器。 在下一篇文章中,我将向您展示如何使用 PowerShell Empire 来执行此操作。

我希望在第一篇介绍性文章中我们没有深入探讨该主题。 现在我让您喘口气,下次我们将开始研究使用无文件恶意软件进行攻击的真实示例,而无需任何不必要的介绍性文字或准备。

来源: habr.com

添加评论