经常听说 Dos, DDoS, ARP欺骗,Man In The Middle 等各种攻击方式,最近抽空研究了一下,这里做个总结。
MAC/ARP Flooding
在典型的MAC flooding中,攻击者能让目标网络中的交换机不断泛洪大量不同源MAC地址的数据包,导致交换机内存不足以存放正确的MAC地址和物理端口号相对应的关系表。如果攻击成功,交换机会进入failopen模式,所有新进入交换机的数据包会不经过交换机处理直接广播到所有的端口(类似HUB集线器的功能)。攻击者能进一步利用嗅探工具(例如Wireshark)对网络内所有用户的信息进行捕获,从而能得到机密信息或者各种业务敏感信息。
![](http://i.imgur.com/nnAjQXe.png)
如图所示,网络中有3个PC和一个交换机,在正常情况下,如果PC A向PC B发送信息,PC C是不会知道的。
当攻击者PC C利用MAC flooding攻击对交换机发送很多非法的包含不同源MAC地址的封包时,交换机会把所有这些MAC地址记录到自己的CAM(Content Addressable Memory)表之中,当这些记录超过一定的数量,超过交换机所能承载的内存的时候,MAC flooding的效果就达成了。
![](http://i.imgur.com/e0Ld1TO.png)
当MAC flooding效果达成的时候,交换机就变成了集线器,对所有信息进行无定向广播,PC A 发送给PC B的信息PC C也可以收到了。这个时候PC C就可以捕获数据进行数据截取等操作。
![](http://i.imgur.com/RJ5AAf3.png)
ARP-Cache poisoning
Denial of Service
一个黑客可以只做简单的操作就将一个重要的IP地址和一个错误的MAC地址绑定。例如,黑客可以发送一个ARP响应报文 (到你的计算机) 将你所在网络的路由器 (即我们常说的网关) IP地址和一个根本不存在的MAC地址绑定起来。你的计算机一位它知道默认网关在哪,但是事实上它的所有数据包,其目的地址都不在这个网络的网段上 (因为那个不存在的MAC不在此局域网的网段上) ,它们最后消逝在了无尽的比特流中 (即因数据包的生命周期到了而信号消失,译者注)。仅仅这一下,黑客就能阻止你连上因特网。
Man in the Middle
黑客利用ARP缓存中毒来截获你的局域网中两台设备之间的网络信息。例如,我们假象黑客想要窃听你的计算机,192.168.0.12,和你的网络路由器 (即网关,译者注) ,192.168.0.1,之间的通信信息。黑客先发送一个恶意的ARP “响应” ( 因为在此之前根本没有请求) 到你的路由器,将他的计算机的MAC地址和192.168.0.12绑定。现在你的路由器以为这个黑客的计算机就是你的计算机了。
然后,黑客在发送一个恶意的ARP响应到你的计算机,将他的MAC地址和192.168.0.1绑定起来。 现在你的机器以为黑客的计算机是你的路由器了。
最后,黑客开启一个叫IP转发的系统功能。这个功能让黑客能将所有来自你的计算机的网络信息转发到路由器。现在,只要你尝试上网,你的计算机就会将网络信息发送到黑客的机器上,然后黑客再将其转发到路由器。由于黑客仍然将你的信息转发到网络路由器,所以你并不会察觉到他已经截获了所有你的网络信息,或许还窃听了你的明文密码或者劫持了你曾经安全的网络会话。
ICMP-Echo flooding
大量的 ICMP消息发送给目标系统,使得它不能够对合法的服务请求做出响应。ICMP FLOOD攻击实际上是一种两败俱伤的攻击方式,在主机”疯狂”地向攻击目标发送ICMP消息的时候,主机也在消耗自身的系统资源。如果自身的网络资源小 于目标的话,这种攻击就是”蚍蜉撼大树”。因此,ICMP FLOOD攻击为了达到很好的效果,往往要联合多台机器同时攻击同一台机器,从而形成分布式拒绝服务攻击(DDoS)。
攻击者向许多地址发送ICMP Echo Request,但是它却告诉这些地址ICMP Echo Request不是它自己发的,而是”某某”发的,这个”某某”就会成为”众矢之的”。通过伪装目的主机的IP地址,向多个IP 网络的广播地址发送ICMP Echo Request数据包,使得目的主机需要消耗大量CPU 资源和有效带宽来处理来自众多节点的ICMP Reply数据包。
ICMP-Smurf attack
Smurf攻击是根据它的攻击程序命名的,是一种ICMP echo flooding攻击,在这样的攻击中,ping包中包含的欺骗源地址指向的主机是最终的受害者,也是主要的受害者,而路由器连接的广播网段成为了攻击的帮凶,类似一个放大器,使网络流量迅速增大,也是受害者。
smurf攻击的工作原理:
R1 (H11: 1.1.1.1) |----H1(192.168.20.1)
| |----H2(192.168.20.2)
--------------------R2-----------|----H3(192.168.20.3)
| |----H4(192.168.20.4)
|s0/0 |----H5(192.168.20.5)
R3(H33: 3.3.3.3)
路由器R1后方有一真实主机H11的IP地址为1.1.1.1,路由器R3后方有一真实主机H33的IP地址为3.3.3.3,R2后方的ethernet网络内有多台主机:H1,H2,H3,H4,H5…假设主机H11是一个攻击者,它发起一个到子网192.168.20.0的ICMP echo广播报文,报文的源IP地址被伪造成3.3.3.3,目的地址为192.168.20.255(子网广播地址),当R2后方网段内的每台主机收到此广播报文后,都将作出相同的响应:返回单播报文,此报文的目的地址为3.3.3.3(此时,R2后方的ethernet网络被攻击者利用,成为一个攻击的放大器)。这样真实主机H33将收到许多ICMP echo-reply的洪泛,最终主机H33的系统资源将被耗尽。