萬盛學電腦網

 萬盛學電腦網 >> 健康知識 >> 網吧防黑之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 沒有多大用處,關於路由上面的,因為大家用的路由不一樣,所以這個就不寫了!
copyright © 萬盛學電腦網 all rights reserved