ARP協議簡介
ARP是Address Resolution Protocol (地址解析協議)的縮寫。在以太網中,兩台主機想要 通信,就必須要知道目標主機的MAC (Medium/Media Access Control,介質訪問控制)地址, 如何獲取目標主機的MAC地址呢?這就是地址解析協議ARP的工作。地址解析協議的基本功 能就是在主機發送數據之前將目標IP轉換為MAC地址,完成網絡地址到物理地址的映射,以 保證兩台主機能夠正常通信。
ARP緩存表
任何一台主機安裝了 TCP/IP協議都會有ARP緩存表,該表保存了這個網絡(局域網)中 各主機IP對應的MAC地址,ARP緩存表能夠有效地保證數據傳輸的一對一特性。在Windows 中可以使用arp-a命令來查看緩存表,結果如下:
C:\>arp -a
Interface: 192.168.1.8 0x20002
Internet Address Physical Address
192.168.1.1 00-27-19-66-48-84
192.168.1.12 2c-d0-5a-05-8e-fl
在此時的ARP緩存表中可以看到,192.168.1.12對應的MAC地址為2c-d0-5a-05-8e-fl,並 且類型為動態。如果主機在一段時間內不與此IP通信,將會刪除對應的條目。而靜態ARP緩 存條目是永久性的。
在Windows中建立靜態類型的ARP緩存表可以使用arp -s命令,如: C:\>arp -s 192.168.1.23 f4-b7-e2-8f-ld-91 〃建立靜態緩存表 查看ARP緩存表可以發現,192.168.1.23類型已經變為靜態,內容如下: C:\>arp -a
Interface: 192.168.1.8 —— 0x20002
Internet Address Physical Address Type
192.168.1.1 00-27-19-66-48-84 dynamic
192.168.1.23 f4-b7-e2-8f-ld-91 static
如果想要清空ARP緩存表,可以使用arp -d命令;如果想刪除單個條目,則可以使用arp -d ip命令。
ARP緩存表中的條目也是有時效的,在超過指定的時間后,將從緩存中刪除它們,Windows 默認的ARP緩存項存活時間為兩分鍾。
注:MAC地址如同身份證號碼,具有全球唯一性。
局域網主機通信
假設現在擁有兩個網段、兩個網關和三台主機,內容分別如下:
主機IP |
MAC |
|
網關1 |
192.168.0.1 |
01-01-01-01-01-01 |
主機A |
192.168.0.2 |
02-02-02-02-02-02 |
主機B |
192.168.0.3 |
03-03-03-03-03-03 |
網關2 |
192.168.1.1 |
11-11-11-11-11-11 |
主機C |
192.168.1.2 |
12-12-12-12-12-12 |
現在主機A與主機B通信,主機A使用命令ping 192.168.0.3,這時主機A首先會通過子 網掩碼進行對比,看與目標主機是否在同一局域網內,如果在同一個局域網中,主機A將會 查詢本機的ARP緩存表,看是否存在主機B的MAC地址,如果存在,則直接發送數據,如 果不存在,主機A將會對局域網內所有的主機大喊:“我是192.168.0.2, MAC地址是 02-02-02-02-02-02,誰是192.168.0.3,快把你的MAC地址給我,我要給你發送數據! ”,局域 網內所有的主機都可以聽到“叫聲”,當主機B聽到有人叫自己,就會將自己的MAC地址發 送給主機A,並且將主機A的MAC地址加入自己的ARP緩存中,而其他主機發現不是在“叫” 自己,所以不會有任何應答。
接下來,主機A會收到主機B的響應,並把主機B的MAC地址加入到自己的ARP緩存 中,方便下次聯系,然后發送數據。主機A這聲“吶喊”其實就是以廣播方式發送一個ARP請求報文。ARP請求報文中包含 本機的IP地址、MAC地址等信息。
在局域網中通信比較簡單,不需要經過網關就可以直接通信,但若不在一•個局域網內就比 較復雜了,如主機A與主機C的通信過程如下:
主機A通過網絡掩碼對比,發現與主機C不在同一局域網內,所以需要網關來轉發處理。 主機A首先將會查詢自己的ARP緩存中是否存在網關1的MAC地址,如果不存在,使用 廣播獲取,如果存在,就直接向網關1發送數據包,由網關1向網關2發送數據包,網關2 收到數據包之后發現是發送給主機C的數據,網關2將會查詢自己的ARP緩存中是否存在 主機C的MAC地址,若存在,則直接發送數據,不存在則以廣播方式獲取MAC地址后發送 數據。
ARP欺騙原理
ARP協議最初設計的目的是為了方便傳輸數據,設計該協議的前提是在網絡絕對安全的情 況下。隨着信息技術的發展,攻擊者的手段層出不窮,他們經常會利用ARP協議的缺陷發起攻 擊,ARP協
議主要的缺陷如下:
•由於主機不知道通信對方的MAC地址,所以才需要ARP廣播請求獲取。當在廣播請求 時,攻擊者就可以偽裝ARP應答,冒充真正要通信的主機,以假亂真。
・ARP協議是無狀態的,這就表示主機可以自由地發送ARP應答包,即使主機並未收到 查詢,並且任何ARP響應都是合法的,許多主機會接收未請求的ARP應答包。
• 一台主機的IP被緩存在另一台主機中,它就會被當作一台可信任的主機。而計算機沒有 提供檢驗IP到MAC地址是否正確的機制。當主機接收到一個ARP應答后,主機不再 考慮IP 到MAC地址的真實性和有效性,而是直接將應答包中的MAC地址與對應的1P 地址替換掉原有ARP緩存表的相關信息。
我們知道,以太網中主機之間不知道對方的MAC地址是無法通信的,所以主機會以廣播 的形式發送請求來獲取對方的MAC地址,請求中包含發送方的IP、MAC地址,如果入侵者正 處在局域網內,利用ARP設計的一些缺陷可以在網絡中發送虛假的ARP請求或響應,這就是 ARP欺騙。
從上面內容可知,主機A與主機C之間通信會經過網關1和網關2,但當主機收到 一個ARP的應答包后,它並不會去驗證自己是否發送過這個ARP請求,而是直接將應答包的 MAC地址與IP替換掉原有的ARP緩存信息,這就導致了主機A與主機C之間的通信內容可 能會被主機B截取。下面是主機B的ARP欺騙場景:
首先,主機B向主機A發送一個ARP響應:192.168.0.1的MAC地址是03-03-03-03-03-03 (主機B的MAC地址),而主機A接收到響應后卻不會去驗證數據的真實性,而是直接替換本 機ARP緩存表中192.168.0.1的MAC地址。同時主機B也向主機網關1發送一個ARP響應: 192.168.0.3的MAC地址是03-03-03-03-03-03,同樣網關也不會去驗證,直接放到自己的ARP 緩存中。當主機A與主機C通信時,主機A首先會檢査自己的ARP緩存表中是否有網關的 MAC地址,發現有緩存MAC地址為:03-03-03-03-03-03,於是直接向MAC地址發送數據, 但是此時的MAC卻不是網關1的,而是主機B的MAC地址。主機B接收到數據后再轉發到 真正的網關1,由網關1發送到主機C。當主機C接收到數據后,可能會返回數據,而返回數 據在到達網關1的時候,網關I首先會檢查自己的ARP緩存表,去尋找192.168.0.3對應的MAC 地址,MAC地址為:03-03-03-03-03-03,也就是主機B的地址,當主機B接收到數據包后,再 轉發給真正的主機A,可以說主機A與主機C的通信數據都經過了主機B,沒有任何秘密可言, 這就是ARP欺騙。
ARP欺騙是入侵者常用的攻擊手段,也許讀者聽說過一種攻擊一中間人攻擊。中間人攻 擊即Man-in-the-Middle Attack,簡稱“MITM攻擊”,是一種“間接”的入侵攻擊,就好比主機 A與主機C之間通信都要通過主機B,主機B就被稱為“中間人”。使用“中間人”能夠與原 始計算機建立活動連接,並允許其讀取或修改傳遞的信息,然而兩個原始計算機卻認為它們是 在直接通信。
就如Burp Suite那樣,作為一個代理可以攔截並編輯HTTP請求,也算是一個中間人攻擊 軟件。
常見的中間人攻擊有會話劫持、DNS欺騙等。當然,ARP欺騙也屬於最常見的中間人攻擊 手段
以上內容摘抄於書籍《Web安全深度剖析》,感興趣的話可以自行觀看~
ARP 攻擊
ARP攻擊並不少見,且威力巨大。有時候攻擊者在入侵目標站點時,由於安全措施很到位, 並不能獲取權限,恰好服務器也只放了一個網站,無法旁注,這時攻擊者就可能通過C段ARP 嗅探攻擊,繼續入侵指定的目標網站,C段攻擊也可以看作是另類的“旁注”。
所謂C段攻擊,就是指同一網關下的主機ARP嗅探,在嗅探出敏感數據后,繼續實施對 目標網站的滲透。比如,攻擊者的目標網站為“www.secbug.org服務器地址為:192.168.1.8, 在無法直接滲透目標服務器時,攻擊者就可能去入侵與192.168.1.8在同一網關下的服務器, 般是192.168.1.xxx,也就是C段IP,在得到服務器權限后,對目標主機實施ARP嗅探攻擊(一 般嗅探敏感數據為FTP密碼、Admin Pass等)
這里我們使用kali linux,里面包含了許多攻擊工具,包括需要使用到的arpspoof,ettercap,driftnet。
ARP攻擊的前提是攻擊機與受害機需要在同一局域網內,但一般情況下為了使用方便,都是直接使用net模式,這種模式下虛擬機共享主機的IP地址,Vmware會在主機上創建專用的虛擬網絡,用於主機和虛擬機之間進行通信,這樣的話kali與物理機是不在同一局域網的,而在橋接模式下,虛擬機被當做一個完全獨立的主機,占用局域網的一個IP地址,將虛擬機的網卡交接到主機的物理網卡上,通過主機的網卡訪問外部的Internet。所以我們應該選擇橋接模式。
那么怎樣橋接使kali與物理機在同一局域網且能上網呢?(我當時也是弄了半天才連上網...),如果你已經橋接好了可以pass
1.虛擬機設置中網絡適配器選擇橋接模式
2 . 點擊編輯,選擇虛擬網絡適配器設置
3.點擊VMnet0,選擇橋接模式,網卡選擇你的物理機正在使用的網卡,我這里是Intel(R) Wireless-AC 9462
4.點擊確定,......
你以為這就配好了嗎,不 這樣還是連不上網的
我們需要在kali中將IP設置到與物理機是同一網段
輸入 vim /etc/network/interfaces
inface eth0 inet static 設置 eth0 使用默認的靜態地址
address 192.168.1.15 設置 eth0 的ip 地址
gatework 192.168.1.1 配置當前主機的默認網關
netmask 255.255.255.0 設置 eth0 的子網掩碼
5.輸入 vim /etc/resolv.conf 文件
將物理機的DNS服務器添加進去,我這里是192.168.1.1
6.在終端下,輸入:/etc/init.d/networking restart 回車,進行重啟網卡
7.在終端下,輸入update-rc.d networking defaults 回車,設置設置系統啟動后自動啟用網卡
OK! ping一下百度
說明已經有網了(但是ping物理機ping不通,物理機ping kali linux又ping得通,我認為是物理機上進行了設置禁止了外面機器ping它,而linux沒進行此設置,不管這些了~~)
下面進入正題!先使用arpspoof進行斷網攻擊
需要先在kali中開啟端口轉發功能:
echo 1 >/proc/sys/net/ipv4/ip_forward
查看端口轉發是否成功:cat /proc/sys/net/ipv4/ip_forward 如果顯示1則表示開啟成功,顯示0則開啟失敗
使用命令arpspoof -i eth0 -t 192.168.1.14 192.168.1.1,其中,-i后面的參數是網卡名稱,-t后面的參數是目的主機和網關,要截獲目的主機發往網關的數據包。
這樣物理機就斷網了....
使用arp -a查看arp緩存發現攻擊前網關192.168.1.1與攻擊機192.168.1.15的物理地址是不同的
而攻擊后物理機192.168.1.15的物理地址變得和網關192.168.1.1的物理地址相同了,這樣就把物理機給騙了!使原本要發給網關的數據包發給了攻擊機192.168.1.15
使用ettercap進行斷網攻擊
使用ettercap -G進入圖形化界面
點擊勾勾,點擊右上角的三點,選擇Hosts
然而並沒有發現網關,再點擊Scan for hosts
找到了網關192.168.1.1
點擊攻擊機192.168.1.15,再點擊Add to Target 1
同樣 點擊192.168.1.1 ,再點擊Add to Target 2,點擊右上角的圈圈,選擇ARP poisoning,點擊OK
這樣物理機就又斷網了......
使用driftnet進行圖片嗅探
在使用arpspoof,或者ettercat進行完斷網攻擊后隨即輸入 driftnet -i eth0
這時我們在物理機上打開網站,瀏覽圖片時,就能被driftnet盡收眼底了
我們在物理機上打開7K7K小游戲
隨便點開一個游戲
然后發現攻擊機上已經有了我們瀏覽的圖片,,是不是非常interesting呢
使用ettercap -Tq -i eth0進行賬號密碼嗅探
這時我們打開學習通,使用賬號密碼登陸
登錄,
發現kali上已經截取了我的賬號密碼
不過這里進行了加密,容易看出這是使用了base64加密
使用站長工具進行解密就行了
這樣賬號密碼就出來了.....
知道了攻擊,當然還要學會防御
ARP防御
最常見的防御ARP攻擊的方法一般有兩種,一種是靜態綁定,另一種是安裝ARP防火牆。
1.靜態綁定
靜態綁定是指對每台主機進行IP和MAC地址靜態綁定,靜態綁定是防止ARP欺騙的最 根本辦法。
靜態綁定可以通過命令arp-s實現:"arp - s IP MAC地址",比如,對網關的靜態綁定:
Arp -s 192.168.195.2 00-50-56-ee-12-6a
輸入命令后,可以看到使用arp -a命令查看arp緩存表,在緩存表中可以發現網關的類型已 經為靜態,如圖15-25所示。
另外,也需要網關對局域網主機進行IP-MAC地址的靜態綁定,這樣就是雙綁。
2. ARP防火牆
相對來說,使用ARP防火牆要比靜態綁定ARP緩存表要簡單得多,並且同樣能有效地防 止ARP攻擊。
ARP防火牆有很多,常見的有金山ARP防火牆、Anti ARP Sniffer (彩影防火牆)、360 ARP 防火牆等。
這類ARP軟件的功能是非常多的,一般都可以査殺ARP木馬,精准地追蹤攻擊源IP,攔 截DNS欺騙、網關欺騙、IP沖突等多種攻擊。
使用ARP防火牆不需要復雜的操作,使用者只需要單擊幾個按鈕,即可攔截ARP攻擊。
感謝你仔細看完 -->_<--,
有什么不懂的或細心的你發現錯誤了的就在評論區留下你的看法吧~~