六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ARP協議及ARP欺騙

[摘要]ARP協議概述   ARP協議是“Address Resolution Protocol”(地址解析協議)的縮寫。 在局域網中, 網絡中實際傳輸的是&am...
ARP協議概述

  ARP協議是“Address Resolution Protocol”(地址解析協議)的縮寫。 在局域網中, 網絡中實際傳輸的是“幀”, 幀里面是有目標主機的MAC地址的。 在以太網中, 一個主機要和另一個主機進行直接通信, 必須要知道目標主機的MAC地址。 但這個目標MAC地址是如何獲得的呢?它就是通過地址解析協議獲得的。 所謂“地址解析”就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。 ARP協議的基本功能就是通過目標設備的IP地址, 查詢目標設備的MAC地址, 以保證通信的順利進行。

  ARP工作時, 送出一個含有所希望的IP地址的以太網廣播數據包。 目的地主機, 或另一個代表該主機的系統, 以一個含有IP和以太網地址對的數據包作為應答。 發送者將這個地址對高速緩存起來, 以節約不必要的ARP通信。

 

  如果有一個不被信任的節點對本地網絡具有寫訪問許可權, 那么也會有某種風險。 這樣一臺機器可以發布虛假的ARP報文并將所有通信都轉向它自己, 然后它就可以扮演某些機器, 或者順便對數據流進行簡單的修改。 ARP機制常常是自動起作用的。 在特別安全的網絡上, ARP映射可以用固件, 并且具有自動抑制協議達到防止干擾的目的。

圖1 以太網上的ARP報文格式

  圖1是一個用作IP到以太網地址轉換的ARP報文的例子。 在圖中每一行為32位, 也就是4個八位組表示。

硬件類型字段指明了發送方想知道的硬件接口類型, 以太網的值為1。 協議類型字段指明了發送方提供的高層協議類型, IP為0806(16進制)。 硬件地址長度和協議長度指明了硬件地址和高層協議地址的長度, 這樣ARP報文就可以在任意硬件和任意協議的網絡中使用。 操作字段用來表示這個報文的目的, ARP請求為1, ARP響應為2, RARP請求為3, RARP響應為4。

  當發出ARP請求時, 發送方填好發送方首部和發送方IP地址, 還要填寫目標IP地址。 當目標機器收到這個ARP廣播包時, 就會在響應報文中填上自己的48位主機地址。

  我們先看一下windows 2000下的arp命令(如果開始arp表中的內容為空的話,需要先對某臺主機進行一個連接,例如ping一下目標主機來產生一個arp項):

  用"arp --a"命令可以顯示主機地址與IP地址的對應表, 也就是機器中所保存的arp緩存信息。 這個高速緩存存放了最近Internet地址到硬件地址之間的映射記錄。 高速緩存中每一項的生存時間一般為20分鐘, 起始時間從被創建時開始算起。

  在執行上面一條ping命令的同時, 進行監聽:

  我們將會聽到很多包, 我們取與我們arp協議相關的2個包:

ARP欺騙

  我們先復習一下上面所講的ARP協議的原理。 在實現TCP/IP協議的網絡環境下, 一個ip包走到哪里, 要怎么走是靠路由表定義, 但是, 當ip包到達該網絡后, 哪臺機器響應這個ip包卻是靠該ip包中所包含的硬件mac地址來識別。 也就是說, 只有機器的硬件mac地址和該ip包中的硬件mac地址相同的機器才會應答這個ip包, 因為在網絡中, 每一臺主機都會有發送ip包的時候, 所以, 在每臺主機的內存中, 都有一個 arp--> 硬件mac 的轉換表。 通常是動態的轉換表(該arp表可以手工添加靜態條目)。 也就是說, 該對應表會被主機在一定的時間間隔后刷新。 這個時間間隔就是ARP高速緩存的超時時間。

  通常主機在發送一個ip包之前, 它要到該轉換表中尋找和ip包對應的硬件mac地址, 如果沒有找到, 該主機就發送一個ARP廣播包, 于是, 主機刷新自己的ARP緩存。 然后發出該ip包。

  了解這些常識后, 現在就可以談在以太網絡中如何實現ARP欺騙了, 可以看看這樣一個例子。

同一網段的ARP欺騙

 

  同一網段的ARP欺騙

