跳转至

关于流量劫持问题

对流量劫持问题的一些整理,如侵权请联系删除( •̀ ω •́ )y

从攻击面上来讲,流量劫持大概可以分为两个部分:本地劫持 和 网络劫持,本篇笔记在整理的过程中,也是按照这种方式。其中,本地劫持后面的几种方式,都可以归纳为网络劫持(即,离开用户主机后穿行于各个路由网关节点时所遭遇的劫持问题)。

0. 本地劫持

定义

常使用流氓软件的方式,安装在用户的客户端,与木马的行为本质无异(主页锁定,网页劫持、广告弹窗、流量暗刷、静默安装)。

案例

  • 通过浏览器插件进行流量劫持的QTV系列变种[5]

​ 图:注入方式的劫持流程图

  • “高清影视流氓病毒”案例

​ 图:流氓软件方式的劫持流程图

  • 广告弹窗挂马

原本的广告流量被注入了网页木马,以广告弹窗等形式在客户端触发,这属于一种变相的流量劫持,更确切的说应该称之为“流量污染”或“流量投毒”[5]

1. DNS劫持

定义

DNS劫持是你想去机场的时候,把你给丢到火车站。

攻击方法

1.本机DNS劫持

攻击者通过某些手段使用户的计算机感染上木马病毒,或者恶意软件之后,恶意修改本地DNS配置,比如修改本地hosts文件,缓存等

2. 路由DNS劫持

很多用户默认路由器的默认密码,攻击者可以侵入到路由管理员账号中,修改路由器的默认配置

3.攻击DNS服务器

直接攻击DNS服务器,例如对DNS服务器进行DDOS攻击,可以是DNS服务器宕机,出现异常请求,还可以利用某些手段感染dns服务器的缓存,使给用户返回来的是恶意的ip地址

作者:Luxm 链接:https://juejin.im/post/5cff858a6fb9a07ed84238ec 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

防护手段

1.加强本地计算机病毒检查,开启防火墙等,防止恶意软件,木马病毒感染计算机

2.改变路由器默认密码,防止攻击者修改路由器的DNS配置指向恶意的DNS服务器

3.企业的话可以准备两个以上的域名,一旦一个域名挂掉,还可以使用另一个

4.用HTTP DNS 代替 Local DNS

作者:Luxm 链接:https://juejin.im/post/5cff858a6fb9a07ed84238ec 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2. HTTP劫持

定义

HTTP劫持是你去机场途中,有人给你塞小广告。

3. 证书劫持

HTTPS劫持,长以中间人攻击的形式存在。

比如去年“哈萨克斯坦政府实施的电信级HTTPS劫持”过程中,就是哈政府要求公民安装

4. 链路劫持

链路(Data Link)劫持

定义

TCP链路劫持其实就是指网络链路上侦听、伪造TCP包,达到控制目标网络链路的行为。最常见的就是某些设备实现的对非法站点的访问拦截,以及一些地区运营商的网页植入广告行为。

判断方法

  1. 应用层(e.g. BurpSuite)抓包,观察返回包的信息,受否有返回包的痕迹
  2. 网络层(e.g. WireShark)抓包,分析HTTP/HTTPS的响应包是否有异常的
  3. 分析HTTP、HTTPS包的TTL值
  4. 在使用HTTPS的网站中,一般来说,在时间接近的情况下,连接相同的目标IP,数据包在链路上的路径是是近似的,相差在2、3左右
  5. 可以根据时间排序,寻找TTL显著大的包,如果存在明显异常TTL的包,可以初步确定存在链路劫持
  6. 分析包内容的Identification字段是否存在异常
  7. 该字段主要用于IP分片 [3]
    • 数据链路层具有最大传输单元MTU这个特性,它限制了数据帧(fragment)的最大长度。因此,通常要传输的IP报文大小超过最大传输单位(MTU)时,就会产生IP分片的情况,IP分片经常发生在网络环境中
    • IP首部包含的分片、重组信息:| Identification |R|DF|MF| Fragment Offset |
    • 注意其中的Identification。发送端发送的IP数据包标识字段都是一个单一值,该值在分片时被复制到每个片中。具有同一个ID的IP分片将会重新组装。
  8. 之所以引入这个概念,是因为在被劫持的情况下,IPID可能也会存在异常情况。比如在近期的GitHub HTTPS证书劫持事件,我们发现:“被劫持的会话数据包(https)全部回包的IPID都是0. 正常数据包(http)首次回包IPID是0,之后的回包就不是了”[1]
  9. 这种与正常数据包(确定的)异样的情况,也可以帮助我们判断是否在链路存在劫持

