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

伪装成比特币钱包的Java恶意软件分析

来源:本站整理 作者:翻译: 興趣使然的小胃 时间:2017-02-11 TAG: 我要投稿

完整的解密程序 在此 

Jar解压后的资源包括RSA私钥、加密的AES密钥以及加密后的内容。在对代码去混淆处理后,我们可以得到另一个XML文件。

XML文件中每个属性都是一个指向其他资源的路径信息:

SERVER_PATH指向另一个加密的JAR文件,这个文件也是恶意软件的核心;

PASSWORD_CRYPTED是一个经过RSA加密的AES密钥;

PRIVATE_PASSWORD是一个RSA私钥。

使用同样的解密方法(RSA+AES)后,我们可以得到第三个JAR包。

(三)第三阶段

我们使用同样的自动化java去混淆器对代码进行清理,并对得到的jar文件进行反编译。

观察jar文件内部结构,我们可以找到一些熟悉元素,这些元素包括用于感染特定系统(windows, mac, linux)的功能函数,这也使我们进一步确信这就是恶意软件的核心。在key文件夹以及protect文件夹中,我们找到了释放到Windows系统%TEMP%目录下的DLL文件,同样也找到了一些负责SSL网络通信的类文件。

然而,去混淆处理是否成功很大程度上取决于我们所选择的反编译器。虽然JD-GUI非常擅长于呈现JAR包的内部结构,但它在所有类的反编译工作上却无能为力。我们可以轻松阅读其他没有被混淆的包,但RAT的核心(server包中的类)却是完全不可读的。

另一个CFR反编译器给出了一个更好的 结果 

经过处理后我们最终得到了一些java代码,但去混淆工作还没结束。为了对抗分析,恶意软件使用了两种技术,首先,代码中的类、方法以及变量被重命名为无意义的字符串,其次,所有的字符串都经过了几个函数进行加密处理,并在运行时再解压使用。核心类中的大部分代码与下面这个代码片段类似。

虽然有时我们在代码中能看到对某些可读名称的类的引用(如JSON解析器),但这类信息太少了,我们无法理解其背后的功能。对字符串的解码能够大幅度提升代码的可读性,但CFR中负责解码的函数输出并不理想。经过几次尝试后,我们最终选择了 Kraktau 反编译器。

此外,代码中的函数使用所调用类的类名作为解密密钥,因此,如果我们试图在去混淆过程中对类进行重命名,我们将无法得到有效的字符串信息。

(四)对配置文件进行解码

在resources文件夹中,我们找到了三个有趣的文件:Key1.json,Key2.json以及config.json。

这三个文件的加密方式与上一层加密方式相同:Key1是个经过序列化的RSA私钥,Key2是一个经过加密的AES密钥,config.json是一个经过AES加密的配置文件,相应的解密器代码可以在 这里 找到。最终,我们得到了这个RAT的配置文件( 地址 )。

从配置文件中,我们可以找到之前在行为分析中得出的一些元素。

如配置文件所示,jar包安装在Windows文件夹中,名为Windows.Windows,文件夹PuXpErTFKpK用于存放最终插件。配置文件中还包括释放到%TEMP%文件夹中的reg文件内容,一些杀软/安全产品的黑名单页被包含在内。

五、功能分析

在对大多数字符串进行去混淆之后,我们可以更好理解这款RAT的功能。通过使用JSON配置文件,该RAT可以实现功能的高度模块化,此外,程序还可以通过专用插件进行功能的扩展。

主jar包中还包含其他一些有趣的功能,比如:

1、下载其他JAR文件,以png文件保存并运行。

2、捕获麦克风和摄像头数据,窥探用户隐私。

捕获的内容被传到C&C服务器上。

3、在浏览器中打开指定URL。

上一页  [1] [2] [3] [4]  下一页

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