1、display:none隐藏html元素
<div style="display:none;"> <a href="域名" target="_blank">关键词</a> </div>
2、利用marquee属性
<marquee height=1 width=5 SCROLLAMOUNT=3000 SCROLLDELAY=20000> <a href=域名>关键词</a> </MARQUEE>
3、利用position属性
CSS1
<div style=”position: absolute; top: -999px;left: -999px;”>
<a href=域名>关键词</a>
</div>
CSS2
<div style=”position:absolute;left:expression(1-900)
;top:expression(3-999);”>
<a href=域名>关键词</a>
</div>
4、利用z-index属性
5、利用iframe创建隐藏的内联框架
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="0;url=http://xxxx/h6.php">
<title>Redirecting...</title>
</head>
</html>
6、利用<meta>标签插入链接
0x3:服务端脚本SEO型暗链
class Login
{
/**
* 统一登录方法
* @param $loginData array 登录携带信息
* */
public static function login(array $loginData): array
{
$lang = $loginData['lang'] ?? 'zh';
//if ($lang == "en")
header('Location: https://99662121.com/registered');die;
百度
“Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)”
百度图片
“Baiduspider-image+(+http://www.baidu.com/search/spider.htm)”
百度PC:
Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)
百度移动:
Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)
360搜索
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0);
360网站安全检测
360spider (http://webscan.360.cn)
“Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”
Google图片搜索
“Googlebot-Image/1.0”
Adwords移动网络
“AdsBot-Google-Mobile (+http://www.google.com/mobile/adsbot.html) Mozilla (iPhone; U; CPU iPhone OS 3 0 like Mac OS X) AppleWebKit (KHTML, like Gecko) Mobile Safari”
微软 bing,必应
“Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)”
腾讯搜搜
“Sosospider+(+http://help.soso.com/webspider.htm)”
搜搜图片
“Sosoimagespider+(+http://help.soso.com/soso-image-spider.htm)”
雅虎英文
“Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)”
雅虎中国
“Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)”
搜狗图片
“http://pic.sogou.com” “Sogou Pic Spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07)”
搜狗
“Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)”
网易有道
“Mozilla/5.0 (compatible; YoudaoBot/1.0; http://www.youdao.com/help/webmaster/spider/; )”
0x4:HTML批量文件污染植入
0x5:服务端路由跳转劫持
1、关键路由脚本劫持
黑客通过将SEO代码植入关键的PHP/ASP/JSP代码逻辑中(例如首页index.php、autoload.php中),以此达到路由劫持的目的。
其中 function isSpider()函数主要用来判断是否为爬虫访问,如果是爬虫则返回http://l5.wang2017.com/相关的内容。
2、通用配置文件劫持
3、借助Dll模块实现路由劫持
为了更好的对IIS服务中所有站点进行管理,IIS服务允许管理员安装模块对服务器上的全局信息进行个性化的处理,如全局对访问鉴权、对http请求过滤、设置返回信息等。因此攻击者利用IIS模块能够对http请求和返回进行处理的特性,通过实现CHttpModule或CGlobalModule类中不同的函数实现对http请求和返回的控制。
下图为IIS的服务器对http请求的处理流程。
1)title/meta劫持
对网站的首页进行暗链相关内容植入,搜索引擎访问受害者网站时,恶意模块会将网页的title和meta信息替换为模块中的硬编码信息,达到对黄赌毒网站信息传播的目的。
2)动态从C&C端获取暗链网页内容
不但实现了暗链功能还实现了代理功能。当搜索引擎访问受害者网站访问时,恶意模块会使用代理模块从攻击者网站获取暗链页面并返回。与直接硬编码SEO内容相比,攻击者能够通过后端网站的配置实时修改暗链的返回页面,甚至在必要时可以关闭返回达到规避暗链检测的目的。
在条件满足(路径带app字样且UA为蜘蛛)情况下,IIS进程会请求http://sc.xxxbt.com/xxx 路径,并返回请求到的内容。
3)根据URL、UA、Referer等字段针对搜索引擎进行定向SEO攻击
这类攻击同时实现了暗链、后门及代理功能。样本根据URL、UA、Referer以及CMD字段,将http访问分成了正常用户访问、搜索引擎爬虫以及攻击者访问。如果访问者是正常用户则返回网站原本页面,如果访问者是搜索引擎爬虫则返回攻击者服务器设置的赌博或色情页面,如果是攻击者访问则会执行命令并返回结果。
后门实现了命令执行、msf反弹shell、下载及信息收集功能,具体命令格式如下表所示。
后门命令 |
命令参数格式 |
说明 |
cmd |
{pass} |
启动cmd.exe并执行param命令 |
msf |
{pass} |
反向连接攻击者msf服务器 |
dw |
{pass} |
下载url文件到被入侵服务器的指定文件中 |
in |
{pass}$in |
获取被入侵服务器基本信息 |
4)和正常IIS模块绑定实现白加黑隐藏攻击
通过捆绑正常模块如F5XFFHttpModule(一种用于记录访问者IP的正常模块)进行传播。白加黑的样本既可以在安装模块后很好的伪装攻击行为,也能上传到下载站诱骗管理人员下载安装。这类攻击同时具备危害性与隐蔽性,不容易被发现。
5)动态向远端C&C拉取配置文件实现灵活可配置的后门模块
4、hook文件劫持
https://cloud.tencent.com/developer/article/1798770?from=15425
https://www.heimao.wiki/post/14.html
https://cloud.tencent.com/developer/article/1595250?from=15425
https://www.freebuf.com/articles/web/222060.html
https://cloud.tencent.com/developer/article/1044102?from=15425
https://www.freebuf.com/news/339736.html
https://www.leiphone.com/category/gbsecurity/f92lZgFFWN3HWOQf.html
二、基于机器学习识别网页暗链文件
0x1:方法论原理
网页中被植入的暗链,通常是淫秽、博彩、商广等内容,其锚文本含义与整体网页主题有很大差异,这种主题差异可作为最终监督学习决策模型的重要特征。
我们可以使用基于规则的多域模型提取网页中可疑文本信息和正常文本信息,导入 LDA(Latent Dirichlet Allocation) 主题识别算法提取主题并计算差异度。
0x2:方案概要
根据网页中暗链植入特点,提取可疑链接信息,可疑代码信息,可疑文本信息,做暗链检测,使用多模型融合提高结果准确度。
具体逻辑如下图所示,分为安全域识别模型、可疑域识别模型、主题识别模型,通过设置各模型权重,并将三个模型结果信息融合导入机器学习模型训练,得到综合结果用于鉴别。检测结果导入人工审核机制,对审核确认后的样本自动加入模型重训练流程。
网页暗链检测模型收集大量网页源码作为训练集,所述训练集中包含已被标注为包含暗链的网页和标注为正常的网页,提取训练集用于构建机器学习模型的特征数据,包括风险度、主题异样度、主题、风险文本向量、风险文本异常概率以及风险文本长度等。
具体来说,
-
使用基于规则的模型提取可疑敏感文本信息,模型包括:可疑域识别模型、敏感域识别模型、安全域识别模型。 -
使用机器学习模型对特征做深度抽取融合检测,模型包括:主题识别模型、基于 Doc2vec( 文档向量模型 ) 特征融合模型、基于监督学习的暗链检测模型。
1、多域识别
结合安全专家知识,通过对历史样本数据分析,根据网页不同位置可被植入的风险度, 划分为可疑域、敏感域、安全域。对不同域识别匹配可估算出网页整体风险度。
1)可疑域识别
分析网页源码,提取网页源码中所有可疑域,对每个可疑域进行风险度识别并获取风险文本。可疑域具体指包含隐藏效果的代码区域,包括:
(1)链接位于页面可见范围之外,即通过改变 position 位置达到页面不可见。可以将 position 位置属性设置成负数,则链接无法显示在可见页面之内。代码示例如下:
<divstyle="position:absolute;left:expression_r(1900);top:expression_r(3-999);">
<a href=" 暗链 "> 锚文本 </a>
</div>
<div style="position:absolute;top:-999px;right:- 999px;">
<a herf=" 暗链 "> 锚文本 </a>
</div>
<div style="text-indent:-9999em; display:block; float:left">
<a herf=" 暗链 "> 锚文本 </a>
</div>
<marqueeheight=1width=4 scrollamount=3000 scrolldelay=20000>
<ahref= " 暗链 "> 锚文本 </a>
</marquee>
<div style="display:none;">
<a href=" 暗链 "> 锚文本 </a>
</div>
<div style=" overflow:hidden;">
<a href=" 暗链 "> 锚文本 </a>
</div>
2)敏感域识别
分析网页源码,提取网页源码中所有敏感域,对每个敏感域进行风险度识别并获取风险文本。
敏感域具体指可能含有隐藏效果的代码区域,包括但不限于:
(1)包含 style 属性赋值的 <div> 标签区域
(2)包含 id 属性赋值的 <div> 标签区域
(3)包含 class 属性赋值的 <div> 标签区域
(4)<td> 标签区域
(5)<marquee> 标签区域
(6)<ul> 标签区域
(7)<tr> 标签区域
三、基于专家规则识别网页暗链文件
对于windows对象引入的,判断其是否使用了16进制代码,如果使用了,那么怀疑度+1。然后再判断16进制代码解析之后的内容,如果出现了script字样,则怀疑度+1。
对于使用十进制ASCII码进行伪装的暗链,可以判断其变量是否被document.wirte对象引用了,如果引用了再判断其十进制ASCII码的内容。
对于改变script标签src属性的暗链,可以直接翻译其10进制unicode编码,结合威胁情报或者跟进JavaScript代码等方式进行判断。
对于eval函数混淆的暗链,可以先走一个逆向的过程,然后的分析步骤就和上面三种一样了。
四、基于威胁情报识别网页暗链文件
基于威胁情报,识别网页文件中存在的恶意URL。
五、基于网站异常内容动态监控网页暗链
-
网站內链、外链监控 -
基于网站内容动态渲染的内容安全识别
原文始发于微信公众号(三沐数安):网站暗链接检测及研究(干货)--下篇
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论