案例

  • 一些网站https证书出现问题的情况分析(3/26 GitHub证书劫持事件)

  • 文章:Link

  • 某电商网站流量劫持案例分析与思考(来自腾讯SRC)

  • 文章:Link

6. 运营商劫持

攻击方法

  • DNS劫持
  • HTTP劫持
  • HTTPS劫持

运营商比较常见的作恶方式有三种,分别是DNS劫持、HTTP劫持、HTTPS劫持:

DNS劫持:这种劫持会把你重新定位到其它网站,我们所熟悉的钓鱼网站就是这个原理。但是因为它的违法性,现在被严厉的监管起来,已经很少见。

HTTP劫持:虽然DNS劫持已经被监管了起来,但是还有HTTP劫持啊!你DNS解析的域名的IP地址不变,当运营商发现你的是HTTP请求时,就会在里面插入一些奇奇怪怪的广告(比如一些banner、浮标、更有甚把你你的商品位给劫持了 WTF...)并且这种现象十分常见,不信你可以试着随便打开一个网页,仔细看看你就会发现一些小尾巴,这就是被HTTP劫持了。

HTTPS劫持:安全的超文本传输协议,数据加密这也能劫持?答案是肯定的!该劫持方式有两种:

  1. 伪造证书,通过病毒或者其他方式将伪造证书的根证书安装在用户系统中(较少)
  2. 代理也有客户的证书与私钥,或者客户端与代理认证的时候不校验合法性,即可通过代理来与我们服务端进行数据交互(较多)

作者:Eddiezsl 链接:https://juejin.im/post/5bea7eb4f265da612859a9e4 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

防护手段

主要是“防script、iframe注入型劫持,95%以上是这种劫持方式,因为DNS劫持被严管了” [4]

运营商流量劫持骗局

众所周知,运营商掌握着大量的用户数据,且这些数据的量可以做到精准推广,因此对于灰黑产这些流量驱动型产业来说,是很好的资源。

在TG上也有许多推广劫持量的骗局。大多声称“运营商的代理商“,要求先开户后跑流量,一般不做免费测试。一般来说,这些测试的流量数据会很好看,但注册后二次访问少、跳出率高,可以初步判断为伪造流量。

这种情况在做劫持流量推广上并不少见,从执法角度,这些骗子代理商所掌握的下游项目信息也是非常多的,打击此类骗局或许可以起到牵一发而动全身的效果。

7. CDN缓存污染

定义

  • 补充
  • CDN:CDN加速技术本质上是一种良性的DNS劫持,通过DNS引导将用户对服务器上的js、图片等不经常变化的静态资源的请求引导到最近的服务器上,从而加速网络访问。

案例

  • 百度网盟CDN缓存服务器中的关键JS文件被污染注入广告代码
  • 参考:Link

8. 软件升级劫持

这种攻击类型比较特殊,攻击方式很广,不太容易归为一种链路劫持获运营商劫持,特此单列。

定义

往往是在劫持了某个正规软件的升级程序后,在用户更新软件时感染病毒。

案例

  • 乌克兰 Petya勒索病毒变种

  • 参考:Link

  • 爱奇艺客户端升级程序被劫持

  • 参考:Link

Addition

OSI七层模型

经常会用到,但总会忘记,有些基础的,一定要记住。

Reference

[1] 你需要知道的“DNS劫持”--web安全篇(1), https://juejin.im/post/5cff858a6fb9a07ed84238ec

[2] 链路劫持攻击一二三, https://security.tencent.com/index.php/blog/msg/10

[3] 浅谈IP分片的大小及其原因,https://blog.csdn.net/m0_37962600/article/details/80039349

[4] 干货!防运营商劫持, https://juejin.im/post/5bea7eb4f265da612859a9e4

[5] 互联网黑势力之流量劫持,https://paper.seebug.org/181/#146