圖2 同一網段的arp欺騙

  如圖2所示, 三臺主機

  A: ip地址 192.168.0.1 硬件地址 AA:AA:AA:AA:AA:AA

  B: ip地址 192.168.0.2 硬件地址 BB:BB:BB:BB:BB:BB

  C: ip地址 192.168.0.3 硬件地址 CC:CC:CC:CC:CC:CC

  一個位于主機B的入侵者想非法進入主機A, 可是這臺主機上安裝有_blank">防火墻。 通過收集資料他知道這臺主機A的_blank">防火墻只對主機C有信任關系(開放23端口(telnet))。 而他必須要使用telnet來進入主機A, 這個時候他應該如何處理呢?

  我們這樣考慮, 入侵者必須讓主機A相信主機B就是主機C, 如果主機A和主機C之間的信任關系是建立在ip地址之上的。 如果單單把主機B的ip地址改的和主機C的一樣, 那是不能工作的, 至少不能可靠地工作。 如果你告訴以太網卡設備驅動程序, 自己IP是192.168.0.3, 那么這只是一種純粹的競爭關系, 并不能達到目標。 我們可以先研究C這臺機器如果我們能讓這臺機器暫時當掉, 競爭關系就可以解除,這個還是有可能實現的。 在機器C當掉的同時, 將機器B的ip地址改為192.168.0.3,這樣就可以成功的通過23端口telnet到機器A上面, 而成功的繞過_blank">防火墻的限制。

  上面的這種想法在下面的情況下是沒有作用的, 如果主機A和主機C之間的信任關系是建立在硬件地址的基礎上。 這個時候還需要用ARP欺騙的手段讓主機A把自己的ARP緩存中的關于192.168.0.3映射的硬件地址改為主機B的硬件地址。

  我們可以人為的制造一個arp_reply的響應包,發送給想要欺騙的主機,這是可以實現的,因為協議并沒有規定必須在接收到arp_echo后才可以發送響應包.這樣的工具很多,我們也可以直接用snifferpro抓一個arp響應包,然后進行修改。

  你可以人為地制造這個包。 可以指定ARP包中的源IP、目標IP、源MAC地址、目標MAC地址。

這樣你就可以通過虛假的ARP響應包來修改主機A上的動態ARP緩存達到欺騙的目的。

  下面是具體的步驟:

  1. 他先研究192.0.0.3這臺主機, 發現這臺主機的漏洞。

  2. 根據發現的漏洞使主機C當掉, 暫時停止工作。

  3. 這段時間里, 入侵者把自己的ip改成192.0.0.3

  4. 他用工具發一個源ip地址為192.168.0.3源MAC地址為BB:BB:BB:BB:BB:BB的包給主機A, 要求主機A更新自己的arp轉換表。

  5. 主機更新了arp表中關于主機C的ip-->mac對應關系。

  6. _blank">防火墻失效了, 入侵的ip變成合法的mac地址, 可以telnet 了。

  上面就是一個ARP的欺騙過程, 這是在同網段發生的情況, 但是, 提醒注意的是, 在B和C處于不同網段的時候, 上面的方法是不起作用的。

不同網段的ARP欺騙

  不同網段的ARP欺騙

