實戰:ARP攻擊原理及處理方法
發表時間:2023-07-16 來源:明輝站整理相關軟件相關文章人氣:
[摘要]局域網內有人使用ARP欺騙的木馬程序(比如:傳奇盜號的軟件, 某些傳奇外掛中也被惡意加載了此程序)。 【故障原理】 要了解故障原理, 我們先來了解一下ARP協議。 在...
局域網內有人使用ARP欺騙的木馬程序(比如:傳奇盜號的軟件, 某些傳奇外掛中也被惡意加載了此程序)。
【故障原理】
要了解故障原理, 我們先來了解一下ARP協議。
在局域網中, 通過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之間的通訊就可以了如指掌了。
上面是電腦上網安全的一些基礎常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。