David.Ko

          Follow my heart!
          posts - 100, comments - 11, trackbacks - 0, articles - 0
             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          利用批處理文件防御ARP攻擊

          Posted on 2007-09-30 09:14 David.Ko 閱讀(253) 評論(0)  編輯  收藏 所屬分類: 安全

          通過偽造IP地址和MAC地址實現ARP欺騙,能夠在網絡中產生大量的ARP通信量使網絡阻塞,攻擊者只要持續不斷的發出偽造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網絡中斷或中間人攻擊。 本文介紹了四種利用自制批處理文件來防御ARP攻擊的方法。

          一、把下面語句編成BAT處理文件就可以搞定

          @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

          @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

          @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
                      ::::::::::::ING三次內網網關
                      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

          沒有多大用處,關于路由上面的,因為大家用的路由不一樣,所以這個就不寫了

           

          主站蜘蛛池模板: 麻江县| 遂溪县| 神池县| 山阴县| 平邑县| 贡山| 房山区| 固安县| 基隆市| 浪卡子县| 青海省| 久治县| 苍梧县| 伊川县| 时尚| 西昌市| 白山市| 天等县| 宜黄县| 广南县| 仙居县| 万山特区| 松阳县| 锦屏县| 肥乡县| 睢宁县| 长宁县| 八宿县| 吉林省| 远安县| 龙州县| 自贡市| 巴青县| 八宿县| 邮箱| 宜良县| 澄迈县| 慈利县| 吉安县| 嘉兴市| 阿克陶县|