圖3 不同網段之間的ARP欺騙

  如圖3所示A、C位于同一網段而主機B位于另一網段, 三臺機器的ip地址和硬件地址如下:

  A: ip地址 192.168.0.1 硬件地址 AA:AA:AA:AA:AA:AA

  B: ip地址 192.168.1.2 硬件地址 BB:BB:BB:BB:BB:BB

  C: ip地址 192.168.0.3 硬件地址 CC:CC:CC:CC:CC:CC

  在現在的情況下, 位于192.168.1網段的主機B如何冒充主機C欺騙主機A呢?顯然用上面的辦法的話, 即使欺騙成功, 那么由主機B和主機A之間也無法建立telnet會話, 因為路由器不會把主機A發給主機B的包向外轉發, 路由器會發現地址在192.168.0.這個網段之內。

  現在就涉及到另外一種欺騙方式―ICMP重定向。 把ARP欺騙和ICMP重定向結合在一起就可以基本實現跨網段欺騙的目的。

  什么是ICMP重定向呢?

  ICMP重定向報文是ICMP控制報文中的一種。 在特定的情況下, 當路由器檢測到一臺機器使用非優化路由的時候, 它會向該主機發送一個ICMP重定向報文, 請求主機改變路由。 路由器也會把初始數據報向它的目的地轉發。 我們可以利用ICMP重定向報文達到欺騙的目的。

  下面是結合ARP欺騙和ICMP重定向進行攻擊的步驟:

  1. 為了使自己發出的非法ip包能在網絡上能夠存活長久一點, 開始修改ip包的生存時間ttl為下面的過程中可能帶來的問題做準備。 把ttl改成255. (ttl定義一個ip包如果在網絡上到不了主機后, 在網絡上能存活的時間, 改長一點在本例中有利于做充足的廣播)

  2. 下載一個可以自由制作各種包的工具(例如hping2)

  3. 然后和上面一樣, 尋找主機C的漏洞按照這個漏洞當掉主機C。

  4. 在該網絡的主機找不到原來的192.0.0.3后, 將更新自己的ARP對應表。 于是他發送一個原ip地址為192.168.0.3硬件地址為BB:BB:BB:BB:BB:BB的ARP響應包。

  5. 好了, 現在每臺主機都知道了, 一個新的MAC地址對應192.0.0.3,一個ARP欺騙完成了, 但是, 每臺主機都只會在局域網中找這個地址而根本就不會把發送給192.0.0.3的ip包丟給路由。 于是他還得構造一個ICMP的重定向廣播。

  6. 自己定制一個ICMP重定向包告訴網絡中的主機:"到192.0.0.3的路由最短路徑不是局域網, 而是路由, 請主機重定向你們的路由路徑, 把所有到192.0.0.3的ip包丟給路由。 "

  7. 主機A接受這個合理的ICMP重定向, 于是修改自己的路由路徑, 把對192.0.0.3的通訊都丟給路由器。

  8. 入侵者終于可以在路由外收到來自路由內的主機的ip包了, 他可以開始telnet到主機的23口。

  其實上面的想法只是一種理想話的情況, 主機許可接收的ICMP重定向包其實有很多的限制條件, 這些條件使ICMP重定向變的非常困難。

  TCP/IP協議實現中關于主機接收ICMP重定向報文主要有下面幾條限制:

  1. 新路由必須是直達的

  2. 重定向包必須來自去往目標的當前路由

  3. 重定向包不能通知主機用自己做路由

  4. 被改變的路由必須是一條間接路由

  由于有這些限制, 所以ICMP欺騙實際上很難實現。 但是我們也可以主動的根據上面的思維尋找一些其他的方法。 更為重要的是我們知道了這些欺騙方法的危害性, 我們就可以采取相應的防御辦法。

ARP欺騙的防御

  知道了ARP欺騙的方法和危害, 我們給出一些初步的防御方法:

  1. 不要把你的網絡安全信任關系建立在ip地址的基礎上或硬件mac地址基礎上, (rarp同樣存在欺騙的問題), 理想的關系應該建立在ip+mac基礎上。

  2. 設置靜態的mac-->ip對應表, 不要讓主機刷新你設定好的轉換表。

  3. 除非很有必要, 否則停止使用ARP, 將ARP做為永久條目保存在對應表中。 在linux下可以用ifconfig -arp可以使網卡驅動程序停止使用ARP。

  4. 使用代理網關發送外出的通訊。

  5. 修改系統拒收ICMP重定向報文在linux下可以通過在_blank">防火墻上拒絕ICMP重定向報文或者是修改內核選項重新編譯內核來拒絕接收ICMP重定向報文。 在win2000下可以通過_blank">防火墻和IP策略拒絕接收ICMP報文。

代理ARP的應用

  代理ARP有兩大應用,一個是有利的就是我們在_blank">防火墻實現中常說的透明模式的實現,另一個是有害的就是通過它可以達到在交換環境中進行嗅探的目的.由此可見同樣一種技術被應用于不同的目的,效果是不一樣的.

  我們先來看交換環境中局域網的嗅探.

  通常在局域網環境中, 我們都是通過交換環境的網關上網的。 在交換環境中使用NetXray或者NAI Sniffer一類的嗅探工具除了抓到自己的包以外, 是不能看到其他主機的網絡通信的。

  但是我們可以通過利用ARP欺騙可以實現Sniffer的目的。

  ARP協議是將IP地址解析為MAC地址的協議, 局域網中的通信都是基于MAC地址的。

