ARP攻擊的原理_ARP原理
發表時間:2023-07-14 來源:明輝站整理相關軟件相關文章人氣:
[摘要]在局域網中, 通過ARP協議來完成IP地址轉換為第二層物理地址(即MAC地址)的。 ARP協議對網絡安全具有重要的意義。 通過偽造IP地址和MAC地址實現ARP欺騙, 能夠在網絡中產生大量的AR...
在局域網中, 通過ARP協議來完成IP地址轉換為第二層物理地址(即MAC地址)的。 ARP協議對網絡安全具有重要的意義。 通過偽造IP地址和MAC地址實現ARP欺騙, 能夠在網絡中產生大量的ARP通信量使網絡阻塞。
ARP協議是“Address Resolution Protocol”(地址解析協議)的縮寫。 在局域網中, 網絡中實際傳輸的是“幀”, 幀里面是有目標主機的MAC地址的。 在以太網中, 一個主機要和另一個主機進行直接通信, 必須要知道目標主機的MAC地址。 但這個目標MAC地址是如何獲得的呢?它就是通過地址解析協議獲得的。 所謂“地址解析”就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。 ARP協議的基本功能就是通過目標設備的IP地址, 查詢目標設備的MAC地址, 以保證通信的順利進行。
每臺安裝有TCP/IP協議的電腦里都有一個ARP緩存表, 表里的IP地址與MAC地址是一一對應的, 如下所示。
主機 IP地址 MAC地址
A 192.168.16.1 aa-aa-aa-aa-aa-aa
B 192.168.16.2 bb-bb-bb-bb-bb-bb
C 192.168.16.3 cc-cc-cc-cc-cc-cc
D 192.168.16.4 dd-dd-dd-dd-dd-dd
我們以主機A(192.168.16.1)向主機B(192.168.16.2)發送數據為例。 當發送數據時, 主機A會在自己的ARP緩存表中尋找是否有目標IP地址。 如果找到了, 也就知道了目標MAC地址, 直接把目標MAC地址寫入幀里面發送就可以了;如果在ARP緩存表中沒有找到相對應的IP地址, 主機A就會在網絡上發送一個廣播, 目標MAC地址是“FF.FF.FF.FF.FF.FF”, 這表示向同一網段內的所有主機發出這樣的詢問:“192.168.16.2的MAC地址是什么?”網絡上其他主機并不響應ARP詢問, 只有主機B接收到這個幀時, 才向主機A做出這樣的回應:“192.168.16.2的MAC地址是bb-bb-bb-bb-bb-bb”。 這樣, 主機A就知道了主機B的MAC地址, 它就可以向主機B發送信息了。 同時它還更新了自己的ARP緩存表, 下次再向主機B發送信息時, 直接從ARP緩存表里查找就可以了。 ARP緩存表采用了老化機制, 在一段時間內如果表中的某一行沒有使用, 就會被刪除, 這樣可以大大減少ARP緩存表的長度, 加快查詢速度。
從上面可以看出, ARP協議的基礎就是信任局域網內所有的人, 那么就很容易實現在以太網上的ARP欺騙。 對目標A進行欺騙, A去Ping主機C卻發送到了DD-DD-DD-DD-DD-DD這個地址上。 如果進行欺騙的時候, 把C的MAC地址騙為DD-DD-DD-DD-DD-DD, 于是A發送到C上的數據包都變成發送給D的了。 這不正好是D能夠接收到A發送的數據包了么, 嗅探成功。
A對這個變化一點都沒有意識到, 但是接下來的事情就讓A產生了懷疑。 因為A和C連接不上了。 D對接收到A發送給C的數據包可沒有轉交給C。
做“man in the middle”, 進行ARP重定向。 打開D的IP轉發功能, A發送過來的數據包, 轉發給C, 好比一個路由器一樣。 不過, 假如D發送ICMP重定向的話就中斷了整個計劃。
D直接進行整個包的修改轉發, 捕獲到A發送給C的數據包, 全部進行修改后再轉發給C, 而C接收到的數據包完全認為是從A發送來的。 不過, C發送的數據包又直接傳遞給A, 倘若再次進行對C的ARP欺騙。 現在D就完全成為A與C的中間橋梁了, 對于A和C之間的通訊就可以了如指掌了。
【故障現象】
當局域網內某臺主機運行ARP欺騙的木馬程序時, 會欺騙局域網內所有主機和路由器, 讓所有上網的流量必須經過病毒主機。 其他用戶原來直接通過路由器上網現在轉由通過病毒主機上網, 切換的時候用戶會斷一次線。
切換到病毒主機上網后, 如果用戶已經登陸了服務器, 那么病毒主機就會經常偽造斷線的假像, 那么用戶就得重新登錄服務器, 這樣病毒主機就可以盜號了。
由于ARP欺騙的木馬程序發作的時候會發出大量的數據包導致局域網通訊擁塞以及其自身處理能力的限制, 用戶會感覺上網速度越來越慢。 當ARP欺騙的木馬程序停止運行時, 用戶會恢復從路由器上網, 切換過程中用戶會再斷一次線。
【HiPER用戶快速發現ARP欺騙木馬】
在路由器的“系統歷史記錄”中看到大量如下的信息(440以后的路由器軟件版本中才有此提示):
MAC Chged 10.128.103.124
MAC Old 00:01:6c:36:d1:7f
MAC New 00:05:5d:60:c7:18
這個消息代表了用戶的MAC地址發生了變化, 在ARP欺騙木馬開始運行的時候, 局域網所有主機的MAC地址更新為病毒主機的MAC地址(即所有信息的MAC New地址都一致為病毒主機的MAC地址), 同時在路由器的“用戶統計”中看到所有用戶的MAC地址信息都一樣。
如果是在路由器的“系統歷史記錄”中看到大量MAC Old地址都一致, 則說明局域網內曾經出現過ARP欺騙(ARP欺騙的木馬程序停止運行時, 主機在路由器上恢復其真實的MAC地址)。
【在局域網內查找病毒主機】
在上面我們已經知道了使用ARP欺騙木馬的主機的MAC地址, 那么我們就可以使用NBTSCAN工具來快速查找它。
NBTSCAN可以取到PC的真實IP地址和MAC地址, 如果有”ARP攻擊”在做怪, 可以找到裝有ARP攻擊的PC的IP/和MAC地址。
命令:“nbtscan -r 192.168.16.0/24”(搜索整個192.168.16.0/24網段, 即192.168.16.1-192.168.16.254);或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137 網段, 即192.168.16.25-192.168.16.137。 輸出結果第一列是IP地址, 最后一列是MAC地址。
NBTSCAN的使用范例:
假設查找一臺MAC地址為“000d870d585f”的病毒主機。
1)將壓縮包中的nbtscan.exe 和cygwin1.dll解壓縮放到c:下。
2)在Windows開始—運行—打開, 輸入cmd(windows98輸入“command”), 在出現的DOS窗口中輸入:C: btscan -r 192.168.16.1/24(這里需要根據用戶實際網段輸入), 回車。
3)通過查詢IP--MAC對應表, 查出“000d870d585f”的病毒主機的IP地址為“192.168.16.223”。
上面是電腦上網安全的一些基礎常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。