歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> TCP/IP協議攻擊實驗1

TCP/IP協議攻擊實驗1

日期:2017/3/1 11:51:04   编辑:關於Linux

實驗環境:

Linux ubuntu 3.13.0-24-generic

#46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014

x86_64 x86_64 x86_64 GNU/Linux

安裝工具

1、Wireshark

sudo apt-get install wireshark

2、Netwag

sudo apt-get install netwag

3、Netwox

sudo apt-get install netwox

檢查安裝情況

1、Wireshark

wireshark

這裡寫圖片描述

2、Netwag

netwag

這裡寫圖片描述

3、Netwox

netwox

這裡寫圖片描述

克隆連接三個虛擬機

1、查ip地址

ifconfig

這裡寫圖片描述

2、使用ping命令檢查互相連接情況

ping 10.211.55.2*

這裡寫圖片描述

實驗一、APR緩存中毒(ARP cache poisoning)

實驗原理

ARP緩存是ARP協議的重要組成部分。ARP協議運行的目標就是建立MAC地址和IP地址的映射,然後把這一映射關系保存在ARP緩存中,使得不必重復運行ARP協議。因為ARP緩存中的映射表並不是一直不變的,主機會定期發送ARP請求來更新它的ARP映射表,利用這個機制,攻擊者可以偽造ARP應答幀使得主機錯誤的更新自己的ARP映射表,這個過程就是ARP緩存中毒。

這樣的後果即使要麼使主機發送MAC幀到錯誤的MAC地址,導致數據被竊聽;要麼由於MAC地址不存在,導致數據發送不成功。

虛擬機MAC地址和IP地址

Machine IndexHWAddrIPAddr

100:1c:42:6f:5b:ee10.211.55.27

200:1c:42:cc:87:b610.211.55.29

300:1c:42:2e:73:dc10.211.55.28

清空ARP緩存

因為之前測試幾個虛擬機之間是否連接成功的時候進行了ping命令,這個時候在各個虛擬機的時候已經進行了ARP緩存,如果進行實驗的話,將不會有ARP協議的數據包,因為會直接在ARP緩存庫裡面取得相應的MAC地址。

所以這裡我要先對ARP緩存進行清理。以下是ARP命令的使用說明:

arp: 顯示所有的表項。

arp -d address: 刪除一個arp表項。

arp -s address hw_addr: 設置一個arp表項。

先用ARP命令查看已經緩存的ARP信息,然後再根據需要刪除我們需要刪除的ARP緩存。

實驗內容實現

老師給的參考文檔裡面使用的是Telnet命令,但是可能因為虛擬機設置和VMWare不同的原因,在用Telnet命令的時候會出現connection refused的錯誤,所以我嘗試使用ssh命令來實現實驗內容。第一次建立ssh連接的時候就會產生ARP的數據包,可以用wireShark捕捉,我們一樣用第三台虛擬機用虛假的ARP信息進行廣播,那麼應該ssh連接會失敗。

正常狀態下,我用虛擬機#3連接虛擬機#1,可以看到抓取到的ARP數據包如下:

這裡寫圖片描述

這裡寫圖片描述

對照前面我們記錄的MAC地址和IP地址可以看到,在正常的狀態下ARP是正確緩存的,並且可以連接ssh:

這裡寫圖片描述

然後按照老師的教程,用虛擬機#1進行虛假ARP信息廣播:

sudo netwox 80 "00:1c:42:6f:5b:ee" -i "10.211.55.29"

我們可以在虛擬機#3的Wireshark裡面看到這個周期性的廣播信息:

這裡寫圖片描述

虛擬機#3連接虛擬機#2的時候,程序出錯了,然後我們用arp命令查arp緩存,可以看到虛擬機#2的IP地址10.211.55.29對應的MAC地址已經被改成了虛擬機#1的MAC地址00:1c:42:6f:5b:ee。

這裡寫圖片描述

說明攻擊成功。

注意:①WireShark在正常情況下我的環境裡並找不到端口,所以我用了管理員權限打開WireShark,就能正常工作了。②我在第一次實驗的時候發現雖然廣播了但是沒有被修改,第二次就成功了,查了WireShark找到原因,是因為剛好連接建立的時候沒有廣播到。。

實驗二、ICMP重定向攻擊

實驗原理

ICMP重定向攻擊

ICMP重定向信息是路由器向主機提供實時的路由信息,當一個主機收到ICMP重定向信息時,它就會根據這個信息來更新自己的路由表。由於缺乏必要的合法性檢查,如果一個黑客想要被攻擊的主機修改它的路由表,黑客就會發送ICMP重定向信息給被攻擊的主機,讓該主機按照黑客的要求來修改路由表。

實驗准備

安裝traceroute:sudo apt-get install traceroute

虛擬機網絡配置

Machine IndexHWAddrIPAddr

100:1c:42:6f:5b:ee10.211.55.27

200:1c:42:cc:87:b610.211.55.29

300:1c:42:2e:73:dc10.211.55.28

網關00:1c:42:00:00:1810.211.55.1

虛擬機#3檢查正常情況下的網關

使用命令sudo traceroute baidu.com來嘗試路由追蹤連接到百度時候的路由表情況,並且打開WireShark監視網絡。

這裡寫圖片描述

由上圖可知,路由追蹤過程中因為有防火牆屏蔽了ICMP信息,所以沒有返回任何結果而是*。但是沒有關系,我們可以從WireShark抓到的數據包看到默認網關。

這裡寫圖片描述

由上圖可以看到虛擬機#3的默認網關在正常狀態下是00:1c:42:00:00:18|10.211.55.1。

虛擬機#1進行ICMP重定向攻擊

為了讓虛擬機#3認為默認網關已經被修改成了虛擬機#1,需要不斷廣播ICMP重定向信息。為了實現這個廣播,可以使用netwox命令sudo netwox 86 -d "Eth0" --gw "10.211.55.27" -i "10.211.55.1",這個命令代表廣播ICMP重定向信息,把10.211.55.1重定向為10.211.55.27,前者為默認網關,後者為虛擬機#1。

這裡寫圖片描述

注意:為了讓虛擬機#1能夠正常轉發數據包,需要對虛擬機#1進行如下設置:sudo sysctlnet.ipv4.ip_forward=1

虛擬機#3檢查被攻擊情況下的網關

打開WireShark監視網絡,使用traceroute命令訪問baidu.com。觀察抓包情況:

這裡寫圖片描述

由上圖可以驗證虛擬機#1的廣播生效了。

這裡寫圖片描述

由上圖可以驗證虛擬機#3發送的數據包的默認網關已經被改成了虛擬機#1,說明攻擊成功。

Copyright © Linux教程網 All Rights Reserved