20212923 2021-2022-2 《網絡攻防實踐》第四次作業

20212923 2021-2022-2 《網絡攻防實踐》第四次作業

實踐四:TCP/IP網絡協議攻擊

課程:《網絡攻防實踐》

班級: 2129

姓名: 王文彬

學號:20212923

實驗教師:王志強

實驗日期:2022年04月07日

必修/選修: 選修

一.實踐內容

1. 實踐要求介紹

  • 要求
    • 在之前搭建好的網絡攻防實驗環境中完成TCP/IP協議重點的攻擊實驗主要包含有以下五種攻擊:
      • ARP緩存欺騙攻擊
      • ICMP重定向攻擊
      • SYN Flood攻擊
      • TCP RST攻擊
      • TCP會話劫持攻擊

TCP/IP協議攻擊

TCP/IP協議的脆弱性主要體現在以下幾點:

  • 不能提供可靠的身份驗證
    • TCP/IP 協議以 32 bit 的 IP 地址來作爲網絡節點的唯一標識,而 IP 地址只是用戶軟件設置中的一個參數,因而是可以隨意修改的;
    • 對 UDP 來說,是根據這個 IP 地址來唯一標識通信對方。 TCP 則通過三次握手,使情況稍有改善。 TCP 中的每個報文都含有一個標識本報文在整個通信流中位置的 32 bit 序列號,通信雙方通過序列號來確認數據的有效性;
    • 由於 TCP 設計三次握手過程本身並不是爲了身份驗證,只是提供同步確認和可靠通信,雖然這也能夠提供一定的身份驗證的支持,但這種支持很薄弱。
    • 由於 TCP/IP 不能對節點上的用戶進行有效的身份認證,服務器無法鑑別登錄用戶的身份有效性,攻擊者可以冒充某個可信節點的 IP 地址,進行 IP 欺騙攻擊;
    • 由於某些系統的 TCP 序列號是可以預測的,攻擊者可以構造一個TCP'數據包,對網絡中的某個可信節點進行攻擊。
  • 不能有效防止信息泄漏
    • IPv4 中沒有考慮防止信息泄漏,在 IP 、 TCP 、 UDP 中都沒有對數據進行加密。 IP 協議是無連接的協議,一個 IP 包在傳輸過程中很可能會經過很多路由器和網段,在其中的任何一個環節都很容易進行竊昕 。攻擊者只需簡單地安裝一個網絡嗅探器,就可以看到通過本節點的所有網絡數據包。
  • 沒有提供可靠的信息完整性驗證手段
    • 在 IP 協議中,僅對 IP 頭實現校驗和保護;
    • 在UDP 協議中,對整個報文的校驗和檢查是一個可選項,並且對 UDP 報文的丟失不做檢查;
    • 在 TCP 協議中,雖然每個報文都經過校驗和檢查,並且通過連續的序列號來對包的順序和完整進行檢查,保證數據的可靠傳輸。但是,校驗算法中沒有涉及加密和密碼驗證,很容易對報文內容進行修改,再重新計算校驗和。
  • 協議沒有手段控制資源佔杳和分配
    • TCP/IP 中,對資源佔杳和分配設計的一個基本原則是自覺原則。如參加 TCP通信的一方發現上次發送的數據報丟失,則主動將通信速率降至原來的一半。這樣,也給惡意的網絡破壞者提供了機會 c 如網絡破壞者可以大量的發 IP 報,造成網絡阻塞,也可以向一臺主機發送大量的 SYN 包從而大量佔有該主機的資源 (SYN Flood) 。這種基於資源佔用造成的攻擊被稱爲拒絕服務攻擊( DOS);

