欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

我是如何通过分析后门JXplorer样本发现其背后的恶意组织

来源:本站整理 作者:佚名 时间:2019-03-11 TAG: 我要投稿

一、概述
最近,我在使用VirusTotal Intelligence进行一些动态行为查询时,偶然发现了这个奇怪的PE二进制文件(MD5:7fce12d2cc785f7066f86314836c95ec)。该文件声称是JXplorer 3.3.1.2的安装程序,根据其官网提供的信息,JXplorer是一个基于Java的跨平台LDAP浏览器和编辑器。为什么我会说它非常奇怪呢?因为一个流行的LDAP浏览器,其安装程序应该不会创建计划任务,从而从免费动态DnS提供商托管的子域名下载和执行PowerShell代码:

我一开始,本来打算写一篇简短的文章,并专注于分析这个可疑的JXplorer二进制文件。然而,在我分析的过程中才发现,这实际上只是进入后门世界的一小步。
二、分析JXplorer
为了验证我在VirusTotal上的发现,我从官方的Jxplorer SourceForge存储库下载了Winodws平台上相匹配版本的安装程序。不出所料,两个文件的MD5哈希值并不相同。由于这些PE二进制文件都有7MB之大,因此我觉得只有当无路可走时才会选择对其进行反编译分析。于是,我开始着手进行更加简单的检查,以试图找到差异。由于二进制文件是使用UPX加壳的,所以我尝试使用UPX工具来对其进行脱壳,并比较了PE段的MD5值。除了资源段(Resource)之外,其他部分都是相同的。我并不确定PE中资源段的内容是如何影响安装程序的行为,因此我使用了VBinDiff来查看其确切的区别。通过使用该工具,我们发现了以下修改:
1、Manifest文件位于资源段,特别是其中的requestedExecutionLevel属性。原始版本的文件需要管理员权限(requireAdministrator),但修改后的版本则可以使用调用者的权限级别运行。
2、修改后版本有一个附加到文件的额外换行符,这也就解释了两个文件之间有1字节的大小差异。
3、存在一个相对较小(3230字节)的Blob,似乎是偏移量为0x4be095位置的ZLIB压缩数据。请注意ZLIB标头之前的明文文件名(http-2.7.9.tm,platform-1.0.10.tm):

前两个差异似乎并不重要,因此我专注于最后一个。识别到的ZLIB数据被放置在PE文件的覆盖空间中,我认为它可能是安装程序用于存储JXplorer文件的压缩包的一部分。幸运的是,在JXplorer官方页面上提及JXplorer会用到BitRock Install Builder。因此,经过快速搜索后,我成功找到了BitRock压缩包所对应的Tcl解压缩工具:bitrock-unpacker。
我安装了ActiveTcl,并下载了所需的SDX文件,然后使用bitrock-unpacker脚本从两个安装程序中解压缩JXplorer安装文件。然后,我使用WinMerge工具对生成的文件和目录进行比较。令我惊讶的是,二者没有任何差异,也就意味着JXplorer应用程序文件没有区别。这也意味着,我还需要进一步去挖掘。
在阅读了bitrock-unpacker的代码后,我注意到它首先安装了Metakit数据库,以便提取用于定位和提取存储JXplorer文件的Cookfs压缩包的安装程序文件。借助于现有的bitrock-unpacker代码,我创建了这个Tcl脚本,将所有安装程序文件从Metakit数据库转储到了磁盘上。现在,我们再次比较BitRock安装程序的文件,终于产生了有趣的结果。
使用WinMerge查看,我们发现了一个区别,修改后的版本中有一个名为http-2.7.9.tm的文件,位于\lib\tcl8\8.4\目录中。

尽管具有相同的大小和时间戳(从Cookfs压缩包中提取的atime、ctime、mtime),但我们修改后的安装程序中提取的文件http-2.7.9.tm(MD5:f6648f7e7a4e688f0792ed5a88a843d9,VirusTotal)并不是标准的http.tcl模块。相反,其中就包含我正要寻找的东西。

以下是http-2.7.9.tm脚本所执行操作的简要描述:
1. 创建名为Notification Push(通知推送)的计划任务,以从hxxp://svf.duckdns[.]org下载并执行PowerShell代码。
2. 将JAR文件(MD5:9d4aeb737179995a397d675f41e5f97f)写入%TEMP%\..\Microsoft\ExplorerSync.db之中。创建计划任务ExplorerSync以执行ExplorerSync.db。
3. 将JAR文件(MD5:533ac97f44b4aea1a35481d963cc9106)写入%TEMP%\BK.jar,并使用以下命令行参数执行:
hxxp://coppingfun[.]ml/blazebot
%USERPROFILE%\Desktop\sup-bot.jar
4. 执行上一步骤中下载的其他JAR文件。
5. Ping一个合法域名supremenewyork[.]com。
其中的一些动作,在我看来有点奇怪。为什么要将恶意软件投放在用户的桌面上?为什么要选择supremenewyork[.]com这个特定的域名?我不禁觉得,我正在研究的可能是修改后的安装程序的测试版本。文件的名称(blazebot、sup-bot)没有任何线索,因此我决定做一些在线的研究。
三、检索Blazebot
我们使用blazebot作为关键字,在Google上进行搜索,其中出现了一个结果,是由Stein Sørnson创建的YouTube视频,名称为Blaze Bot Supreme NYC。在该视频中,展示了一个下载、运行、配置基于Java的Sneaker Bot的过程,它被称为blazebot,或Supreme NYC Blaze Bot。在YouTube视频的内容和描述中,都引用了一个可以下载blazebot源代码的位置:一个GitHub存储库,steisn/blazebot(缓存页面)。根据该资源库的Git提交信息,可以找到作者Stein Sørnson ed.fishman392@mail[.]ru。由此证明,Stein Sørnson就是YouTube视频和GitHub存储库的所有者。
凭借这样一个独特的名称,我们不难找到另外一个与SteinSørnson相关的在线账户,这一次是在SourceForge上,用户名为allare778(缓存页面)。在个人信息页面上显示了完整的名称:

[1] [2] [3] [4] [5] [6]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载