1. 程式人生 > 其它 >202111920 2021-2022-2 《網路攻防實踐》實踐四報告

202111920 2021-2022-2 《網路攻防實踐》實踐四報告

1.實踐內容

TCP/IP網路協議棧攻擊概述

網路安全是指網路系統的硬體、軟體及其系統中的資料受到保護,不受偶然的或者惡意的原因而遭到破壞、更改、洩露,系統連續可靠正常執行,網路服務不被中斷。

  • 網路安全基本屬性包括機密性、完整性和可用性。

  • 網路攻擊基本模式包括截獲、中斷、篡改與偽造。

網路層協議攻擊

主要協議如IP、ICMP和ARP都存在多種攻擊方式,常見的包括:IP源地址欺騙、ARP欺騙和ICMP路由重定向攻擊。

IP源地址欺騙

定義:是指攻擊者偽造具有虛假源地址的IP資料包進行傳送,以達到隱藏傳送者身份、假冒其他計算機等目的。

應用場景:IP源地址欺騙常應用於拒絕服務攻擊、網路掃描、基於IP地址的身份認證機制等。

防範措施:使用隨機化初始序列號、使用網路層安全傳輸協議、避免採用基於IP地址的信任策略、在路由器和閘道器上實施包過濾等。

ARP欺騙

定義:有時被稱為ARP下毒(ARP Poisoning),是指攻擊者在有線乙太網或無線網路上傳送偽造ARP訊息,對特定IP所對應的MAC地址進行假冒欺騙,從而達到惡意目的。

應用場景:區域網嗅探、中間人攻擊、惡意程式碼等。

防範措施:靜態繫結關鍵主機的IP地址與MAC地址對映關係、使用相應的ARP防範工具、使用VLAN虛擬子網細分網路拓撲、加密傳輸資料以降低ARP欺騙攻擊的危害後果等。

ICMP路由重定向攻擊

定義:攻擊者偽裝成路由器傳送虛假的ICMP路由路徑控制報文,使得受害主機選擇攻擊者指定的路由路徑,從而進行嗅探或假冒攻擊。

使用場景:ICMP報文型別分為差錯報告類和控制類。ICMP重定向攻擊一般會和IP源地址欺騙技術結合實施。

防範措施:根據型別過濾一些ICMP資料包、設定防火牆過濾、對於ICMP重定向報文判斷是不是來自本地路由器等。

傳輸層協議攻擊

主要協議TCP和UDP也存在很多種不同攻擊方式,有TCP RST攻擊、TCP會話劫持攻擊、TCP SYN洪泛拒絕服務攻擊和UDP洪泛拒絕服務攻擊等。

TCP RST攻擊

也被稱為偽造TCP重置報文攻擊(spoofed TCP reset packet),是指一種假冒干擾TCP通訊連線的技術方法。

TCP會話劫持

目標是劫持通訊雙方已建立的TCP會話連線,假冒其中一方(客戶端)身份,與另一方進行進一步通訊。

防範TCP會話劫持攻擊的手段有禁用主機源路由、採用靜態繫結IP-MAC對映表以避免ARP欺騙、引用和過濾ICMP重定向報文、採用網路層加密機制IPSec協議等。

TCP SYN Flood拒絕服務攻擊

拒絕服務攻擊(Denial of Service,DoS)的目的是使伺服器不能夠為正常訪問的使用者提供服務。

  • TCP SYN Flood(也稱SYN洪泛攻擊)利用TCP三次握手協議缺陷向目標主機發送大量偽造源地址的SYN連線請求消耗目標主機的連線佇列資源,從而不能夠為正常使用者提供服務。

防範SYN Flood攻擊的措施有SYN-Cookie技術、防火牆地址狀態監控技術等。

  • UDP Flood拒絕服務攻擊

通過向目標主機和網路傳送大量的UDP資料包造成目標主機顯著計算負載提升或者目標網路的網路擁塞,從而使得目標主機和網路陷入不可用的狀態,造成拒絕服務攻擊。

防範措施有禁用或過濾監控和響應服務、禁用或過濾其他UDP服務等。

TCP/IP網路協議棧攻擊防範措施
TCP/IP網路協議棧攻擊防範措施包括檢測、預防與安全加固,網路安全協議和下一代網際網路協議。

2.實踐過程

(1)ARP快取欺騙攻擊

1)選定kali做攻擊機,靶機為ubuntu和win2kServer

機器 IP地址 MAC地址
kali 192.168.200.6 00:0c:29:e2:1c:53
ubuntu 192.168.200.3 00:0c:29:e5:db:4b
win2kServer 192.168.200.27 00-0C-29-C4-97-3A

使用命令ifconfig -a查詢ubuntu和kali的MAC地址

使用命令iPconfig/all查詢win2kServer的MAC地址

用Ubuntu ping win2kServer,得到arp快取表,並用arp -a檢視arp快取表,如圖所示,win2kServer的IP地址和MAC地址是對應的

