一、内容
1.网络嗅探:Wireshark 监听网络流量,抓包。
2.ARP欺骗:科来数据包发生器,构造欺骗报文。
3.防范: 防范arp欺骗、非法DHCP防范。
二、使用的工具和平台
Wireshark:用来抓包,
科来数据包生成器、科来数据包播放器:构造欺骗的ARP欺骗报文
平台:使用Win10作为攻击机,靶机时虚拟机中的Win7
三、ARP欺骗原理
同一局域网里面的两台主机之间相互通信是通过Mac地址寻址的,而如果两台主机若不是处于同一子网里面,则在通信的时候会相互将数据发送给各自的路由器网关,通过网关的IP寻址以达到通信目的。但是网关和自己局域网里面的主机通信的时候还是依靠Mac地址寻址的,所以如果我们要把自己攻击机伪造成网关达到欺骗作用,就应该把目标主机上的网关Mac地址缓存改为攻击机的Mac地址(这就可以通过伪造ARP报文来实现)。
正常情况下数据包的发送:
如图:在正常的情况下,处于两个不同子网之间通信,会有A——>网关——>网卡——>外网。通过网关和网卡连通两个子网。而现在所要做的就是将这一步改为A——>B——>网卡——>外网,将B伪造成网关,这样一来所有从A到外网的数据就都会通过B了,从而可以分析出A的上网情况,甚至是一些明文密码。
伪造的情况下:
同时,伪造网关后,还需要将数据转发出去,否则会导致A上不了网而被发现网关是伪造的。
四、具体实现步骤
1.首先通过命令行和Wireshark知道攻击机和靶机的MAC地址和IP地址。
使用ipconfig/all查看
由此可知,攻击机 IP:192.168.0.103 MAC:18-DB-F2-2C-FC-EC
靶机 IP:192.168.0.113 MAC:00-0C-29-EB-E5-8E
网关 IP:192.168.0.1 MAC:04-95-e6-57-a6-c8
使用arp -a查看网关信息,注意这是的网关为192.168.0.1
这里信息也可以使用WireShark抓包来获取
现在,基本的地址信息有了,下面开始构造ARP欺骗报文
在科来数据包生成器中构造ARP报文,以太网中的目标地址为广播,源地址是攻击机的MAC地址,
ARP地址解析协议中,源MAC地址为攻击机,源IP为网关,目标MAC和IP为靶机地址
数据包构造完成后,使用科来数据包播放器发送,网卡选择有效的,使用循环发送(现在的操作系统为了防止ARP欺骗,一般会再次确定网关,所以需要循环发送)
这里使用靶机上网,在WireShark中可以抓取到相应的包
在网关欺骗成功之后,还需要将靶机的信息进行转发,否则会导致靶机无法上网
具体设置如下:
1.在命令行中输入“Regedit”
2.查找一下路径:
“HKEY_LOCAL_MACHINE” > SYSTEM > CurrentControlSet >Services> Tcpip >Parameters > IP Enable Router
右键点击修改,将0改为1;
3.在运行中输入
打开后启用Routing and Remote Access Service服务即可
在伪造数据包的时候更深刻了解到了ARP报文的结构,在者就是认识到TCP/IP协议是相当不安全的,ARP报文可以修改达到中间人劫持获取用户和密码的目地,同样通过DNS欺骗可以制造钓鱼网站窃取密码,还可以通过修改UDP报文伪造对话,这一切的不安全因素都是因为在传输过程中任何人都可以截取、而且没有认证机制,以至于任何人可以随心所欲的修改它。所以需要防范ARP欺骗。
ARP欺骗防范:
1)设计静态ARP表
在主机上设置静态的MAC->IP对应表,不要让主机刷新设定好的转换表。
在PC上绑定路由器的IP和MAC地址,路由器上绑定用户主机的IP和MAC地址
批处理文件实现:
@echo off
:::::::::读取本机Mac地址
if exist ipconfig.txt del ipconfig.txt
ipconfig /all >ipconfig.txt
if exist phyaddr.txt del phyaddr.txt
find "Physical Address" ipconfig.txt >phyaddr.txt
for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set Mac=%%M
:::::::::读取本机ip地址
if exist IPAddr.txt del IPaddr.txt
find "IP Address" ipconfig.txt >IPAddr.txt
for /f "skip=2 tokens=15" %%I in (IPAddr.txt) do set IP=%%I
:::::::::绑定本机IP地址和MAC地址
arp -s %IP% %Mac%
:::::::::读取网关地址
if exist GateIP.txt del GateIP.txt
find "Default Gateway" ipconfig.txt >GateIP.txt
for /f "skip=2 tokens=13" %%G in (GateIP.txt) do setGateIP=%%G
:::::::::读取网关Mac地址
if exist GateMac.txt del GateMac.txt
arp -a %GateIP% >GateMac.txt
for /f "skip=3 tokens=2" %%H in (GateMac.txt) do setGateMac=%%H
:::::::::绑定网关Mac和IP
arp -s %GateIP% %GateMac%
del GateIP.TXT /Q
DEL GateMac.txt /q
del IPAddr.txt /q
del ipconfig.txt /q
del phyaddr.txt /q
exit
保存为IP-MAC.bat 开机运行就OK
2)安装ARP防护软件
这是一次关于ARP欺骗的实现过程。
PS:勿忘初心,持之以恒。