TCP/IP協議攻擊方法分析

  • IP欺騙( IP Spoofing)
    • 簡述:IP 欺騙是指一個攻擊者假冒一個主機或合法用戶的 IP 地址,利用兩個主機之間的信任關係來達到攻擊的目的,而這種信任關係只是根據源 IP 地址來確定。所謂信任關係是指當主機 B 信任主機 A 上的 X用戶時,只要 X 在 A 上登錄, X 用戶就可以直接登錄到主機 B 上,而不需要任何口令;
    • IP 欺騙通常需要攻擊者能構造各種形式 IP 數據包,用虛假的源 IP 地址替代自己的真實 IP 地址。如果主機之間存在基於 IP 地址的信任關係,目標主機無法檢測出已經被欺騙;
    • 防範措施:
      • 各個網絡 ISP 應該限制源地址爲外部地址的 IP 數據包進入互聯網;
      • 合理的配置防火牆,限制數據包的源地址爲內部網絡的數據包進入網絡。
  • TCP 會話劫持 (TCP sessJOn hijacking)
    • 簡述:TCP 會話劫持跳過連接過程.對一個已經建立的連接進行攻擊。攻擊者與被假冒主機和目標主機之一在同一個子網中,攻擊者通過一個嗅探程序可以看到被假冒主機和目標主機之間通信的數據包。
      • 攻擊者看到被假冒主機和目標主機建立一個連接並進行身份認證後,通過對數據包捕獲和進行分析,就可以得到連接的序列號;
      • 一旦得到正確的序列號就可以發送一個假冒的 TCP 分段,接管已經建立的連接。這樣,被假冒主機發送的數據包都會被目標主機忽略,因爲它們的序列號會被目標主機認爲不正確。
    • 防範措施: 最主要的方法是在傳輸層對數據進行加密。
  • 拒絕服務( Denial Of Service )——SYN 淹沒 (SYN Flooding)
    • 簡述:當開放了一個TCP端口後,該端口就處於Listening狀態,不停地監視發到該端口的Syn報文,一旦接收到Client發來的Syn報文,就需要爲該請求分配一個TCB(Transmission Control Block),通常一個TCB至少需要280個字節,在某些操作系統中TCB甚至需要1300個字節,並返回一個SYN ACK命令,立即轉爲SYN-RECEIVED即半開連接狀態,而操作系統在SOCK的實現上最多可開啓半開連接個數是一定的;
    • 從以上過程可以看到,如果惡意的向某個服務器端口發送大量的SYN包,則可以使服務器打開大量的半開連接,分配TCB,從而消耗大量的服務器資源,同時也使得正常的連接請求無法被相應。而攻擊發起方的資源消耗相比較可忽略不計。
    • 防範措施:
      • 無效連接監視釋放:這種方法不停監視系統的半開連接和不活動連接,當達到一定閾值時拆除這些連接,從而釋放系統資源。這種方法對於所有的連接一視同仁,而且由於SYN Flood造成的半開連接數量很大,正常連接請求也被淹沒在其中被這種方式誤釋放掉,因此這種方法屬於入門級的SYN Flood方法。
      • 從前面SYN Flood原理可以看到,消耗服務器資源主要是因爲當SYN數據報文一到達,系統立即分配TCB,從而佔用了資源。而SYN Flood由於很難建立起正常連接,因此,當正常連接建立起來後再分配TCB則可以有效地減輕服務器資源的消耗。常見的方法是使用Syn Cache和Syn Cookie技術。
  • ICMP重定向攻擊
    • 簡述:ICMP重定向信息是路由器向主機提供實時的路由信息,當一個主機收到ICMP重定向信息時,它就會根據這個信息來 更新自己的路由表。由於缺乏必要的合法性檢查,如果一個黑客想要被攻擊的主機修改它的路由表,黑客就會發送 ICMP重定向信息給被攻擊的主機,讓該主機按照黑客的要求來修改路由表。
    • 防範措施: 根據類型過濾一些ICMP數據包設置防火牆過濾,對於ICMP重定向報文判斷是不是來自本地路由器。

2. 實踐內容

ARP緩存欺騙攻擊

(1)實驗環境

機器 IP地址 MAC地址
Kali Linux 192.168.200.69 00:0C:29:A4:E2:C4
Linux MetaSploitable 192.168.200.66 00:0C:29:E8:D0:4F
Windows2k 192.168.200.70 00:0C:29:F8:21:F4

該實驗我們選擇三臺機器,分別作爲一臺攻擊機、兩臺靶機,這裏需要注意點爲三臺機器需要均在同一局域網中。

(2)過程

  • SEED Ubuntu ping MetaSploitable,得到arp緩存表,並用arp -a查看arp緩存表,如圖所示。
  • 在Kali上執行指令netwox 80 -e 00:0C:29:A4:E2:C4 -i 192.168.200.66
  • 我們可以看到接下來的arp緩存表,已經發生了改變,和攻擊機的mac地址相同。

