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

一款恶意插件Eclipse的逆向过程

来源:本站整理 作者:佚名 时间:2017-08-31 TAG: 我要投稿

开始呢我想要讲的是我不是一个安全研究员、白帽子或者逆向工程方面的专家。我目前正在从事Java开发,但是我一直以来对信息安全方面非常的喜欢。
近期我对信息安全的诸多领域进行了研究,包括二进制、逆向工程到破解WPA。因此,我决定搭建一个信息安全学习博客,用于记录学到的知识。即便没有人读我的博客(译者:事实上还有个小可爱翻译成了中文),至少我能够记录下自己的收获,而且我发现把知识和经历写下来能够让我对知识有更深刻的认识。
寻找目标
今天我有相当多的空闲时间,所以我决定用逆向工程来试手。我具有多年的Java编程经验,而Java反编译器通常可以为我提供确切的源代码,因此对我来说逆向Java项目是个不错的选择。
当我正在考虑逆向哪个项目的时候,我想到之前看到的一条Eclipse插件的评价。在看到这条评价后,我决定停止使用这款插件。
Eclipse Class Decompiler插件页面


这相当值得怀疑,我并不认为这款Eclipse插件需要具备这个功能。
请注意,这个插件上榜了Java Eclipse Plugin Top 20,并有将近400k的下载量。

调查
我首先需要得到这个插件的副本,然后反编译它,或找到项目的源代码。
我第一个检查的地方是项目网站,它引导我前往项目的Github页面。我看过Github上的代码,但并没有找到所说的“phone home”的功能。也许我错过了一些东西,但是我怀疑开发者隐藏了相关的代码。所以我决定安装这个插件,然后反编译它的二进制文件。
这个插件可能会对我的电脑产生危害,所以我在VirtualBox上安装了Windows虚拟机,并在虚拟机内部安装了Java和Eclipse。

接着我安装了该插件,通过研究了Eclipse插件二进制文件的存放位置,最后在/.p2/pool/plugins文件夹找到了它们。

我把这些jar包从虚拟机复制到我主机的Eclipse里,使用了一个(我认为是)值得信赖的反编译器——jd,来分析这些类。打开主要的类文件以后,我马上发现了一些有趣的代码,这些代码用来存储在一个名为adclick.count的变量。

值得注意的是,该代码并没有出现在插件的Github版本中。

我很快发现这个二进制文件包含了相当多的类,与其一个个检查它们(可能需要几个小时),根据Eclipse Marketplace上的评论,该插件产生了一些HTTP连接,所以我决定反编译所有调用java.net.*包的源代码。

现在我缩小了需要检查的代码的范围,这样就能更深入地看看这些代码。
检查这些类时,我在IOUtils中发现了一些可疑的代码,它似乎提供了一个关闭HTTP连接的Helper Method(为什么代码反编译器需要关闭HTTP连接?)。

接下来,我在UIUtil类中发现一个方法用来在外部浏览器中打开URL,并增加adclick.count变量。

在UserUtil类中,我发现有一点值得关注——collectUserIp()方法中调用了多个(看似不相关)的各种网站。

我跟踪了这个方法,看看这些代码对用户信息做了什么…然后发现它被用在BackgroundHandler类中。
检查这个类后,我发现该代码收集了用户系统的大量信息,将其转换为JSON对象,然后将其发送到http://decompiler.cpupk.com/statistics.php”。

现在,我想看看插件收集并发送了哪些的信息到他的服务器上。我在主机上安装了Burp Suite,开启HTTP代理,这会让虚拟机中的流量通过这个代理转发。

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

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