arp双项绑定及批处理
ARP双向绑定简单举例解释
ARP欺骗的出现,才让大家对ARP这个词有了认识
但什么是ARP呢?
ARP土一点的说法就叫地址转换协议,就是把IP转成MAC的过程,实际上机子在通讯都是通过MAC在通讯的
MAC:网卡物理地址
假设有案例如下,某个公司,有三台电脑
(分别称为
A机192。168。1。2 MAC 00-01-01-01-01-02
B机192。168。1。3 MAC 00-01-01-01-01-03
C机192。168。1。4 MAC 00-01-01-01-01-04)
一台代理服务器(网关):
(以下简称代服,IP假设如192.168.1.1 MAC假设如下00-01-01-01-01-01)
于某天发生频繁无法上网的问题,开始做出如下检测,安装网络执法官(内网IP,MAC监控防护,千万不要用来做坏事,会有报应的)发现有两条记录
00-01-01-01-01-01 192。168。1。1
00-01-01-01-01-03 192。168。1。1
看到以上两条记录,大家能联想到什么吗?如果能理解这两条记录并知道其原由,那么你已具备检测ARP攻击的发源机子了!
这两条记录意思是,第一条记录为真正的代服的IP和MAC的记录,而第二条呢?为什么B机的MAC却套在了路由的网关IP上来了呢,这就是ARP欺骗产生的典型的现象,有这样一个或多个的相同现象就毫无疑问地说,你中了ARP了!
ARP的出现大家需要的不仅是认识还要知道防范的方法,在下知识浅薄,仅仅只会用一种方法来防ARP------ARP双向绑定:
双向,这个词需要大家去小小理解一下,双向,两个方向或两个对方?
代服也就是网关为其中一方,客户机和各种服务器为另外一方,这样两方的说法大家能理解吗?
就比如(代服)住在一楼,(客户机)住在三楼,代服在去找客户机只要记得他在三楼就懂得怎么走了,而客户机要找代服只要知道他在一楼也是同样能找到
这样的地址记法就等同于MAC地址绑定
差不多就是那意思,那如何实现呢?
以上ARP小解,以下开始进行ARP防范:
1、在代理服务器上做一个批处理,或用一些专用的ARP扫描绑定工具
@echo off
arp -d
arp -s 192.168.1.2 00-01-01-01-01-02
arp -s 192.168.1.3 00-01-01-01-01-03
arp -s 192.168.1.4 00-01-01-01-01-04
exit
另存为BAT文件,在代服上运行即可
2、在客户机的启动里做一个批处理BAT文件,内容如下:
@echo off
arp -d
arp -s 192.168.1.1 00-01-01-01-01-01
exit
有使用万象网管的朋友,可以在服务端做这个批文件,进万象服务端设置“会员上机执行以下程序”指向这个绑定网关的批处理,这样客户机便会开机就绑定网关了!
这样ARP双向绑定完成了!
用路由的朋友做法也差不多,在路由绑定所有客户机的IP和MAC,客户机绑定路由的IP和MAC即可~~
二、
1.
@echo off
::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 本机以及网关IP和MAC地址绑定批处理程序 ::
::::::::::::::::::::::::::::::::::::::::::::::::::::
arp -d
:::::::::读取本机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 set GateIP=%%G
:::::::::获取网关MAC地址
ping 192.168.0.1 -n 1
:::::::::读取网关Mac地址
if exist GateMac.txt del GateMac.txt
arp -a %GateIP% >GateMac.txt
for /f "skip=3 tokens=2" %%H in (GateMac.txt) do set GateMac=%%H
:::::::::绑定网关Mac和IP
arp -s %GateIP% %GateMac%
del GateIP.txt
del GateMac.txt
del IPAddr.txt
del ipconfig.txt
del phyaddr.txt
exit
2.
@echo OFF
if %~n0==arp exit
if %~n0==Arp exit
if %~n0==ARP exit
echo 正在获取本机信息.....
:IParp -d
FOR /f "skip=13 tokens=15 usebackq " %%i in (`ipconfig /all`) do Set IP=%%i && GOTO MAC
:MAC
echo IP:%IP%
FOR /f "skip=13 tokens=12 usebackq " %%i in (`ipconfig /all`) do Set MAC=%%i && GOTO GateIP
:GateIP
echo MAC:%MAC%
arp -s %IP% %MAC%
Set GateIP= IP地址Set GateMAC=**
arp -s %GateIP% %GateMAC%
echo 操作完成!!!
exit
3.
@echo off
arp.exe -d
arp.exe -s 192.168.1.1 00-22-aa-3e-93-2a
@echo on
arp命令详解
显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。
ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr] [-v]
-a 通过询问当前协议数据,显示当前 ARP 项。
如果指定 inet_addr,则只显示指定计算机
的 IP 地址和物理地址。如果不止一个网络
接口使用 ARP,则显示每个 ARP 表的项。
-g 与 -a 相同。
-v 在详细模式下显示当前 ARP 项。所有无效项
和环回接口上的项都将显示。
inet_addr 指定 Internet 地址。
-N if_addr 显示 if_addr 指定的网络接口的 ARP 项。
-d 删除 inet_addr 指定的主机。inet_addr 可
以是通配符 *,以删除所有主机。
-s 添加主机并且将 Internet 地址 inet_addr
与物理地址 eth_addr 相关联。物理地址是用
连字符分隔的 6 个十六进制字节。该项是永久的。
eth_addr 指定物理地址。
if_addr 如果存在,此项指定地址转换表应修改的接口
的 Internet 地址。如果不存在,则使用第一
个适用的接口。
示例:
> arp -s 157.55.85.212 00-aa-00-62-c6-09.... 添加静态项。
> arp -a .... 显示 ARP 表。
来自http://hi.baidu.com/shihaolijie/blog/item/6c11e9170c050f0bc93d6db1.html