0x00:前言
ARP协议“Address Resolution Protocol”地址解析协议,位于TCP/IP协议簇的网络层,其作用是实现IP地址和MAC地址之间的转换工作
TCP/IP协议簇:
0x01:ARP流程、方式
ARP:IP地址转化为MAC地址
RARP:MAC地址转化为IP地址
(1)ARP流程
假设计算机 A 192.168.1.10 ping 计算机 B 192.168.1.11,计算机A必须知道计算机B的MAC地址。
1)首先计算机A检查自己的ARP映射表,若有192.168.1.11的MAC地址,则直接转发;反之在局域网中广播,该数据包包含源地址(A地址)、源MAC(A)、目的地址(B地址),向所有计算机询问计算机B 192.168.1.11的MAC地址,
2)接着计算机B收到广播,进行响应,首先检查数据包中的目的IP是否是自己,若不是,则忽略,若是,则把数据包的源主机的IP地址和MAC地址写入自己的ARP列表中,若存在则覆盖,后将自己的MAC地址写入ARP的响应包中,该数据包包含源地址(B地址)、源MAC(B)、目的IP(A地址)和目的MAC(A),告诉源主机自己是他要找的MAC地址;
3)A收到后,在映射表中添加IP地址到MAC的记录,转发数据
(2)方式
静态、动态
0x02:ARP欺骗
原理:计算机 A 广播后,攻击者C和计算机B都收到广播,攻击者C通过手段截取B的ARP响应,攻击者C伪造IP地址和MAC地址将ARP报文响应给 A,攻击者C只要不断的持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。可能会导致网络阻塞。
ARP断网攻击是基于ARP协议的缺陷。就是以我的网卡代替网关,目标的主机上网需要经过网关,但现在我欺骗了目标主机,让他误以为我的网卡是网关,当数据包到达我的网卡之后,全部丢弃,即造成断网。
现象:在主机看来访问外部服务的响应变慢;或者对于服务器而言,上层应用忙于处理这种异常而无法响应外来请求
ARP断网攻击
kali IP: 192.168.1.116
winxp IP: 192.168.1.117
扫描本网段主机:nmap -sP 网段 或者 fping -g 192.168.1.1/24 alive表示主机存在
结果:
ARP欺骗
(1)欺骗
arpspoof -i eth0 -t 192.168.1.117 192.168.1.1 命令之后,靶机的arp缓存表变了,上面是欺骗之前,下面是欺骗之后变为kali的MAC地址,达到欺骗的目的
首先,我们要使用的工具还是ARPSpoof,因为我们此次攻击方式是欺骗,同时,我们还是用Eteercap去嗅探目标靶子的流量。
但是,首先要开始IP转发功能,linux因为系统安全考虑,是不支持IP转发的,其配置文件写在/proc/sys/net/ipv4的ip_forward中。默认为0,接下来修改为1。
Linux中 echo命令的使用:
echo是打印变量的值或者给定的字符串,
比如,输入echo hello或者echo "hello"都是在控制台打印出hello单词
但是我们需要把打印出来的字符串记录到文本文件中,就需要>和>>命令
touch a.txt 新建一个文本文件a.txt
echo hello > a.txt
则a.txt中会记录下hello,但是如果再次执行echo hello > a.txt。则会覆盖之前的hello,
怎样追加呢?需要>>命令
echo world >> a.txt 则a.txt中会记录的是hello word,但是hello和word不是写在一行的,
而是每个单词占用一行的。
再比如 echo $HOME 控制台则会打印出当前用户的根路径/home/picc4
(2)监听
依然使用arpspoof,具体参数及操作参考上面ARP攻击的部分,在完成ARP攻击操作后,新建一个终端窗口或者标签页使用ettercap嗅探。
靶机ping www.baidu.com 的时候 出现了这个
获取靶机上网,网页的部分图片,如果靶机此时在浏览相册,更容易造成信息泄露
靶机这边:
IP地址冲突
在同一个局域网中,如果两台计算机同时使用了相同的IP地址,或者其中一台计算机已经通过DHCP获得IP地址了,同时其他计算机手动分配了与此相同的IP地址。其中一台计算机无法正常上网。IP地址冲突也是ARP攻击的一部分,这种攻击可以在局域网中产生大量的ARP通信,造成局域网闭塞。黑客只要不断地发出伪造的ARP响应数据,就能更改目标计算机ARP缓存中的IP/MAC地址信息,造成目标计算机不断显示IP地址冲突,无法正常上网。
0x03:总结
ARP欺骗的防范
1.主机级被动检测
当系统接收到来自局域网上的ARP请求时,系统检查该请求发送端的IP地址是否与自己的IP地址相同。如果相同,则说明该网络上另有一台机器与自己具有相同的IP地址。
2.主机级主动检测
主机定期向所在局域网发送查询自己IP地址的ARP请求报文。如果能够收到另一ARP响应报文,则说明该网络上另
有一台机器与自己具有相同的IP地址。
3.服务器级检测
当服务器收到ARP响应时,为了证实它的真实性,根据反向地址解析协议(RARP)就用从响应报文中给出的 地 MAC
址再生成一个RARP请求,它询问这样一个问题:“如果你是这个MAC地址的拥有者,请回答你的IP地址”。这样就会查询到这个MAC地址对应的IP地址,比较这两个IP地址,如果不同,则说明对方伪造了ARP响应报文。
4.网络级检测
配置主机定期向中心管理主机报告其ARP缓存的内容。这样中心管理主机上的程序就会查找出两台主机报告信息的不一致,以及同一台主机前后报告内容的变化。这些情况反映了潜在的安全问题。或者利用网络嗅探工具连续监测网络内主机硬件地址与IP地址对应关系的变化。
从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。
ARP欺骗攻击的后果,大多数情况下会造成大面积掉线;如果是被中间人攻击,截取Internet与这个目标主机的之间的全部通信,则会导致信息泄露,在主机看来访问外部服务的响应变慢;或者对于服务器而言,上层应用忙于处理这种异常而无法响应外来请求。
5.其他
在主机绑定网关MAC与IP地址为静态(默认为动态),命令:arp -s 网关IP 网关MAC;
在网关绑定主机MAC与IP地址;
使用ARP防火墙
拓展
kali arping 命令的使用
命令详解:https://www.cnblogs.com/nul1/p/8732761.html
演示:https://www.ixigua.com/i6775090840332141070/
arping干嘛用的?
arping主要干的活就是查看ip的MAC地址及IP占用的问题。
参数
-0:指定源地址为0.0.0.0,这个一般是在我们刚刚安装好系统,电脑还没配置好IP的时候
-a:Audible ping.这个当有reply回来的时候,你的电脑有喇叭的话,就会滴滴的叫
-A:Only count addresses matching requested address
-b:类似-0,指定源broadcast为255.255.255.255
-B:指定这个就相当于 arping 255.255.255.255
-c count:发送指定数量的arp包后,即停止退出
-d:这个比较重要,当局域网有IP占用的时候,可以指定这个参数,当有相同的IP的不同MAC地址reply的时候,arping会退出,退出码为1
-D:这个检测是否丢包的,当丢包的时候打印感叹号,正常的时候打印逗号-e:和-a相反,当没有reply的时候,会滴滴滴
-p:打开混杂模式,当前用户对mac无权限时,可以加上这个选
-r:输出的时候只打印MAC,写脚本的时候用得到,不用自己对结果awk了
-R:输出的时候只打印IP,和上面一样
-s MAC:指定源MAC地址
-S IP:指定源IP,设置了源IP,如果目标主机没有到源IP的route,则有可能收不到answer
-t MAC:指定目的MAC
-T IP:指定目的IP,
-i interface:指定发送arp包的设备。不指定的话,默认为系统的第一块网卡
-q:表示不打印输出,写脚本不想打印输出的时候,应该用的到
-u:没啥大用,结果显示的时候,加这个参数和不加,index的显示形式不同
-v:打印详细的输出,默认打印的好像就是verbose
-w deadline:指定两个ping直接的时间间隔,单位为毫秒,默认为1秒
用法
讲了这么多,感觉大多数的参数都用不到吧。记住常见用法就OK了
用法1:查看某个IP的MAC地址
1
|
arping 192.168.131.155 |
用法2:查看某个IP的MAC地址,并指定count数量
1
|
arping -c 1 192.168.131.155 |
用法3:当有多块网卡的时候,指定特定的设备来发送请求包
1
|
arping -i eth1 -c 1 192.168.131.155 |
用法4:查看某个IP是否被不同的MAC占用
1
|
arping -d 192.168.131.155 |
用法5:查看某个MAC地址的IP,要在同一子网才查得到
1
|
arping -c 1 52:54:00:a1:31:89 |
用法6:确定MAC和IP的对应,确定指定的网卡绑定了指定的IP
1
|
arping -c 1 -T 192.168.131.156 00:13:72:f9:ca:60 |
用法7:确定IP和MAC对应,确定指定IP绑在了指定的网卡上
arping -c 1 -t 00:13:72:f9:ca:60 192.168.131.156
用法8:有时候,本地查不到某主机,可以通过让网关或别的机器去查。以下几种形式测了下都可以
arping -c 1 -S 10.240.160.1 -s 88:5a:92:12:c1:c1 10.240.162.115
arping -c 1 -S 10.240.160.1 10.240.162.115
arping -c 1 -s 88:5a:92:12:c1:c1 10.240.162.115