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

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

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

根据我之前的研究,trayLinkStrategy是在从服务器返回的JSON对象中解析trayLink时设置的。
接下来我又看了一下matchAdCondition()方法。该方法检查首选项中是否包含adCondition(或默认为100),并将用户反编译类的总数与此值进行比较,如果用户反编译类的总数超过此数字,则返回true。

因此,在用户对超过100个类进行了反编译后,或者服务器返回的adCondition字段更改为小于用户反编译类计数的值时,则后台浏览器将开始发出请求。
接下来我要看看trayLinkUrl是如何被设置的,这是后台浏览器所要打开的URL。我在TrayLinkUtil类中发现了用于设置trayLinkUrl的代码。首先根据服务器返回值设置trayLinkStrategy属性,然后第二种方法检查属性,如果它包含一个具有url字段的JSON对象,则返回此URL。否则,它则为包含这些对象及其权重的数组,程序将根据权重随机选择URL。

我同时注意到后台浏览器是在一个定时器上打开的,这个定时器再次由TrayLinkUtil类中的getTrayUrlDisplayTime方法定义。该方法表明trayLinkStrategy还包含了showTime属性以及前面发现的URL。

我决定结合发现到的所有内容,使用BurpSuite修改服务器响应来触发广告软件功能。我修改了服务器返回的trayLink,使其包含URL到google.com,并将showTime改为1分钟。我还将adCondition属性改为2,毫无疑问,我现在反编译类的数目已经超出了这个限制。

我使用jvisualvm来Hook Eclipse,并查看HeapDump,以确认我已经修改了相关属性。我在HeapDump上运行了以下查询语句(OQL)。
select s from java.lang.String s where s.toString().equals(“trayLinkStrategy”)
结果显示有两条记录,第一条为Eclipse InstanceProperties进行的引用,由此我观察到了之前进行的修改。

值得注意的是,键值表的第3和第8项分别包含trayLinkStrategy和adCondition。现在设置添加的JSON对象,并将adCondition的值改为2。

大约一分钟之后,我注意到BurpSuite有了动静,如图所示,虚拟机已经向google:80发送了一个请求。成功了!

为了确保这不是一个意外(因为可能很多不同的应用程序/代码向Google发送请求),我重复测试了imgur.com 。

结果是一样的,虚拟机向imgur.com:80发出请求。

此时虚拟机弹出了IE证书的问题。这可能是由于imgur通过TLS请求资源,但BurpSuite的证书不符合这些资源的DN(身份识别信息?)。


当离开Eclipse窗口,可以在BurpSuite看到imgur的调用流。

结论
很高兴我对该插件进行的研究产生了一定的成果,我揭露了一个上榜Java Eclipse Plugin Top 20的插件内存在的恶意代码,以及分析了Eclipse Marketplace评论所说的“call home”方法。我认为这个功能的代码没有出现在Github版本的代码中就足以证明它可能不怀好意。
我想要补充的是,尽管这个功能存在,但我并没有观察到服务器提供了所需的JSON对象来触发广告。
我将就该问题联系Eclipse官方,他们不会容忍这种功能。
如果有任何问题,请随时发表评论。
Append:基于进一步的研究,这些恶意代码可能被用于下载文件到用户系统上(仍然要更深入的测试)。因为通信是完全未加密的,所以可能会产生非常恶劣的影响。
Append 2:我对上述猜想进行了测试。
我伪造了一个只包含一个带消息的JFrame的jar文件,并用python开放在80端口

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

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