难以捉摸的马尔瓦里历险记,第一部分



从本文开始,我们开始一系列有关难以捉摸的马尔瓦里河的出版物。 不会留下任何攻击痕迹的黑客程序(也称为无文件)通常在Windows系统上使用PowerShell秘密执行命令以查找和提取有价值的内容。 在没有恶意文件的情况下检测黑客活动是一项艰巨的任务,因为 防病毒软件和许多其他检测系统均基于特征分析。 但是,好消息是这种软件确实存在。 例如,可以检测文件系统中恶意活动的UBA系统。

当我第一次开始研究酷黑客的主题时,他们并不使用传统的感染方法 ,而只使用受害者计算机上可用的工具和软件,因此我并不怀疑这很快就会成为流行的攻击方法。 安全专家说,这正在成为一种趋势, 令人恐惧的文章标题就是证明。 因此,我决定就此主题进行一系列出版物。

强大而强大的PowerShell


我在PowerShell混淆系列中早些时候就谈到了其中一些想法,但在理论上却更多。 后来,我遇到了一个进行混合分析站点 ,您可以在其中找到野外“捕获”的马尔瓦尔样本。 我决定尝试使用此站点搜索无文件恶意软件样本。 而我做到了。 顺便说一句,如果您想自己进行探险以寻找恶意软件,则必须在此站点上进行检查,以便他们知道您是白帽专家。 作为写有关安全性的博客作者,我毫无疑问地经历了它。 我相信你也可以。

除了样本本身之外,您还可以在网站上看到这些程序的功能。 混合分析在其自己的沙箱中启动恶意软件,并跟踪系统调用,网络上正在运行的进程和操作,还提取可疑文本字符串。 对于二进制文件和其他可执行文件,即 在您甚至看不到实际的高级代码的地方,混合分析都会根据运行时的活动来确定软件是恶意软件还是可疑软件。 之后,样本已被评估。

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



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


如果您阅读了我的混淆条目,那么您将知道-e选项表明该内容是使用base64编码的。 顺便说一句,混合分析也可以帮助您解码所有内容。 如果要尝试自行解码base64 PowerShell(以下简称PS),则需要运行以下命令:

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

更深入


我使用这种方法解码了PS脚本,下面显示了程序的文本,尽管我对此做了一些修改:


请注意,该吱吱声绑定到日期为2017年9月4日,并传递了会话Cookie。


我在PS混淆系列文章中介绍了这种攻击方式,其中base64编码脚本本身使用.Net Framework库中的WebClient对象从另一个站点下载丢失的恶意软件,以完成所有艰苦的工作。

这是为了什么

对于扫描Windows事件日志或防火墙的安全软件,base64编码可通过简单的文本模式阻止检测WebClient字符串,以防止此类Web请求。 而且由于所有“邪恶的”恶意软件都已下载并转移到我们的PowerShell中,因此这种方法使您可以完全避免检测。 相反,我起初是这么认为的。

事实证明,通过包含Windows PowerShell日志的高级日志记录(请参阅我的文章),您可以在事件日志中看到加载的行。 我(和其他人一样)认为Microsoft默认情况下应启用此级别的日志记录。 因此,打开扩展日志记录后,我们将在Windows事件日志中看到一个完整的请求,该请求将根据我们上面检查的示例从PS脚本加载。 因此,激活它很有意义,同意吗?

添加其他脚本


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

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


混淆了JavaScript,隐藏了我们的PowerShell。 真正的黑客只做一两次。


这是我在网上遇到的另一种技术:使用Wscript.Shell运行编码的PowerShell。 顺便说一下,JavaScript本身就是一种传播恶意软件的手段 。 Windows的许多版本都有内置的Windows Script Host ,它本身可以运行JS。
在我们的案例中,恶意JS脚本以扩展名为.doc.js的文件形式附加。 Windows通常仅显示第一个后缀,因此对于受害者来说它将显示为Word文档。


JS图标仅显示在滚动图标中。 毫不奇怪的是,许多人会以为这是Word文档来打开此附件。


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

我希望对于第一篇介绍性文章,我们不要对这个话题太深入。 现在让我喘口气,下一次我们将开始分析使用无文件恶意变量的实际攻击示例,而无需额外的介绍性文字和准备。

Source: https://habr.com/ru/post/zh-CN456440/


All Articles