关于流量劫持问题
对流量劫持问题的一些整理,如侵权请联系删除( •̀ ω •́ )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包,达到控制目标网络链路的行为。最常见的就是某些设备实现的对非法站点的访问拦截,以及一些地区运营商的网页植入广告行为。
判断方法
- 应用层(e.g. BurpSuite)抓包,观察返回包的信息,受否有返回包的痕迹
- 网络层(e.g. WireShark)抓包,分析HTTP/HTTPS的响应包是否有异常的
- 分析HTTP、HTTPS包的TTL值
- 在使用HTTPS的网站中,一般来说,在时间接近的情况下,连接相同的目标IP,数据包在链路上的路径是是近似的,相差在2、3左右
- 可以根据时间排序,寻找TTL显著大的包,如果存在明显异常TTL的包,可以初步确定存在链路劫持
- 分析包内容的Identification字段是否存在异常
- 该字段主要用于IP分片 [3]
- 数据链路层具有最大传输单元MTU这个特性,它限制了数据帧(fragment)的最大长度。因此,通常要传输的IP报文大小超过最大传输单位(MTU)时,就会产生IP分片的情况,IP分片经常发生在网络环境中
- IP首部包含的分片、重组信息:
| Identification |R|DF|MF| Fragment Offset |
- 注意其中的Identification。发送端发送的IP数据包标识字段都是一个单一值,该值在分片时被复制到每个片中。具有同一个ID的IP分片将会重新组装。
- 之所以引入这个概念,是因为在被劫持的情况下,IPID可能也会存在异常情况。比如在近期的GitHub HTTPS证书劫持事件,我们发现:“被劫持的会话数据包(https)全部回包的IPID都是0. 正常数据包(http)首次回包IPID是0,之后的回包就不是了”[1]
- 这种与正常数据包(确定的)异样的情况,也可以帮助我们判断是否在链路存在劫持
案例
6. 运营商劫持
攻击方法
- DNS劫持
- HTTP劫持
- HTTPS劫持
运营商比较常见的作恶方式有三种,分别是DNS劫持、HTTP劫持、HTTPS劫持:
DNS劫持:这种劫持会把你重新定位到其它网站,我们所熟悉的钓鱼网站就是这个原理。但是因为它的违法性,现在被严厉的监管起来,已经很少见。
HTTP劫持:虽然DNS劫持已经被监管了起来,但是还有HTTP劫持啊!你DNS解析的域名的IP地址不变,当运营商发现你的是HTTP请求时,就会在里面插入一些奇奇怪怪的广告(比如一些banner、浮标、更有甚把你你的商品位给劫持了 WTF...)并且这种现象十分常见,不信你可以试着随便打开一个网页,仔细看看你就会发现一些小尾巴,这就是被HTTP劫持了。
HTTPS劫持:安全的超文本传输协议,数据加密这也能劫持?答案是肯定的!该劫持方式有两种:
- 伪造证书,通过病毒或者其他方式将伪造证书的根证书安装在用户系统中(较少)
- 代理也有客户的证书与私钥,或者客户端与代理认证的时候不校验合法性,即可通过代理来与我们服务端进行数据交互(较多)
作者:Eddiezsl 链接:https://juejin.im/post/5bea7eb4f265da612859a9e4 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
防护手段
主要是“防script、iframe注入型劫持,95%以上是这种劫持方式,因为DNS劫持被严管了” [4]
运营商流量劫持骗局
众所周知,运营商掌握着大量的用户数据,且这些数据的量可以做到精准推广,因此对于灰黑产这些流量驱动型产业来说,是很好的资源。
在TG上也有许多推广劫持量的骗局。大多声称“运营商的代理商“,要求先开户后跑流量,一般不做免费测试。一般来说,这些测试的流量数据会很好看,但注册后二次访问少、跳出率高,可以初步判断为伪造流量。
这种情况在做劫持流量推广上并不少见,从执法角度,这些骗子代理商所掌握的下游项目信息也是非常多的,打击此类骗局或许可以起到牵一发而动全身的效果。
7. CDN缓存污染
定义
- 补充
- CDN:CDN加速技术本质上是一种良性的DNS劫持,通过DNS引导将用户对服务器上的js、图片等不经常变化的静态资源的请求引导到最近的服务器上,从而加速网络访问。
案例
- 百度网盟CDN缓存服务器中的关键JS文件被污染注入广告代码
- 参考:Link
8. 软件升级劫持
这种攻击类型比较特殊,攻击方式很广,不太容易归为一种链路劫持获运营商劫持,特此单列。
定义
往往是在劫持了某个正规软件的升级程序后,在用户更新软件时感染病毒。
案例
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