ICMP重定向攻擊

(1)實驗環境

機器 IP地址
Kali Linux 192.168.200.69
Linux MetaSploitable 192.168.200.66
SEED Ubuntu 192.168.200.68

(2)實驗過程

  • 在Kali主機上執行命令netwox 86 -f "host 192.168.200.66" -g 192.168.200.69 -i 192.168.200.2即嗅探到192.168.200.66(SEED Ubuntu)的數據包時,以192.168.200.2的名義發送ICMP重定向報文,使192.168.200.69(Kali)成爲其默認路由;
  • 觀察ping過程,發現訪問百度的定位已經被重定向到我們的攻擊機。

SYN Flood攻擊

(1)實驗環境

機器 IP地址
Kali Linux 192.168.200.69
Linux MetaSploitable 192.168.200.66
SEED Ubuntu 192.168.200.68

(2)實驗過程

在此次試驗中我們採用SEED Ubuntu向靶機MetaSploitable發起telnet服務訪問,用Kali攻擊機攻擊靶機的telnet服務端口,並用Wireshark查看。

  • 使用SEED Ubuntu向MetaSploitable發起登陸telnet 192.168.200.66,輸入用戶名密碼(MetaSploitable登陸的用戶名密碼msfadmin/msfadmin)。
  • 在Kali上利用netwox的76號工具對靶機的23號端口進行SYN Flood攻擊;
  • 打開Wireshark查看,可以看到攻擊機向靶機發送了大量的虛假ip發出的SYN連接請求,這些虛假的連接請求沒有MAC地址,無法溯源攻擊者的真實身份。

TCP RST攻擊

(1)實驗環境

機器 IP地址
Kali Linux 192.168.200.69
Linux MetaSploitable 192.168.200.66
SEED Ubuntu 192.168.200.68

(2)實驗過程

這裏我們同樣選擇利用SEED Ubuntu向靶機MetaSploitable發起telnet服務訪問,用Kali攻擊機對靶機發起TCP RST攻擊。

  • 使用SEED Ubuntu向MetaSploitable發起登陸telnet 192.168.200.66,輸入用戶名密碼(MetaSploitable登陸的用戶名密碼)。

  • 在Kali上利用netwox的78號工具對靶機進行TCP RST攻擊netwox 78 -i 192.168.200.66。

  • 我們再次對靶機MetaSploitable發起telnet服務訪問,我們可以觀察到已經不能夠訪問。

TCP會話劫持攻擊

(1)實驗環境

機器 IP地址
Kali Linux 192.168.200.69
Linux MetaSploitable 192.168.200.66
SEED Ubuntu 192.168.200.68

(2)實驗過程

  • 首先我們繼續使用SEED Ubuntu向靶機MetaSploitable發起telnet服務訪問,輸入用戶名及密碼然後進入到靶機MetaSploitable命令行下;

  • 此時我們打開kali中的Ettercap工具,將兩個靶機分別設置爲攻擊目標,然後進行MITM攻擊,我們可以進入connections中進行監聽;

  • 此時我們進入到SEED Ubuntu中我們進入telnet訪問後,輸入命令後,我們返回kali攻擊機中,我們能夠看到在Ettercap攻擊中可以看到我們的輸入過程;

  • 同時我們可以在kali中打開wireshark進行抓包,分析telnet協議包內容後,我們同樣也可以看到我們輸入的相應的命令;

二、 實驗過程中遇到的問題和解決過程

1. 當初對arp攻擊是靶機和攻擊機直接的通信出現故障

  • 分析是因爲一方面我們可以使用在同一網段下可以直接繼續試驗,另一方面,我認爲應該是在配置中間路由時,配置有些問題。

三、感想

此次實驗,學習到了很多工具的使用,同時在分析最後listen.pcap包中,結合上一節課的知識,更加深入了nmap的用法與嗅探之間對聯繫,從攻擊者和靶機不同角度感受了不同的體驗。

四、參考文獻

ICMP路由重定向攻擊演示

IP欺騙攻擊原理及如何修改IP

基於 TCP/IP 協議的常見攻擊方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章