网站暗链接检测及研究(干货)下篇

admin 2025年2月13日22:21:46评论32 views字数 6554阅读21分50秒阅读模式
0x2:HTML隐藏型暗链

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>
以上几种是惯用的挂暗链的方法,但目前的搜索引擎也开始对这些方法进行识别和打击,如果代码没有任何处理的话,那么这些外链将有可能全部被降权。即便如此,这几种仍然是目前最常见的暗链隐藏方法。为了不被搜索引擎识别,攻击者利用JS向页面中写入ccs样式,并设置其属性,由于搜索引擎对这种JS代码的内部实质意义还无法识别,因此也成为了挂暗链的一种常见形式。

网站暗链接检测及研究(干货)下篇

网站暗链接检测及研究(干货)下篇

4、利用z-index属性

利用遮挡层隐藏暗链。z-index属性可以设置元素的堆叠顺序,z-index值越小其堆叠顺序越靠后,因此可以利用其它层来遮挡暗链。
网站暗链接检测及研究(干货)下篇

5、利用iframe创建隐藏的内联框架

网站暗链接检测及研究(干货)下篇
marginWidth,marginHeight为0 则无法显示内联框,可隐藏暗链。
<!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>标签插入链接

利用<meta>标签插入链接。位于网页html源码头部内的<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;
一般来说,脚本代码中会对UA进行判断,这里列举一些搜素引擎的UA特征:
百度“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)Google“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中),以此达到路由劫持的目的。

网站暗链接检测及研究(干货)下篇
将其中base64加密的内容进行base64解密,得到以下内容:
网站暗链接检测及研究(干货)下篇

其中 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{param}

启动cmd.exe并执行param命令

msf

{pass}msf{ip}${port}

反向连接攻击者msf服务器

dw

{pass}dw{url}${file}

下载url文件到被入侵服务器的指定文件中

in

{pass}$in

获取被入侵服务器基本信息

4)和正常IIS模块绑定实现白加黑隐藏攻击

通过捆绑正常模块如F5XFFHttpModule(一种用于记录访问者IP的正常模块)进行传播。白加黑的样本既可以在安装模块后很好的伪装攻击行为,也能上传到下载站诱骗管理人员下载安装。这类攻击同时具备危害性与隐蔽性,不容易被发现。

网站暗链接检测及研究(干货)下篇

5)动态向远端C&C拉取配置文件实现灵活可配置的后门模块

在初始化时需要通过DnsQuery向xinxx.allsoulu.com查询UA、URL及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.htmlhttps://cloud.tencent.com/developer/article/1044102?from=15425https://www.freebuf.com/news/339736.htmlhttps://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>
网站暗链接检测及研究(干货)下篇
(2)利用跑马灯 marquee 属性,即通过改变跑马灯 marquee 参数达到用户不可见。链接以跑马灯形式迅速闪现,跑马灯的长宽设置很小,同时将闪现的频率设置很大,使得查看页面时不会有任何影响。代码实例如下:
<marqueeheight=1width=4 scrollamount=3000 scrolldelay=20000><ahref" 暗链 "> 锚文本 </a></marquee>
(3)利用 display:none 和 visibility:hidden 隐藏区域里的内容,即通过设置“ display:none”, “overflow:hidden”达到用户不可见。代码实例如下:
<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。

五、基于网站异常内容动态监控网页暗链

  • 网站內链、外链监控
  • 基于网站内容动态渲染的内容安全识别

原文始发于微信公众号(三沐数安):网站暗链接检测及研究(干货)--下篇

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月13日22:21:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   网站暗链接检测及研究(干货)下篇https://cn-sec.com/archives/3737085.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息