2)在kali上下載netwox


在Kali上執行指令netwox 80 -e 00:0c:29:e5:db:4b -i 192.168.200.3。解釋一下這條指令,80是指netwox的80號工具(建議用80而不是33,因為33一次執行,很容易arp快取表就回去了),第一個為攻擊機Kali放入MAC地址,第二個為MetaSploitable的IP地址,執行後就在區域網內廣播這條命令。更多的netwox指令參考netwox入門教程。(沒有輸出請放心,是一直在廣播的)

3)執行sudo arp -d 192.168.3.21來刪除arp快取,


(2)ICMP重定向攻擊

1)首先在SEED Ubuntu上開啟Wireshark來檢視資料流量,並在終端ping baidu.com,我們發現SEED Ubuntu橋接之後直接訪問外網

2)在Kali主機上執行命令netwox 86 -f "host 192.168.200.3" -g 192.168.200.6 -i 192.168.200.1即嗅探到192.168.200.3(Ubuntu)的資料包時,以192.168.200.1的名義傳送ICMP重定向報文,使192.168.200.6(Kali)成為其預設路由,然後觀察Wireshark資料包的情況。

3)然後在ubuntu中繼續ping百度,發現百度的資料包已經被重定向到192.168.200.6

(3)SYN Flood攻擊

這裡選擇利用Ubuntu向靶機win2kServer發起telnet服務訪問,用Kali攻擊機攻擊靶機的telnet服務埠,並用Wireshark檢視。

1)使用Ubuntu向win2kServer發起登陸telnet 192.168.200.27,輸入使用者名稱密碼。

2) 在Kali上利用netwox的76號工具對靶機的23號埠進行SYN Flood攻擊

使用命令為:netwox 76 -i 192.168.200.27 -p 23

3)開啟Wireshark檢視,可以看到攻擊機向靶機發送了大量的虛假ip發出的SYN連線請求,這些虛假的連線請求沒有MAC地址,無法溯源攻擊者的真實身份。同時我們在SEED Ubuntu上進行訪問也發現無法訪問了。

(4)TCP RST攻擊

1)使用Ubuntu向win2kServer發起登陸telnet 192.168.200.27,輸入使用者名稱密碼。

2)在Kali上利用netwox的78號工具對靶機進行TCP RST攻擊netwox 78 -i 192.168.200.27

3)回到我們剛才Ubuntu的登陸介面,我們現在連線已經被強制關閉了。當然你也可以用Wireshark檢視傳送的資料包

(5)TCP會話劫持攻擊

1)使用Ubuntu向win2kServer發起登陸telnet 192.168.200.27,輸入使用者名稱密碼。

2)在Kali上開啟Wireshark設定過濾條件tcp.port == 23,然後在Ubuntu中輸入ls,回到Kali的Wireshark中檢視,會發現有l和s的資料包。


3)

開啟TransmissionControl Protocol 檢視以下幾個值,源埠、目的埠、Next Seq Num和ACK值。

4)我們要偽造發下一個包,所以把Next Seq Num作為下一個包的ACK,採用ACK作為下一個包的Seq。獲取到資訊之後,攻擊機使用netwox工具偽造Ubuntu給win2kServer發一個tcp包。傳送成功後,原來的Ubuntu就會失去連線,同時win2kServer會把Kali當作訪問者 ,如此實現了會話劫持。

  • 使用指令:
    netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.3 --ip4-dst 192.168.200.27 --tcp-src 40924 --tcp-dst 23 --tcp-seqnum 2 --tcp-acknum 2 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "68656C6C6F776F726C64"
    第一個40是netwox的40號工具,在ip4-src後輸入你的Ubuntu地址,在ip4-dst後輸入你的win2kServer地址,tcp-src表示原埠號(這個是變化的),tcp-seqnum和tcp-acknum輸入剛才講解的值,tcp-data是你要發的資料的16進位制值,這裡的是helloworld的16進位制。同樣的可以在Wireshark中觀察到傳送的值。


3.學習中遇到的問題及解決

  • 在攻擊靶機的telnet服務埠時,因為我的靶機用的是win系統,所以要先開啟telnet,然後還是不行,顯示Server allows NTLM authentication only
    Server has closed connection,這是因為預設情況下,win2000的Telnet服務使用NTLM的驗證方式,這種驗證方式避免了明文密碼的傳送,提高了安全性。但是win98、nt4.0等系統的Telnet客戶端客戶端不支援這種方式,這樣就帶來了不便。那我們可以這樣設定:開始選單|程式|管理工具|Telnet伺服器管理(或者執行tlntadmn),選擇3 顯示/更改登錄檔設定,然後選擇7 NTLM,進行修改。可接受的值為0-2,2是NTLM only,0是NTLM not available,1是二者都支援,預設值是2。修改後需要重新啟動Telnet服務。

4.學習感想和體會