圖4 交換網絡中的ARP欺騙

  如圖4所示, 三臺主機位于一個交換網絡的環境中, 其中A是網關:

  A: ip地址 192.168.0.1 硬件地址 AA:AA:AA:AA:AA

  B: ip地址 192.168.0.2 硬件地址 BB:BB:BB:BB:BB

  C:ip地址 192.168.0.3 硬件地址 CC:CC:CC:CC:CC

  在局域網中192.168.0.2和192.168.0.3都是通過網關192.168.0.1上網的, 假定攻擊者的系統為192.168.0.2, 他希望聽到192.168.0.3的通信, 那么我們就可以利用ARP欺騙實現。

  這種欺騙的中心原則就是arp代理的應用.主機A是局域網中的代理服務器,局域網中每個節點的向外的通信都要通過它.主機B想要聽主機C的通信,它需要先使用ARP欺騙,讓主機C認為它就是主機A,這個時候它發一個IP地址為192.168.0.1,物理地址為BB:BB:BB:BB:BB:BB的ARP響應包給主機C,這樣主機C會把發往主機A的包發往主機B.同理,還要讓網關A相信它就是主機C,向網關A發送一個IP地址為192.168.0.3,物理地址為BB:BB:BB:BB:BB:BB的包。

  上面這一步的操作和前面的ARP欺騙的原理是一樣的,但是還是有問題,過一段時間主機B會發現自己無法上網.所以下面還有一個步驟就是需要在主機B上轉發從主機A到主機C的包,并且轉發從主機C到主機A的包.現在我們可以看到其實主機B在主機A和主機C的通訊中起到了一個代理的作用,這就是為什么叫做ARP代理的原因。

  具體實現要用到兩個工具dsniff和fragrouter,dsniff用來實現ARP欺騙,fragroute用來進行包的轉發。

  首先利用dsniff中的arpspoof來實現ARP欺騙,dsniff軟件可以在下面的網址下載:

  http://naughty.monkey.org/~dugsong/dsniff

  安裝這個軟件包之前先要下載安裝libnet。

  欺騙192.168.0.3, 告訴這臺機器網關192.168.0.1的MAC地址是192.168.0.2的MAC地址.

  [root@sound dsniff-2.3]# ./arpspoof -i eth0 -t 192.168.0.3 192.168.0.1

  欺騙192.168.0.1, 告訴192.168.0.1主機192.168.0.3的MAC地址是192.168.0.2的MAC地址。

  [root@sound dsniff-2.3]# ./arpspoof -i eth0 -t 192.168.0.1 192.168.0.3

  現在我們已經完成了第一步的欺騙,這個欺騙是通過arpspoof來完成的,當然您也可以使用別的工具甚至自己發包來完成.現在我們可以看到在主機A和主機C的arp列表里面都完成了我們需要的工作.在后面的透明代理中我們將使用另外一種不同的理念。

  下面我們先打開linux系統中的轉發包的選項:

  [root@sound /root]# echo "1" >/proc/sys/net/ipv4/ip_forward

  下面我們可以下載大名鼎鼎的dugsong的另外一個工具fragroute,這個工具以前叫做fragrouter(僅有1字的差別)主要用于實現入侵檢測系統處理分片的ip和tcp包功能的檢測,本身自代包轉發的功能.可以到下面的網站下載:

  http://monkey.org/~dugsong/fragroute/

  安裝這個軟件包之前先要下載安裝libpcap和libevent.

  當然我們也可以使用fragrouter來完成:

  http://www.packetstormsecurity.o ... ectools/fragrouter/

  [root@sound fragrouter-1.6]# ./fragrouter -B1

  fragrouter: base-1: normal IP forwarding

  現在就可以實現在交換局域網中嗅探的目標.當然上面這些只是一些原理性的介紹,在真正的使用中會遇到很多的問題,比如如何實現對網關A和主機C的欺騙,以及如何處理可能出現的廣播風暴問題,這些可以在實踐中學習.還有一個叫arpsniff的工具能夠很方便的完成這一功能,很多網站都提供下載,界面比較友好,由于和上面的原理一樣,只是工具使用上的不同并且添加了一些附加的功能,所以這里不在進行介紹。

  代理ARP的另外一個應用就是_blank">防火墻的透明代理的實現.我們都知道早期的_blank">防火墻大都是基于路由模式,也就是_blank">防火墻要完成一個路由的作用.這種接入方式需要在局域網內的主機上設置_blank">防火墻的IP為代理,而且需要在外部路由器的路由表中加入一條指向_blank">防火墻的路由.這種方式的缺點在于不透明,需要進行過多的設置,并且破壞了原有的網絡拓撲.所以現在幾乎全部的_blank">防火墻都實現了一種透明接入的功能,用戶的路由器和客戶端不用做任何修改,用戶甚至感覺不到透明接入方式_blank">防火墻的存在.這種透明接入的原理就是ARP代理。

  我們現在看如何配置一臺主機作為透明接入模式的_blank">防火墻(透明接入的_blank">防火墻不需要IP):

