流量劫持
1、物理层
这里的流量主要是从物理线路上进行引流,使得流量经过自己的监控设备,一般流量劫持不在这层做,但是有些监控设备会吧流量转过来做监控审计,或者做嗅探。
2、数据链路层
一般这里有两种,一种是ARP攻击-MAC欺骗一类,一种是HUB嗅探(已经很少了,因为HUB基本被淘汰了)。ARP攻击原理也很简单:
2.1、ARP攻击原理
是因为任何ARP协议没有状态且ARP响应包接收方不对收到的response报文做安全性检查,直接信任,可以直接对client伪装自己是网关,从而达到吸引client的跨广播域流量到自己来的目的,可以做中间人,实现流量劫持。典型例子bettercap软件
2.2、MAC攻击原理
现代的接入交换机的mac动态学习算法亦然僵化,来的就学到,发动大量伪造源MAC的数据报文就可以欺骗交换机,或者直接伪造各种流量报文,打满交换机的MAC的mac学习表,从而逼迫交换机转发帧的时候进行广播,从而达到嗅探的目的。
3、网络层
这里方法会多一些,第一入侵路由器,修改路由,使得受害者的流量经过攻击者控制的设备就行操作。或者做一个代理,使得受害者的流量都由攻击者的代理服务器转发。或者进行PPPoE钓鱼,一般PPPoE都是拨号到路由器上,所以这里就归入网络层吧,当然还有WiFi热点钓鱼、伪基站等等。很多都很熟悉了,有点安全意识就可以避免的,比如WiFi热点,伪基站等等,入侵路由器则可能是漏洞修复的问题及口令配置的问题。而配置代理也需要入侵路由器或者攻击者主机,要么就是免费代理引诱受害者上当,都另做盘算。这里主要说一下PPPoE钓鱼:
3.1、PPPoE钓鱼
PPPoE Request报文会层层广播,层层向上,所以如果受害者如果和攻击者在一个Vlan里或者受害者的PPPoE的request的报文到达PPPoE服务器之前到达了攻击者控制的设备,那么攻击者只需开启一个PPPoE服务端,你们就会抢先开始愉快的相互认证,信息就被黑客拿到了
4、应用层
这里就更多了,而且都是排查重点。
4.1、DNS劫持
本地host文件被污染,或者你所在的服务器上修改了解析(也可能是加了解析)都有可能导致。很明显的特点就是不同方式接入访问同一个站点,结果不同。这个时候要检查host文件和DNS解析的情况。
查看本地DNS和其他权威DNS的解析比教。
root@bogon#dig www.target.com
root@bogon#dig www.target.com @114.114.114.114
root@bogon#dig www.target.com +trace
4.1.1、DNS污染与DNS劫持的区别
DNS污染指的是伪造DNS回包,并抢先到达Client。DNS劫持是攻击DNS服务器,修改解析记录。
4.1.2、相关命令使用补充–dig
dig
-x 反解析IP
-t dns解析类型
-p 指定dns服务器端口号
-f 文件批处理方式解析多个域名
-b 指定命令执行的主机从哪个ip的网口发出相关请求
4.2、业务伪造
业务伪造可以有很多攻击场景,这里其实可以归类为MOTS,攻击要点就是伪造报文抢先到达,基于现有的网络情况,跳数越少,越先到达(设备转发占据大部分时间)。
这里借用Freebuf上的一张图
4.2.1、攻击场景
TCP劫持,可以直接获取到TCP的SEQ当然还有其他所有信息,足够伪造回包,TCP对包的来源没有继续确认的办法,MOTS可以全面伪造TCP状态机的每一个状态;
DoS攻击,只需要一个Rst报文或者一个ICMP不可达报文就可以拆连接或阻塞UDP通信,达到DoS的效果;
HTTP劫持,请见下面的例子;
DNS 污染攻击,抢先伪造DNS响应并回包;
4.2.2、典例HTTP攻击场景
明显特点就是IP报文中的TTL不同(TimeToLive),正常的访问由于地理未知原因会经过多跳才能到达,但是伪造业务回包的设备肯定离你比正常访问近,回包先到达,否则无法达成劫持的效果。尤其是伪造HTTP的偏多。
这里使用curl进行简单的判断看回显:
curl -H:"key:value" url
-k 允许不用ssl
4.3、CDN入侵
CDN本质是良性的DNS流量劫持,而且本地会缓存很多文件,速度性能都会有很大提升,但是CDN被入侵,缓存会被替换从而导致各种脚本注入,跳转导致流量被劫持。
4.4、HTTP站点被入侵导致的流量劫持
在页面上加东西被跳转,特点是所有人访问他都会被劫持,这个和DNS有明显区别,和业务伪造也有明显区别。