20212818 2021-2022-2 《網路攻防實踐》實踐四報告
一、實踐內容
(一)網路攻擊模式
在網路通訊中,攻擊者可以採取如下四種基本的攻擊模式,包括截獲、中斷、篡改與偽造。
1、截獲
是一種被動攻擊模式,其目的是獲取網路通訊雙方的通訊資訊內容,是對機密性的違反,主要的攻擊技術為嗅探 (Sniffing) 與監聽 (Eavesdropping);
2、中斷
是一種主動攻擊模式,其目的是致使正常的網路通訊和會話無法繼續,是對可用性的違反,具體的攻擊技術為拒絕服務(Denial of Service,DoS);
3、篡改
是一種主動攻擊模式,其目的是對網路通訊過程的資訊內容進行修改,使得通訊一方或雙方接收到篡改後的虛假訊息,是對完整性的違反,具體的攻擊技術為資料包篡改;
4、偽造
是一種主動攻擊模式,其目的是假冒網路通訊方的身份,欺騙通訊雙方達到惡意,是對真實性的違反,具體的攻擊技術為欺騙(Spoofing)。
(二)網路層協議攻擊
1、IP源地址欺騙
是指攻擊者偽造具有虛假地址的IP資料包進行傳送,已達到隱藏傳送者身份、假冒其他計算機的目的。
2、ARP欺騙
是指攻擊者在乙太網或無線網上傳送偽造的ARP訊息,對特定IP所對應的MAC地址進行假冒欺騙,從而達到惡意目的的攻擊技術。
原理:ARP協議將主機的IP地址解析成其MAC地址,然後在區域網內通過MAC地址進行通訊。
攻擊工具:Netwox中的33號工具可構造任意乙太網的ARP資料包,80號工具可週期性發送ARP應答包。
防範措施:靜態繫結關鍵主機的IP地址與MAC地址的對映關係、使用ARP防範工具,加密傳輸資料。
3、ICMP重定向攻擊
是指攻擊者偽裝成路由器傳送虛假的ICMP路徑路由控制報文,使得受害主機選擇攻擊者指定的路由路徑,從而進行嗅探或假冒攻擊的一種技術。
ICMP路由重定向攻擊技術:攻擊節點利用IP源地址欺騙技術,冒充閘道器地址,向被攻擊節點發送ICMP報文;被攻擊節點選擇新路由IP地址為新路由器;攻擊節點可以開啟路由轉發,對被攻擊節點全程監聽。
工具:利用Netwox進行ICMP路由重定向攻擊
防範措施:設定防火牆過濾,判斷ICMP報文是否來自本地路由器等。
(三)、傳輸層協議攻擊
1、TCP RST攻擊
是一種假冒干擾TCP通訊連線的技術方法。TCP協議頭中有一個“reset”位元位,絕大部分資料包該位為0,一旦該位為0,則接受資料包的主機將斷開此TCP連線。
Network工具可以選擇編號為78的“Rest every TCP packet”工具來實現TCP RST攻擊。
2、TCP會話劫持攻擊
目標是劫持通訊雙方的TCP會話連線,假冒其中一方的身份與另一方進行通訊。
攻擊者通過ARP欺騙實施中間人攻擊,可嗅探得Victim和talent之間的會話內容,然後假冒其victim的IP地址及身份,與talent會話;傳送的資料包必須滿足條件SVR_ACK<=CLT_SEQ<=SVR_ACK+SVR_WND。
防範措施:禁用主機上的原路由,靜態繫結IP-MAC對映表、引用和過濾ICMP重定向報文。
3、TCP SYN Flood拒絕服務攻擊(DOS)
SYN泛洪攻擊利用TCP三次握手的缺陷,向目標主機發送大量的偽造源地址的SYN連線請求,從而導致目標主機連線列隊資源消耗而不能提供服務。
攻擊原理:攻擊主機向受害主機發送大量報文,受害機必須要分配資源並且向源地址返回SYN/ACK包,還要等待源端返回ACK包。當半開的列隊填滿時,伺服器就會拒絕新的連線,最終使受害主機拒絕服務。
工具:Netwox軟體,選擇編號為76的“Synflood”工具並輸入目標地址,攻擊機即開始執行攻擊。
防範措施:SYN-Cookie技術;防火牆地址狀態監控技術。
二、實踐過程
任務:在網路攻防實驗環境中完成TCP/IP協議棧重點協議的攻擊實驗,包括ARP快取欺騙攻擊、ICMP重定向攻擊、SYN Flood攻擊、TCP RST攻擊、TCP會話劫持攻擊。
1、選用Kali為攻擊機,Win2kServer和metasploitable_ubuntu為靶機,第一步是用ifconfig
獲取它們的實體地址以及IP地址,其中值得注意的是WinXP得用ipconfig/all
kali的IP地址
metasploitable_ubuntu的IP地址
Win2kServer的IP地址
(一)、ARP快取欺騙攻擊
kali作為攻擊機,通過ARP快取欺騙攻擊MetasploitableUbuntu與Win2kServer間的正常通訊。
將Kali虛擬機器設定為主機模式
用metasploitable_ubuntu 虛擬機器ping Win2k虛擬機器,測試metasploitable_ubuntu與Win2k是否可以正常通訊,然後按Ctrl+c停止,輸入命令arp -a。
在kali上安裝netwox,安裝指令是sudo apt-get install netwox
利用netwox中的80號工具偽造Win2kServer的MAC地址,指令是netwox 80 -e 偽造的MAC地址 -i Win2kServe的IP地址,偽造的MAC地址為:00:0C:29:AA:AA:AA。
然後在MetasploitableUbuntu上ping Win2kServer,發現ping不通,說明二機已不能正常通訊
通過指令arp-a檢視快取表發現Win2kServer的MAC地址是kali偽造的MAC地址:
在kali命令框中按Ctrl + c停止使用ARP欺騙工具後,在MetasploitableUbuntu虛擬機器上ping Win2kServer虛擬機器,二者又恢復了正常通訊
實踐完後,刪除MetasploitableUbuntu中靶機的arp對映表:sudo arp -d 192.168.200.124
(二)ICMP重定向攻擊
輸入ifconfig,檢視SeedUbuntu的IP地址
在SEEDUbuntu上ping Win2k檢查連通性
輸入netstat -rn檢視受害主機的路由表資訊,可知,正常通訊時,閘道器是192.168.200.1
在攻擊機Kali上使用netwox中的86號工具偽造重定向資料包,首先嗅探鏈路中所有來自SEEDUbuntu的TCP資料包,然後kali就以step1中閘道器的名義向SEEDUbuntu傳送ICMP重定向包,使得SEEDUbuntu重定向以192.168.19.67作為閘道器,指令是 netwox 86 -f "host 192.168.200.7" -g 192.168.200.4 -i 192.168.200.1:
再在SEEDUbuntu上ping Win2k,發現有redirect重定向資料,且重定向ip地址為kali的ip——192.168.200.4,可知SEEDUbuntu已經不能與之前的閘道器正常通訊
在kali上開啟wireshark,並選擇eth0,可以監聽到Kali傳送給SEEDUbuntu的ICMP重定向資料包
在kali按Ctrl+c停止使用ICMP重定向攻擊工具後,再在SEEDUbuntu中pingWin2k,可以正常ping通
(三)SYN Flood攻擊
檢查SEEDUbuntu能否與MetasploitableUbuntu進行正常telnet連線,指令是:telnet ip地址
在攻擊機Kali上使用netwox中的76號工具對MetasploitableUbuntu展開SYN Flood攻擊,指令是 :sudo netwox 76 -i 192.168.200.123 -p 23。這裡的ip地址是靶機的,76代表使用netwox的76號工具,-p 23指定埠為23號
開啟kali的wireshark,發現攻擊機向靶機發送了大量的虛假 IP 發出的 SYN 連線請求,這些虛假的連線請求沒有 MAC 地址,無法溯源攻擊者的真實身份。
(四)TCP RST攻擊
檢查SEEDUbuntu能否與MetasploitableUbuntu進行正常telnet連線,指令是:telnet ip地址
在攻擊機Kali上使用netwox中的78號工具對MetasploitableUbuntu展開TCP RST攻擊,指令是:netwox 78 -i 192.168.200.123
再檢查SEEDUbuntu能否與MetasploitableUbuntu進行正常telnet連線,發現已經不能。
在kali輸入Ctrl+c中斷開攻擊,再在SEEDUbuntu中嘗試與MetasploitableUbuntu進行telnet連線,發現成功連線。
(五)TCP會話劫持攻擊
在kali中使用指令sudo ettercap -G開啟攻擊工具ettercap,點選右上角的鉤鉤,accept並進入到操作介面:
點選勾之後的介面如下圖
點選Host List,檢視一下MetasploitableUbuntu與SEEDUbuntu的ip是否都在列表裡,發現並不在列表裡。
於是點選scan for hosts進行搜尋
然後將 MetasploitableUbuntu設定為target1,將SEEDUbuntu設定為target2
點選MITM Menu->ARP poisoning,然後點選OK,開始攻擊,下方顯示框裡也表明此時的受害機是MetasploitableUbuntu與SEEDUbuntu:
在SEEDUbuntu主機上嘗試與MetasploitableUbuntu進行telnet連線並進行使用者登入,該使用者登入過程會被嗅探攻擊:
回到ettercap工具,點選Ettercap Menu->View->Connections檢視連線情況,開啟後能夠看到SEEDUbuntu登入MetasploitableUbuntu使用的使用者名稱和密碼:
在SEEDUbuntu中嘗試與MetasploitableUbuntu進行telnet連線
開啟kali攻擊機中的wireshark,選擇eth0,並篩選telnet。
在SEEDUbuntu攻擊機建立的telnet連線中輸入ls,在kali攻擊機的wireshark中即可捕獲到資訊。
雙擊開啟捕獲的最後一個數據報,並開啟Transmission Control Protocol選項,檢視該資料包源埠、目的埠、Next Seq Num和ACK值等資訊。
在kali命令視窗中輸入指令netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.7 --ip4-dst 192.168.200.123 --tcp-src 38021 --tcp-dst 23 --tcp-seqnum 5 --tcp-acknum 44 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data 6869,在kali攻擊機中使用netwox的40號工具偽造SEEDUbuntu靶機給MetasploitableUbuntu靶機發一個tcp包,傳送成功後,原來的SEEDUbuntu靶機就會失去連線,Kali攻擊機會被靶機MetaSploitable會把當作訪問者,實現TCP會話劫持。
開啟kali攻擊中的wireshark,篩選tcp。資料報中篩選到TCP Dup的資料報,TCP會話劫持攻擊成功。
三、學習中遇到的問題及解決
問題:在(五)中的一步kali視窗中輸入netwox 40那一步長命令時,忘記進入root模式,出現了not supported的錯誤提醒。
解決辦法:進入root模式之後再輸入命令則成功執行。
四、實踐總結
1、通過這次實驗,我對網路攻防的知識掌握地比之前更為全面與熟練,知道了如何進行TCP/IP協議棧的五種典型攻擊並動手操作,雖然過程比較費時,但是對我知識的掌握以及動手動腦能力都有一定提升,對虛擬機器的一些操作也更加得心應手,對wireshark的分析更能看懂了一點,雖然還有些原理不是很清楚,但相信在未來的實踐中會更加明白的。
2、因為實驗比較瑣碎,通過這次實驗大大增加了自己的耐心,認識到只有腳踏實地一步一步才能最終得到理想結果,不僅做實驗是這樣,生活中的每一件事都是這樣。