实现ARP欺骗

我与影子孤独终老i 提交于 2019-12-03 20:39:19

一、内容

  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欺骗,更重要的是需要了解ARP协议的具体实现和如何防范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:勿忘初心,持之以恒。

 

 

 

 

 

  

  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!