现在已经是深夜了。。我刚遭遇了4年来做技术主管第一次遭遇的ARP攻击。。。网吧至少损失700块的生意。。礼拜六,客人一跑而光。。。。。。花了两个小时去研究出这个。。完全自动获取自动绑定,不需要自己添加或修改什么。原本从网上获得,但发现只能绑到本机的,绑不到网关IP和MAC,于是小改进了一下。。。已经完全通过,前提是路由必须能被内网机器PING通。。。。希望更多人能分享。。。。。
原版:------------------------------------
@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
由于每次要ping通网关才能连,一但中了ARP就始终绑定错误的MAC,所以我去掉了中间读取与网关arp缓存,直接填写自己的网关IP和MAC,你可以修改成自己的!
jmj修正版:
----------------------------
@echo off
:::::::::::::清除所有的ARP缓存
arp -d:::::::::::::读取本地连接配置
ipconfig /all>ipconfig.txt:::::::::::::读取网关MAC并绑定
arp -s 192.168.0.1 00-0A-EB-28-88-E3:::::::::::::读取本机的 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
exit
