ARP欺騙排查與防護(hù):從ARP協(xié)議原理到Anti ARP Sniffer實戰(zhàn))
簡介面向網(wǎng)絡(luò)安全運維與局域網(wǎng)管理場景這份工具包提供 Anti ARP Sniffer v3.5 主程序及配套文檔可實時監(jiān)控ARP請求/響應(yīng)、掃描LAN內(nèi)設(shè)備MAC地址幫助檢測和抵御ARP欺騙、中間人攻擊適合網(wǎng)絡(luò)管理員、安全愛好者及PC用戶自查網(wǎng)絡(luò)環(huán)境。壓縮包僅490KB共4個文件包含exe主程序、ini配置文件、htm幫助頁與txt說明文檔結(jié)構(gòu)精簡、開箱即用目前已有723人學(xué)習(xí)下載輕量體積與實用功能是其鮮明特點。借助該工具讀者能獲得可執(zhí)行程序、配置模板和圖文操作說明掌握ARP緩存監(jiān)控、靜態(tài)ARP綁定、異常告警日志分析等防護(hù)手段htm與txt文檔還講解了ARP協(xié)議背景及嗅探器工作原理便于零基礎(chǔ)用戶理解威脅機(jī)制并完成基礎(chǔ)安全加固。整體而言這套資源提供了防ARP欺騙、MAC掃描的完整入門方案既適合日常安全自查也可作為理解ARP協(xié)議與網(wǎng)絡(luò)嗅探原理的實操示例。1. 網(wǎng)線沒斷卻“斷網(wǎng)”時Anti ARP Sniffer v3.5 在局域網(wǎng)里到底查什么辦公網(wǎng)里有一種很典型的故障電腦右下角網(wǎng)絡(luò)圖標(biāo)正常QQ能登錄但網(wǎng)頁打開緩慢、內(nèi)網(wǎng)服務(wù)器時通時斷甚至整個部門互相 ping 不通。此時排查順序很有講究——先看廣播報文量再查 ARP 映射關(guān)系而不是一上來就重啟防火墻。多數(shù)情況下肇事者是一臺被植入惡意程序或被人手動改了緩存的終端它不停發(fā)送偽造 ARP 應(yīng)答把全網(wǎng)流量引向錯誤網(wǎng)卡。Anti ARP Sniffer v3.5 這個名字容易被誤讀它的“Anti”不是讓用戶防備嗅探器而是說程序自帶防 ARP 欺騙能力v3.5 這一代工具實際包含三塊功能——網(wǎng)絡(luò)嗅探、局域網(wǎng)掃描、以 MAC 地址為主鍵的主機(jī)清單整理。網(wǎng)絡(luò)運維排查二層故障、安全基線自查、嵌入式設(shè)備聯(lián)調(diào)都會用到它。老工程師用這類工具多數(shù)不是為了學(xué)協(xié)議而是想在一臺 Windows 電腦上完成抓包、掃描、綁定驗證的閉環(huán)。前提是先把 ARP 協(xié)議的行為和工具的工作模式對齊否則參數(shù)一錯就會漏報、誤報。2. 先從ARP協(xié)議看局域網(wǎng)掃描的原理arp -a、廣播請求與詳細(xì)包結(jié)構(gòu)2.1 一個“詳細(xì)”的ARP包誰在說話、目標(biāo)是誰、為什么必然能抓ARP 報文封裝在以太網(wǎng)幀里ethertype 固定為 0x0806。從抓包工具里看到的 ARP 請求包外層目的 MAC 是 FF:FF:FF:FF:FF:FF表示當(dāng)前廣播域內(nèi)所有主機(jī)都收得到。內(nèi)核處理 ARP 請求時會先檢查發(fā)送方的 IP 是否和自己沖突再檢查目標(biāo) IP 是不是自己只有當(dāng)目標(biāo) IP 匹配時才回復(fù)單播 ARP 應(yīng)答。值得注意的關(guān)鍵字段不在頭部而在載荷中ARP 請求里同時攜帶 Sender MAC、Sender IP、Target MAC、Target IP。就算某臺主機(jī)只是單純想查詢網(wǎng)關(guān)的 MAC它自己的 MAC 和 IP 也已經(jīng)隨請求廣播出去了。這帶來一個反常結(jié)論被動監(jiān)聽者不需要發(fā)任何數(shù)據(jù)包只要網(wǎng)卡處于混雜模式就能在交換環(huán)境或鏡像端口上持續(xù)收集“當(dāng)前在線主機(jī)的 MAC 與 IP 映射”。Windows 上的arp -a之所以能被大量掃描工具利用正是因為系統(tǒng)在收到或發(fā)出 ARP 報文后會把 Sender IP/MAC 寫入緩存。這個緩存的動態(tài)條目大約兩分鐘內(nèi)未復(fù)用就會被清理但在此窗口內(nèi)它提供了最近活躍主機(jī)的快照。換句話說arp -a讀到的不是全量資產(chǎn)而是“最近兩分鐘說過話的設(shè)備”理解了這一點就不會在布線環(huán)境里拿著 arp 表當(dāng)一個網(wǎng)段的完整清單了。2.2 主動掃描與被動嗅探兩條拿主機(jī)MAC的不同路徑Anti ARP Sniffer v3.5 的“網(wǎng)絡(luò)嗅探”和“局域網(wǎng)掃描”是兩個獨立工作模式。嗅探模式不上行發(fā)包只接收掃描模式恰好相反靠主動發(fā)包逼目標(biāo)回復(fù)再把回復(fù)中的 MAC 收回來記錄。方式是否發(fā)包目標(biāo)可見條件典型命令/工具干擾與風(fēng)險Ping 掃段是發(fā) ICMP Echo目標(biāo) IP 棧必須回包防火墻可攔截for /L ... ping低但易漏禁 ping 主機(jī)主動 ARP 掃描是發(fā) ARP Request目標(biāo)與本機(jī)在同一廣播域且 ARP 棧正常arping、工具“掃描模式”低目標(biāo)無感被動監(jiān)聽否僅抓包只要目標(biāo)發(fā)出任何幀含廣播、DNS、DHCPWireshark、嗅探器模式零探測風(fēng)險需要鏈路可達(dá)主動 ARP 掃描比 ping 可靠原因有兩層。第一ICMP Echo 是三層協(xié)議很多終端防火墻默認(rèn)丟棄而 ARP Request 發(fā)生在二層只要目標(biāo)需要上網(wǎng)它的協(xié)議棧就必須回應(yīng)否則它自己也無法通信。第二ARP 掃描不依賴目標(biāo)是否開放端口所有廣播域內(nèi)設(shè)備都在同一處理邏輯下不會出現(xiàn)“防火墻放行 HTTP 但禁 ping”這種不一致。被動監(jiān)聽則是采集效率最高的方式但前提是交換機(jī)做了鏡像或者在 HUB 場景下否則只能收到發(fā)往本機(jī)的單播和廣播看不到旁路流量。工具里這幾種模式經(jīng)常組合先被動嗅探十分鐘建立基線再用主動掃描去補(bǔ)全靜默設(shè)備。2.3 交換網(wǎng)絡(luò)里為什么會出“ARP攻擊”以及Anti的含義ARP 協(xié)議設(shè)計上存在一個信任缺陷應(yīng)答包不需要對應(yīng)請求包主機(jī)收到 ARP Reply 時通常直接更新緩存。攻擊者利用這一點發(fā)送免費 ARPGratuitous ARP聲稱“網(wǎng)關(guān) IP 的 MAC 是我”同網(wǎng)段所有主機(jī)就會把網(wǎng)關(guān)映射改到攻擊者網(wǎng)卡上。這就是早期網(wǎng)吧局域網(wǎng)掉線、辦公網(wǎng)流量被截的常見原因。Anti ARP Sniffer 名稱里的“Anti”正是指它監(jiān)聽并識別這類異常能力。程序通過持續(xù)記錄收到的 ARP 報文統(tǒng)計網(wǎng)關(guān) IP 是否對應(yīng)了多個 MAC或者在短時間內(nèi)發(fā)生了異常更替一旦發(fā)現(xiàn)就告警并嘗試向受害者發(fā)送糾正應(yīng)答。這里的難點不在識別而在“糾正”階段如果攻擊者每秒廣播多次偽造應(yīng)答反復(fù)糾正會讓網(wǎng)絡(luò)持續(xù)震蕩反而放大故障。因此 v3.5 這類工具的防護(hù)參數(shù)里“檢測周期”和“響應(yīng)動作”必須配合調(diào)下一章會給出實際取值建議。3. 動手做一遍用 Windows 命令和 v3.5 掃描網(wǎng)段并把MAC整理成表3.1 前置檢查網(wǎng)卡、驅(qū)動、管理員權(quán)限一個不能少運行掃描前先把本機(jī)狀態(tài)確認(rèn)清楚。Windows 下打開管理員命令行執(zhí)行ipconfig /all記錄當(dāng)前活動網(wǎng)卡名稱和 IPv4 地址再用getmac /v查看本機(jī)所有網(wǎng)卡的物理地址。這一步看似多余但很多人就是倒在這里筆記本同時開著 VMware、VirtualBox、Hyper-V 虛擬網(wǎng)卡工具默認(rèn)網(wǎng)卡選錯掃出來的 MAC 全是虛擬設(shè)備真實辦公網(wǎng)一臺也看不見。Anti ARP Sniffer v3.5 這類老牌工具在 Windows 10/11 上常見的問題是抓包驅(qū)動不兼容。多數(shù) v3.x 時代工具依賴 WinPcap而新系統(tǒng)建議安裝 Npcap 并以兼容模式運行安裝后要確認(rèn)工具狀態(tài)欄能列出活動網(wǎng)卡否則混雜模式?jīng)]有真正啟用。所有抓包與發(fā)送原始報文功能都需要管理員權(quán)限右鍵“以管理員身份運行”不是可選項否則打開的是界面實際收不到任何幀。調(diào)試網(wǎng)段時還有一個快速驗證方法把本機(jī)與目標(biāo)設(shè)備接入同一臺傻瓜交換機(jī)命令行執(zhí)行ping網(wǎng)關(guān)一次再運行arp -a查看是否出現(xiàn)網(wǎng)關(guān)條目。能看到條目說明本機(jī) ARP 協(xié)議棧正常工具抓包大概率也沒問題如果這里就空先解決驅(qū)動和網(wǎng)卡選擇問題再往下走。3.2 先用手工命令確認(rèn)網(wǎng)段資產(chǎn)ping arp -a nbtstat先不打開工具用一段批處理手工摸一遍目標(biāo)網(wǎng)段把“哪些 IP 在線”搞清楚。假設(shè)本機(jī)在 192.168.1.0/24 網(wǎng)段打開管理員 CMD 執(zhí)行for /L %i in (1,1,254) do ping -n 1 -w 300 192.168.1.%i | findstr TTL nul echo 192.168.1.%i online echo --- check arp --- arp -a這段命令里for /L %i in (1,1,254)是循環(huán)變量從 1 遞增到 254-n 1表示每個 IP 只發(fā)一個 ping 包-w 300是等待 300 毫秒超過就算超時。findstr TTL nul的作用是判斷回顯中是否包含存活主機(jī)的 TTL 字段一旦匹配就把在線 IP 打印出來。ping 結(jié)束后執(zhí)行arp -a此時緩存里已包含所有回應(yīng)過 ICMP 的主機(jī) MAC。需要注意三個細(xì)節(jié)。第一-w 300對跨集線器網(wǎng)絡(luò)可能太短反應(yīng)慢的舊設(shè)備會被漏掉可以放寬到 800 但整體掃描時間會拉長。第二如果目標(biāo)主機(jī)禁 ping這一步不會出現(xiàn)在列表里但它只要回 ARP 請求就能被后續(xù)掃描發(fā)現(xiàn)。第三arp -a表項只在本機(jī)有效局域網(wǎng)內(nèi)每臺機(jī)器的 ARP 緩存是獨立維護(hù)的不能用 A 機(jī)的緩存去推斷 B 機(jī)視野。拿到在線 IP 列表后可以用nbtstat -A 192.168.1.x查詢某些主機(jī)的 NetBIOS 名稱這正是老工具“主機(jī)名”列的來源。多數(shù)現(xiàn)代終端默認(rèn)關(guān)閉 NetBIOS查不到名屬正常不代表設(shè)備離線。3.3 在 v3.5 圖形界面里跑一次完整掃描掃段、排序、識別廠商手工命令驗證過鏈路之后再打開 Anti ARP Sniffer v3.5 的掃描模塊。絕大多數(shù)同類工具的操作流程是一致的選擇物理網(wǎng)卡輸入起始 IP 與結(jié)束 IP設(shè)定超時時間點擊開始。這里有幾個參數(shù)會直接影響結(jié)果質(zhì)量。超時時間建議設(shè)為 300–500ms而不是默認(rèn)的 1000ms。理由很實際同廣播域內(nèi) ARP 響應(yīng)是亞毫秒級的300ms 足夠覆蓋老舊網(wǎng)卡設(shè)太長會讓掃描在設(shè)備多時變得極慢設(shè)太短會漏掉休眠設(shè)備。并發(fā)掃描線程數(shù)如果可調(diào)辦公網(wǎng)建議 50 以內(nèi)太高的并發(fā)會在一瞬間打爆交換機(jī)端口緩存造成 ARP 丟包。掃描結(jié)束后結(jié)果列表通常包含 IP、MAC、廠商、主機(jī)名。MAC 前 3 字節(jié)是 OUI對應(yīng)網(wǎng)卡廠商工具內(nèi)置 OUI 數(shù)據(jù)庫年份較早新設(shè)備顯示 unknown 很正常拿到前 3 字節(jié)去查在線 IEEE 數(shù)據(jù)庫即可。整理資產(chǎn)表時建議把 MAC 統(tǒng)一為小寫并用冒號分隔后續(xù)與防火墻、DHCP 預(yù)留表對比時格式一致能少很多無謂的返工。3.4 查一臺設(shè)備的上下線時間讓嗅探器自己記錄時間線arp -a只能告訴你“當(dāng)前誰在”不能回答“這臺設(shè)備什么時候上線的、什么時候下線的”而設(shè)備審計里這兩項恰恰是高頻問題。常見做法是掛上 Anti ARP Sniffer 的嗅探模式持續(xù)抓取一段時間程序會按時間記錄每個 MAC 首次出現(xiàn)和最后活躍的時間戳。原理不復(fù)雜任何設(shè)備只要上線通信總會發(fā)出 ARP 請求、DNS 查詢或其他廣播幀只要被監(jiān)聽到首次出現(xiàn)時間就是上線時間的近似值。對于極靜默設(shè)備比如只在上報數(shù)據(jù)時才開機(jī)的傳感器這個方法可能抓不到包需要結(jié)合交換機(jī)側(cè)信息。在三層交換機(jī)上執(zhí)行display arp能看到 IP 與 MAC 映射但不能直接看到“上下線時刻”要精確定位應(yīng)看 DHCP 地址分配日志或交換機(jī)接口 up/down 日志。V3.5 的嗅探時間線適合做“相對判斷”監(jiān)控三天對比同一 MAC 的出現(xiàn)規(guī)律即可判斷它是常駐設(shè)備還是只在維護(hù)窗口現(xiàn)身這一步是排查非法接入設(shè)備最有效的手段。4. 不只會抓還要會防靜態(tài)ARP綁定、防護(hù)參數(shù)與交換機(jī)聯(lián)動4.1 把關(guān)鍵主機(jī)的MAC綁死netsh批量靜態(tài)ARPAnti ARP Sniffer 的防護(hù)功能里最直接的是“通信防護(hù)”模式指定網(wǎng)關(guān) IP 和網(wǎng)關(guān) MAC程序持續(xù)監(jiān)聽發(fā)現(xiàn)網(wǎng)關(guān) MAC 被偽造就干預(yù)。但在工具生效前Windows 本身也可以用靜態(tài) ARP 綁定點位加固。命令行方式如下netsh interface ipv4 show neighbors netsh interface ipv4 set neighbors WLAN 192.168.1.1 00-11-22-33-44-55 netsh interface ipv4 delete neighbors WLAN 192.168.1.1show neighbors用于查看當(dāng)前所有鄰居緩存set neighbors中WLAN必須是本機(jī)網(wǎng)卡的真實接口名IP 與 MAC 之間存在空格分隔MAC 使用中劃線格式。綁定后該條目在本機(jī)優(yōu)先于動態(tài) ARP即使局域網(wǎng)內(nèi)有偽造應(yīng)答本機(jī)依然把流量發(fā)送到真實網(wǎng)關(guān)。撤銷綁定時用delete neighbors注意命令在管理員權(quán)限下執(zhí)行否則會報“拒絕訪問”。靜態(tài)綁定不適用于全員終端辦公網(wǎng) IP 由 DHCP 動態(tài)分配終端 IP 一變舊的靜態(tài)條目立刻失效綁定反而引發(fā)斷網(wǎng)。合理范圍是網(wǎng)關(guān)、域控、文件服務(wù)器、打印機(jī)這幾類固定地址設(shè)備。每次維護(hù)后跑一遍第 3 章的手工掃描把關(guān)鍵設(shè)備的 MAC 對一次賬單再決定是否需要補(bǔ)綁。4.2 v3.5防護(hù)參數(shù)的推薦取值與副作用工具防護(hù)模塊的常見參數(shù)包括網(wǎng)關(guān) IP、網(wǎng)關(guān) MAC、檢測周期、白名單列表、告警后動作。下表是一份可在大多數(shù)辦公網(wǎng)直接套用的建議值但不區(qū)分現(xiàn)場網(wǎng)絡(luò)規(guī)模直接照抄是不可取的。參數(shù)作用建議值副作用與注意網(wǎng)關(guān) IP要保護(hù)的設(shè)備地址與真實網(wǎng)關(guān)一致填錯導(dǎo)致對所有異常不告警網(wǎng)關(guān) MAC合法網(wǎng)關(guān)的物理地址在網(wǎng)關(guān)設(shè)備上執(zhí)行display arp或arp -a獲取MAC 帶空格會匹配失敗檢測周期每隔多久檢查一次緩存變化10–20 秒太短會在 DHCP 續(xù)租時誤報白名單允許的 MAC 列表包含虛擬機(jī)、多網(wǎng)卡服務(wù)器真實 MAC白名單越寬防護(hù)越弱告警后動作檢測到偽造后如何處理建議先“僅告警”運行一周自動恢復(fù)會在攻擊密集時震蕩檢測周期是最容易誤報的參數(shù)。虛擬化服務(wù)器、多網(wǎng)卡終端、無線路由器橋接都可能讓同一 IP 在一段時間內(nèi)出現(xiàn)多個 MAC。如果周期設(shè)到 5 秒以內(nèi)任何增刪綁定的維護(hù)操作都會觸發(fā)告警運維人員很快會疲勞。先評估基線再收緊動作比上來就開啟自動對抗可靠得多。4.3 二層防御不靠單機(jī)配合DHCP snooping與端口安全終端靜態(tài)綁定和工具告警解決的是“單機(jī)自?!狈欠ㄔO(shè)備換一個 IP 繼續(xù)欺騙時依然能影響其他主機(jī)。真正在邊界上兜底的是交換機(jī)側(cè)二層防護(hù)。常見組合是 DHCP Snooping、ARP 檢測與端口安全。以華為 VRP 為例基礎(chǔ)配置如下dhcp snooping enable interface GigabitEthernet0/0/1 port link-type access arp anti-attack check user-bind enable第一行開啟全局 DHCP Snooping交換機(jī)從此開始維護(hù) IP-MAC-端口-VLAN 的綁定表進(jìn)入接口視圖后arp anti-attack check user-bind enable表示只允許發(fā)送方 IP/MAC 與綁定表一致的 ARP 報文通過。Cisco 交換機(jī)上對應(yīng)配置是全局ip arp inspection vlan 1接入端口默認(rèn)視為不可信口。兩條路徑的目標(biāo)一致讓“合法表之外”的 ARP 報文物。這里要說明防護(hù)邊界DHCP Snooping 判定的依據(jù)是 DHCP 報文形成的綁定表如果攻擊者偽造服務(wù)端發(fā)放 DHCP 地址DHCP 仿冒或接入端口是級聯(lián)口單靠 DA 上限仍然存在繞行可能。配合端口安全限制單端口 MAC 數(shù)量能進(jìn)一步壓縮仿冒空間。工具與交換機(jī)聯(lián)動時我一般會把工具告警當(dāng)快速定位手段交換機(jī)上的過濾配置當(dāng)長期防護(hù)基線。5. 驗證掃描結(jié)果的兩三手Wireshark過濾、靜默主機(jī)識別、網(wǎng)關(guān)MAC值守腳本5.1 用Wireshark給掃描結(jié)果做一次抽檢掃描結(jié)果主動可信度并不高因為結(jié)果取決于目標(biāo)當(dāng)時的響應(yīng)狀態(tài)。抽檢方法是打開 Wireshark在過濾器里分別輸入arp、arp.opcode 1、arp.duplicate-address-detected。第一條看全局 ARP 活動第二條只看請求包用于統(tǒng)計廣播域內(nèi)有多少設(shè)備在主動詢問第三條是 Wireshark 的分析功能直接標(biāo)出同一 IP 在短時間內(nèi)被多個 MAC 宣告的數(shù)據(jù)包這就是 ARP 欺騙最直接的特征。如果第三條命中的數(shù)據(jù)對應(yīng)的 MAC恰好不在第 3 章掃描清單里說明工具剛才漏掉了它需要重新掃描。5.2 識別平時不說話的主機(jī)有些設(shè)備打印機(jī)、門禁控制器、攝像頭長時間靜默但被攻擊后可能變成傀儡。被動嗅探模式下按時間窗口統(tǒng)計每個 MAC 的發(fā)包頻次識別那些僅出現(xiàn)一兩次的“影子主機(jī)”。如果該主機(jī)在線時間與業(yè)務(wù)時間完全不重疊它要么是維護(hù)終端要么是需要排查的臨時接入設(shè)備。5.3 一段PowerShell值守腳本盯住網(wǎng)關(guān)MAC工具掛機(jī)耗內(nèi)存且老版本長時間運行有句柄泄漏風(fēng)險。可以寫一段極簡 PowerShell 腳本只盯網(wǎng)關(guān) MAC作為工具防護(hù)的補(bǔ)充$gatewayIp 192.168.1.1 $knownMac 00-11-22-33-44-55 $logFile $env:TEMP\arp_gateway_watch.log while ($true) { Test-Connection -ComputerName $gatewayIp -Count 1 -Quiet | Out-Null $line arp -a $gatewayIp | Select-String 192.168.1.1 if ($line -match ([0-9a-fA-F]{2}-){5}[0-9a-fA-F]{2}) { $currentMac $Matches[0].ToLower() if ($currentMac -ne $knownMac.ToLower()) { {0} WARN MAC{1} -f (Get-Date).ToString(yyyy-MM-dd HH:mm:ss), $currentMac | Tee-Object -FilePath $logFile -Append } } Start-Sleep -Seconds 10 }腳本先 ping 網(wǎng)關(guān)一次讓本機(jī) ARP 緩存刷新隨后用arp -a提取網(wǎng)關(guān)條目里的 MAC 并做大小寫歸一化比對。不一致時向日志追加寫入警告。Tee-Object在這里同時負(fù)責(zé)輸出到控制臺和寫入文件。使用時把$knownMac替換為網(wǎng)關(guān)真實 MAC腳本在命令行前臺運行即可需要后臺值守時用計劃任務(wù)在系統(tǒng)啟動時以管理員身份啟動 PowerShell 并掛起該腳本。有了這一層即使 Anti ARP Sniffer 因驅(qū)動崩潰退出網(wǎng)關(guān)映射變化仍會留下痕跡。本文還有配套的精品資源點擊獲取