圖5

  如圖5所示,一臺_blank">防火墻連接內部網段和DMZ網段到外部路由.我們在這臺用作_blank">防火墻的主機上使用linux操作系統,這樣我們可以方便的使用iptables_blank">防火墻.假設三塊網卡為eth0,eth1和eth2,eth0和路由器相連,eth1和內網相連.eth2和外網相連.假設DMZ區有2臺服務器.

  內網地址:192.168.1.0/24

  DMZ地址:192.168.1.2---192.168.1.3

  路由器的ip地址:192.168.1.1

  eth0:AA:AA:AA:AA:AA:AA

  eth1:BB:BB:BB:BB:BB:BB

  eth2:CC:CC:CC:CC:CC:CC

  和前面差不多,第一步需要實現ARP欺騙,這次我們有個簡單的實現.我們把路由器的IP地址和_blank">防火墻的eth1和eth2的網卡物理地址綁定,將內網和DMZ網段的IP地址和eth0的網卡綁定,在linux系統上我們用arp命令實現:

  arp -s 192.168.1.1 BB:BB:BB:BB:BB:BB

  arp -s 192.168.1.1 CC:CC:CC:CC:CC:CC

  arp -s 192.168.1.0/24 AA:AA:AA:AA:AA:AA

  

  第二步我們需要在基于linux的_blank">防火墻上設置路由,把目標地址是外部路由的包轉發到eth0,把目標地址為內網的包轉發到eth1,把目標地址是DMZ網段服務器的包轉發到eth2.在linux下面用route命令實現

  route add 192.168.1.1 dev eth0

  ROUTE ADD -NET 192.168.1.0/24 DEV ETH1

  route add 192.168.1.2 dev eth2

  route add 192.168.1.3 dev eth3

  (針對DMZ網段里面的每臺服務器都要增加一條單獨的路由) 現在我們就已經實現了一個簡單的arp代理的透明接入,當然對應于_blank">防火墻的iptables部分要另外配置,iptables的配置不在本文范疇之內。

小結

  本文介紹了ARP協議以及與其相關的安全問題。 一個重要的安全問題就是ARP欺騙, 我們講到了同一網段的ARP欺騙以及跨網段的ARP欺騙和ICMP重定向相結合的方法。 由于有這些安全問題的存在, 我們給出一些最基本的解決辦法。 最后談到了利用代理ARP實現在交換網絡中嗅探和_blank">防火墻的透明接入。


上面是電腦上網安全的一些基礎常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。




主站蜘蛛池模板: 日韩在线二区 | 青青草原国产在线观看 | 亚洲va欧美va国产综合下载 | 青娱乐在线免费观看视频 | 天堂√中文在线 | 中文字幕第15页 | 伊人精品影院 | 日本在线看小视频网址 | 亚洲a级大片| 天天操天天干天天 | 五月婷婷亚洲综合 | 伊人久久青青 | 亚洲视频污 | 又粗又硬又爽的三级视频在线观看 | 人人狠狠综合久久亚洲 | 亚洲欧美自拍视频 | 日韩av东京社区男人的天堂 | 日韩毛片大全免费高清 | 欧美性猛交xxxx乱大交极品 | 污污网站国产精品白丝袜 | 亚洲视色| 亚洲免费观看 | 日韩国产欧美视频 | 午夜在线视频 | 欧美一级高清在线观看 | 日本一区视频 | 色综合网天天综合色中文男男 | 最近中文字幕免费mv视频4 | 亚洲国产成人精彩精品 | 揉女胸视频www网站免费观看 | 日韩a无v码在线播放免费 | 亚洲精品福利你懂 | 日韩黄a级成人毛片 | 亚洲男人的天堂网站 | 综合激情五月婷婷 | 在线观看国产日本 | 色噜噜狠狠色综合日日 | 五福影院凹凸一区二区 | 一个色综合网 | 香蕉视频在线观看网址 | 小草青青免费影视观看 |