当前位置:文档之家› ARP防御之双绑批处理+++集合

ARP防御之双绑批处理+++集合

ARP防御之双绑批处理+++集合
一:此批处理有缺陷,有时不能实现真正意义的双绑!

@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 set GateIP=%%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 set GateMac=%%H
::绑定网关Mac和IP
arp -s %GateIP% %GateMac%

arp -s 网关IP 网关MAC

exit

这个批处理要查询本机的ARP 缓存表,看里面是不是有网关的IP和MAC,有则能成功

绑定,但是没有的话就绑不定了!!!不过可以改进一下,达到双绑的目的,比如

加上arp -s 网关IP 网关MAC一行就可以了。。。

二、这个也不能实现真正意义的双绑,只能绑定本机IP和MAC

(多谢中国DOS联盟lxmxn提供)

@echo off
for /f "delims=: tokens=2" %%a in ('ipconfig /all^|find "Physical Address"') do set local_mac=%%a
for /f "delims=: tokens=2" %%a in ('ipconfig /all^|find "IP Address"') do set local_ip=%%a
for /f "delims=: tokens=2" %%a in ('ipconfig /all^|find "Default Gateway"') do set gate_ip=%%a
fo* /* %%* in ('getmac /nh /s %local_ip%') do set gate_mac=%%a
arp -s %local_ip% %local_mac%
arp -s %gate_ip% %gate_mac% (这个地方有问题,改进中……)

经测试,此批处理不能绑定网关IP和MAC,只能绑定本机IP和MAC

三、这个还不是很清楚,我要测试才行的,目前所知也能绑定本机IP和MAC

(多谢中国DOS联盟everest79提供)

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=2 delims=[]=" %%i in ('nbtstat -a %COMPUTERNAME%') do call set local=!local!%%i
for /f "tokens=3" %%i in ('netstat -r^|find " 0.0.0.0"') do set gm=%%i
for /f "tokens=1,2" %%i in ('arp -a %gm%^|find /i /v "inter"') do set gate=%%i %%j
arp -s %gate%
arp -s %local%

arp -s 网关IP 网关MAC
这个批处理可以绑定网关IP和MAC,但是还是有缺陷,要依赖于本机上存在的ARP缓存!
改进方法为在最后加一个arp -s 网关IP和MAC!

四、这个是一个兄弟的博客上找到的,原理和第一

个一样,只是改进了一点点!

这个P通过ping网关三次得到了网关的MAC其实以上的批都可以通过这个来搞定网关的IP和MAC,
但是如果开机的时候正在发生ARP欺骗的话 这样你绑的IP和MAC就是错的,不能上网了。。

不过这种情况很少,发过来试一下先吧!

@echo off

:::::::::::::清除所有的ARP缓存
arp -d

:::::::::::::读取本地连接配置
ipconfig /all>ipconfig.txt

:::::::::::::读取内网网关的IP
for /f "tokens=13" %%I in ('find "Default Gateway" ipconfig.txt') do set GatewayIP=%%I

:::::::::::::PING三次内网网关
ping %GatewayIP% -n 3

:::::::::::::读取与网关arp缓存
arp -a|find "%GatewayIP%">arp.txt

:::::::::::::读取网关MAC并绑定
for /f "tokens=1,2" %%I in ('find "%GatewayIP%" arp.txt') do if %%I==%GatewayIP% arp -s %%I %%J

:::::::::::::读取本机的 IP+MAC
for /f "tokens=15" %%i in ('find "IP Address" ipconfig.txt') do set ip=%%i
for /f "tokens=12" %%i in ('find "Physical Address" ipconfig.txt') do set mac=%%i

:::::::::::::绑定本机的 IP+MAC
arp -s %ip% %mac%

:::::::::::::删除所有的临时文件
del ipconfig.txt
del arp.txt
exit

以上P可以配合路由上对客户机的IP和MAC进行绑定实现完全防ARP,只是单绑下面机和网关IP及MAC
没有多大用处,关于路由上面的,因为大家用的路由不一样,所以这个就不写了!



00000000000000000000000

一、ARP双向绑定简单举例解释附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

用记事本,复制以下内容,另存为bat文件,名字随便起:

@echo off
ipconfig /all >ipconfig.txt
find "Physical Address" ipconfig.txt >UserMac.txt
for /f "skip=2 tokens=12" %%M in (UserMac.txt) do set Mac=%%M
find "IP Address" ipconfig.txt >UserIP.txt
for /f "skip=2 tokens=15" %%N in (UserIP.txt) do set ip=%%N
arp -d
arp -s %IP% %MAC%
del ipconfig.txt UserMac.txt UserIP.txt
@cls
@echo.
@echo IP、MAC地址已绑定,请按任意键结束...
pause >nul
exit

相关主题
文本预览
相关文档 最新文档