10 月似乎是多事之秋,网络安全事故接连发生,此前我们就已经报导过 ua-parser-js NPM 库 被劫持 、SonarQube 平台漏洞被利用 。而 10 月 27 日,据 Sonatype 报导, NPM 上又出现了一些与 Noblox.js 相关的虚假包,这些假包内置了勒索软件和一些吓人的小把戏。
鱼目混珠的 Noblox.js 包
Noblox.js 是沙盒游戏 Roblox 的开源 JavaScript API,用户通常使用这个库来创建与 Roblox 网站交互的游戏脚本。(迄今为止已下载超过 700,000 次)。而这些虚假的包抢注了 Noblox.js 的域名:官方包的域名后缀是“ noblox.js-proxied ”,而假包的域名后缀是 “noblox.js-proxy”和“noblox.js-proxies(最后一个字母是 s)” ,这两个假包由同一个恶意用户("DarkDev” / “DarkDev1”)上传。
乍一看,这些假包是完全合法的,因为它们的 NPM 页面显示了官方 Noblox 包的自述文件,而且 noblox.js-proxy 的第一个 1.0.0 版本是完全正常的,包含了功能代码、正确的定义和良性的脚本。但是从 1.0.1 版本开始,之前无害的 postinstall.js 文件中出现了一些被加密的文本:
注意:普通可读函数内部的乱码是一个非常危险的信号。
双重加密的 setup.bat
脚本
为了解开这个函数的内容, Juan Aguirre 在 Ubuntu 系统中启动了这个包,但却显示 “无法运行 cmd.exe /c setup.bat
”。
.exe 格式说明假包的目标是 Windows 用户,而 setup.bat
则是一个被双重加密的文件:先用 variable expand 加密,再经过 UTF-16 转码。
反向解码后,我们得到了一个清晰的 Batch 脚本文件,:
如图中所示,setup.bat
脚本首先会运行 fodhelper.exe
来绕过 Windows 帐户控制 (UAC),然后使用 PowerShell 下载 exclude.bat
、legion.exe
、000.exe
、 tunamor.exe
这四个恶意 exe 文件,并按顺序运行。
勒索软件和吓人的小把戏
最先运行的是 exclude.bat ,一个单行 batch 脚本 ,主要用来关闭病毒防护,然后将文件的根目录加入 Windows Defender 的白名单里。
然后,legion.exe 会删除很多文件、更改注册表内容,然后偷取设备上存储的密码。有意思的是,legion.exe 还会将自己伪装成 Microsoft 更新管理器。
接下来就是重头戏:000.exe,一个 .NET 可执行文件,尝试重建代码:
如图中所示,000.exe 会不停地往外丢东西,txt 文件、bat 脚本、富文本 (RTF) 文档、exe,最后是 MP4 视频。
text.txt 是一个包含字符串“UR NEXT”的文件,Windl.bat 尝试将 Windows 用户帐户名称设置为“UR NEXT”,rniw.exe 会反复弹出带有“逃跑”消息的警告框,并不停地 ping 1.1.1.1 来耗尽系统资源,而 MP4 文件更是播放起让人毛骨悚然的视频:
最后就是我们的勒索软件:tunamor.exe
(amor 是西班牙语中的“爱”),运行后是一个赎金页面:
总结一下,这些恶意勒索包通过抢注相似的域名,发布以假乱真的恶意包,来盗取受感染设备的密码、安装特洛伊木马以及勒索软件。
目前,两个恶意的假包都已被 NPM 删除,但随着恶意攻击事件频发,或许我们要仔细思考:如何才能避免开源生态系统( npm、PyPI 和 Rubygems 等)被恶意攻击者滥用于发布攻击性文件?
相关阅读:
猜你喜欢: