网安实验4—ARP欺骗
实验4:ARP欺骗
1. 实验内容
- 运行WinArpAttacker或Ettercap,通过WireShark等抓包工具,捕获ARP欺骗攻击的数据包,分析ARP攻击的原理。
- 基于Winpcap(或其它网络开发包Libpcap/Jpcap/Scapy等)编写程序,对指定的目标IP地址进行ARP欺骗攻击。
2. 实验要求
- 明确提出自己的方案设计。
- 实验结果需要截图证明。
- 列出核心代码,并给出注释。
3. 实验过程
步骤1:环境搭建
本次实验用到攻击主机Kali和被攻击主机Win7两台虚拟机,并在VMware虚拟机->设置->网络配适器
中将网络连接改为NAT模式。
另外,在编辑->虚拟网络编辑器->更改设置->NAT设置
中对NAT网络进行设置。
虚拟机使用NAT模式联网后,将会用虚拟网关与各虚拟机和物理机相链接组成一个虚拟局域网,在物理机上对应为VMware Network Adapter VMnet8
的网络配适器信息。查看网卡信息。
物理机
Kali
Win7
步骤2:Ettercap的使用
在Kali应用程序中搜索ettercap
,并点击打开运行,需要输入密码获取权限。
选择网卡,确认进入应用界面。
之后点击Scan for hosts
扫描主机,再点击Hosts List
列出扫描结果。
可以看到192.168.223.1/2/134
分别对应对应物理机、网关、Win7的IP地址和MAC地址,另外的主机对应未涉及到实验的其他虚拟机。
arp -a
查看Win7的ARP缓存表。
分别将网关和Win7虚拟机添加为Target1和Target2
选择ARP poisoning
。
再回到Win7中查看ARP缓存表,可以发现192.168.223.2
和192.168.223.134
对应的MAC地址被替换成00-0c-29-2c-1a-1c
,其为Kali的MAC地址。
在Kali中打开新命令行,输入wireshark
运行并抓包,在过滤器中输入arp检索出所有ARP包。
可以看到第177行,Kali向网关询问192.168.223.134
Win7的MAC地址,因为之前的攻击更改了网关的ARP缓存表,所以网关将Kali的MAC地址当做Win7的MAC地址进行发送。第178行,Kali向Win7询问192.168.223.2
网关的MAC地址,同理返回的为攻击更改后的Kali的MAC地址,由此实现了一次中间人攻击。
当之后进行TCP/IP包文发送时其中的MAC地址发生错误,从而将不应发送给攻击者的包发送了出去。
步骤3:arpspoof攻击
1 | arpspoof -i eth0 -t 192.168.223.2 192.168.223.130 |
- 需要在root权限下运行,或者在最前面加上
sudo
。 -i
:指定网卡。-t
:后面参数可为IP或者域名,第一个参数是要欺骗的主机(网关),第二个参数是要伪装成的主机。
命令执行后到Win7主机中尝试ping外网,发现找不到主机。
步骤4:Scapy攻击
安装Scapy
1 | pip install scapy |
在Win7中尝试ping通外网,并查看ARP缓存表。
创建python脚本文件,写入以下代码后运行。
1 | ding:utf-8 |
在Win7中尝试ping外网,可以看到攻击成功,显示找不到主机。不过,有时候可能会ping成功,其原因是网关也在不定时的发送ARP包,而此时恰好将Kali发出的ARP包覆盖,此时则能正常ping通。
Kali中利用wireshark进行抓包查看。
可以看到Kali对Win7不断发送广播询问,并在ARP包中标识自己为网关IP,因此当Win7要去网关时,其ARP缓存表中记录的响应MAC地址为Kali的地址。