文章来源|MS08067 SRC漏洞实战班课后作业
本文作者:某学员A(SRC漏洞实战班1期学员)
按老师要求尝试完成布置的作业如下:
一、使用WireShark抓包,根据实际数据包,分析ARP报文结构
1.1 ARP概述
ARP协议的全称是Address Resolution Protocol(地址解析协议) ,它是一个通过用于实现从IP地址到MAC地址的映射,即询问目标IP对应的MAC地址的一种协议。ARP协议在IPv4中极其重要。
1.2数据包格式
ARP报文不能穿越路由器,不能被转发到其他广播域。
这里主要关注以下几个特殊字段:
Hardware type:一般为以太网
Protocol Type:ARP协议
Operation Code:判断是arp request报文还是arp reply报文
1.3ARP报文详解
ARP缓存表:查看是否拥有目的mac地址,通过arp -a查看,缓存时间为20分钟。
ARP请求报文
原理图如下:
通过wireshark抓取数据包如下:
通过抓包信息可以看到发起ARP请求的源主机的IP地址是192.168.0.104,源主机的mac地址为00:0c:29:1e:c0:51,发送的报文是arp请求报文。属于广播报文,因为目标mac是全f。目标的IP地址是192.168.0.102,由于目标mac未知,因此用全0进行填充。
ARP响应报文
原理图如下:
通过wireshark抓取的数据包如下:
通过抓包信息可以看到发起ARP响应的源主机的IP地址是192.168.0.102,源主机的mac地址为00:0c:29:17:48:11,发送的报文是arp响应报文。属于单播报文。目标的IP地址是192.168.0.104,目标的mac是00:0c:29:1e:c0:51。
二、使用ettercap完成ARP中间人攻击
2.1攻击环境
受攻击前
受攻击后
2.2攻击原理
win7(192.168.0.101)主机发送数据到哪里都是根据本机arp表和路由表判定的,比如向局域网内或局域网外发送数据,都会通过自己的默认网关转发数据,本地arp表会不定时的刷新ip--mac关系,在本地arp表没有网关192.168.0.1的mac信息时,会发送广播问谁的ip地址是192.168.0.1,这个时候局域网所有主机都会收到这条信息,正常情况下应该是192.168.0.1将mac地址回应给win7并刷新arp表,但是这时候主机kali(192.168.0.100)回应说自己就是192.168.0.1,并将mac返回给win7 并刷新arp表,win7的arp里对应信息为这样 192.168.0.1-------kali(192.168.0.100)的mac,得到了网关的mac后就开始传输真正的数据了,数据包封装上 源(win7)mac 目的为网关mac(实际是kali的mac), 交换机是这样转发:交换机有个CAM表,存放交换机物理端口和mac对应关系,拆解数据包,看该数据包的目的mac是谁,然后根据cam表转发到对应的端口,由于封装的目的mac是kali的mac,所以本来发给网关的数据,现在发给了kali,这就是一个欺骗。kali不仅仅欺骗kali,它还会欺骗网关,说自己就是win7。
2.3攻击流程
1、以root身份打开ettercap -G
2、设置需要嗅探的网卡
这里我们选择eth0网卡
3、扫描并列出当前网段内存活的主机
4、添加需要进行arp攻击的目标
这里我们将网关添加到Target1,将需要欺骗的主机添加到Target2
也可以查看我们添加目标的情况。
5、开启ARP攻击
点击ARP poisoning即可进行ARP攻击
选择需要攻击的模式,这里我们选择双向欺骗。
到这里arp攻击完成,返回win7查看攻击情况。
查看arp表可以发现,kali的mac地址和网关的mac地址相同,说明至此攻击完成。
我们可以通过ettercap查看嗅探受害者访问流量。
6、配合dns劫持进行攻击
配置etter.dns文件,添加一条A记录
文件位置:/etc/ettercap/etter.dns
添加该记录是为了让受到DNS劫持的主机访问百度时,实际上访问的是本机(kali)所搭建的恶意网站。
接下来我们通过kali克隆一个百度的页面。
访问kali IP地址时,可以看到返回的确实是百度的页面
然后进行dns劫持。
勾选上dns_spoof,即可劫持受害主机。
这时候在受害者机器上访问百度,可以看到收到的是kali的回复,说明dns劫持成功。
在网页上访问也可以看到成功访问到了百度的页面
提交以后,可以看到内容成功返回到了kali里边,至此dns arp攻击完成。
在真实环境下,我们可以制作一个用户比较经常访问的钓鱼网站来获取目标的账号密码。