Unix系统使用shell脚本作为在文件中执行多个Linux命令的方式。许多用户使用shell脚本作为一种日常操作文件、执行程序和批量打印文本的方式。由于每台unix机器中都有一个shell翻译器,它也是恶意行为者滥用的动态工具。研究人员之前分析过通过shell脚本部署有效负载以滥用配置错误的Redis实例、暴露DockerAPI并删除加密货币矿工的活动。本文介绍了攻击者在其活动中使用shell脚本的几种方式。命令和编程技术的变化滥用命令行翻译技术实际上是一种非常普遍和广泛使用的技术。但研究人员最近注意到脚本中的一些变化。过去,恶意shell脚本将简单的命令直接与明文链接结合起来部署负载。然而,最近,研究人员发现恶意行为者已经开始使用一些攻击命令和编程技术。图1Linuxshell脚本的演变:从纯文本(左)到base64编码的有效负载(右)。从图中可以看出,明文链接被base64编码的文本代替,部分代码为下载或编码的payload。这是通过隐藏直接有效负载链接、绕过用于识别的安全规则、增加分析难度等方式实现的。图2.用base64编码替换代码图3.解码后的base64编码有效负载命令将被执行,无论目标服务运行在服务器。但现在脚本可以检查服务器上是否正在运行特定服务,并为负载预留CPU时间。也可以用base64编码的新版本执行,也可以替换特定链接中的变量。图4.不检查是否安装就卸载服务的命令图5.找到服务后卸载服务的命令图6.变量替换的wgetURL研究人员还注意到,攻击者使用Pastebin来保存部分脚本,例如在URL和整个有效负载或帮助应用程序中,在这种情况下,将释放XMRig加密货币矿工。图7.Base64编码的配置和PastebinURL图8.Base64编码的XMrig结论恶意攻击者不断改进和优化他们的攻击技术和方法,例如允许shell脚本具有混淆和传递有效负载的能力。为了最大化利润和绕过检测,攻击者会使用一些以前在其他操作系统中发现的技术,并与这些新技术(系统)集成。虽然之前在恶意软件上下文中已经看到了一些技术,但它们在shell脚本中相对较新。过去,大多数有效载荷都是以纯文本形式部署的,并且仅用于特定任务。现在,混淆机制已经开始出现在shell脚本中。未来可能会出现更多的混淆技术,因为恶意软件作者希望隐藏其真正的有效负载。随着shell脚本的发展及其在传播有效载荷中的使用,这种趋势值得注意。本文翻译自:https://www.trendmicro.com/en_us/research/20/i/the-evolution-of-malicious-shell-scripts.html如有转载请注明原文地址
