20212903 2021-2022-2 《網路攻防實踐》實踐四報告
20212903 2021-2022-2 《網路攻防實踐》實踐四報告
1.實踐內容
TCP/IP網路協議棧安全缺陷:
- 網路介面層:乙太網協議,當網路介面處於混雜模式可以直接嗅探並截獲資料包,同時缺乏對MAC地址源的身份驗證機制,實現MAC地址欺騙。
- 互聯層:IP協議只根據目的地址進行轉發,不檢查源IP地址是否真實有效,容易遭到IP地址欺騙。同時還包括源路由濫用、IP分片攻擊,以及ARP欺騙、ICMP重定向、Smurf攻擊等。
- 傳輸層:TCP建立會話之後的連線過程中,非常容易遭受偽造和欺騙攻擊,攻擊者可以進行TCP RST攻擊直接中斷會話過程。同時TCP的三次握手過程存在設計缺陷,攻擊者可以進行SYN泛洪攻擊。
- 應用層:一些流行的應用層協議HTTP、FTP、POP3/SMTP、 DNS等均缺乏安全設計。
網路層攻擊及防範措施
IP源地址欺騙
- 原理:只使用資料包中的目標地址進行路由轉發,而不對源地址進行真實性的驗證。
- 攻擊過程:
- 對受信任的主機進行拒絕服務攻擊
- 對目標主機的TCP初始序列號(ISN)進行取樣和猜測
- 偽造源地址為受信任的主機IP的SYN資料包傳送給主機
- 等待目標主機將SYN/ACK包發給已經癱瘓的受信任的主機
- 再次偽裝成被信任的目標主機發送ACK包、建立連線。
- 攻擊工具:netwox、wireshark、nmap
- 防範措施:使用隨機化的初試序列、使用網路層安全傳輸協議、避免採用基於IP地址的信任策略、在路由器和閘道器上實施包過濾。
ARP欺騙攻擊
- 原理:ARP協議在設計時認為區域網內部的所有使用者都是可信的,這使得ARP快取非常容易被注入偽造的IP地址到MAC地址的對映關係。
- 攻擊過程:
- 源節點A傳送資料包給目的節點B時,會通過ARP協議在區域網段廣播ARP請求包,詢問節點B的IP地址所對映的MAC地址。
- 攻擊節點C說IP目標IP地址所對映的MAC地址是他自己,並不斷地向源節點發送ARP響應包。
- 由於攻擊節點C不斷地傳送響應包,這樣源節點上會強制以C傳送響應包中的資訊來更新ARP快取。
- 當源節點A要再次傳送資料包到節點B時,直接將資料包傳送到C對應的MAC地址,即攻擊節點C,這樣C就通過欺騙假冒了目的節點B。
- 如果ARP欺騙攻擊的是閘道器節點,將導致整個區域網所有節點經過網關出入的資料包都會首先通過攻擊節點,可能被嗅探、監聽和惡意修改。
- 攻擊工具:DSniff中的Arpspoof、arpison、Ettercap、Netwox。
- 防範措施:靜態繫結關鍵主機的IP地址和MAC地址對映關係、使用相應的ARP防範工具、使用虛擬子網細分網路拓撲、加密傳輸。
ICMP路由器重定向攻擊
- 原理:利用ICMP路由重定向報文改變主機路由表,向目標主機發送重定向訊息,偽裝成路由器,使得目標機器的資料報文傳送至攻擊機從而加強監聽。
- 攻擊過程:
- 攻擊節點利用IP源地址欺騙技術,冒充閘道器IP地址,向被攻擊節點發送ICMP重定向報文,並將指定的新路由器IP地址設定為攻擊節點。
- 被攻擊節點收到報文後,進行限制條件檢查,由於該報文並不違背限制條件,因此將被接收,被攻擊節點選擇攻擊節點作為其新的路由器。
- 攻擊節點可以可以開啟路由轉發,充當中間人,對被攻擊節點的通訊進行全程嗅探監聽,達到ARP欺騙類似的攻擊效果。
- 在轉發過程中,根據ICMP路由重定向機制的設計原理,攻擊節點協議棧可能會向攻擊節點發送一個ICMP重定向報文,指定原先閘道器為新路由器,將欺騙路由路徑還原至原先狀態。
- 工具:netwox
- 防範措施:根據型別過濾一些ICMP資料包、設定防火牆過濾、對ICMP重定向報文判斷是不是來自本地路由器的
傳輸層協議攻擊及防範措施
TCP RST攻擊
- 原理:TCP協議頭有一個reset,該標誌位置為1,接收該資料包的主機即將斷開這個TCP會話連線。tcp重置報文就是直接關閉掉一個TCP會話連線。
- 攻擊過程:
- 攻擊主機C可以通過嗅探方式監視通訊雙方A、B之間的TCP連線。
- 在獲得源、目標IP地址及埠、序列號之後,接可以結合IP源地址欺騙技術偽裝成通訊一方,傳送TCP重置報文給通訊另一方。
- 在確保埠號一致及序列號落入TCP造成通訊雙方正常網路通訊的中斷,達到拒絕服務的效果。
- 工具:netwox
TCP會話劫持攻擊
- 原理:TCP會話劫持是劫持通訊雙方已經建立的TCP會話連線,假冒其中一方的身份,與另一方進行進一步通訊。其中最核心的就是通過TCP對會話通訊方的驗證。
- 攻擊過程:
- victim主機與telnet伺服器進行連線,並通過身份認證建立起會話。
- telnet伺服器將會向victim傳送響應包,幷包含伺服器當前序列號(
SVR_SEQ
)以及期望客戶端傳送的下一個序列號(SVR_ACK
)。 - 攻擊者通過ARP欺騙實施中間人攻擊,可以嗅探獲得victim和telnet伺服器間的通訊內容,然後假冒victim的IP地址及身份,向talent伺服器傳送資料包,聲稱自己是victim。
- 攻擊者傳送資料包中的序列號必須滿足條件:
SVR_ACK<=CLT_SEQ<=SVR_ACK+SVR_WND
。 - victim仍然會繼續持續talent伺服器之間的連線會話,但是由於與telnet伺服器之間的ACK值互相不匹配出現AC風暴。
- 防範措施:禁用主機上的源路由、採用靜態繫結IP-MAC對映表以及避免ARP欺騙、引用和過濾ICMP重定向報文
TCP SYN Flood拒絕服務攻擊
- 原理:基於TCP三次握手的缺陷,向目標主機發送大量的偽造源地址的SYN連線請求,消耗目標主機的連線佇列資源,從而無法正常服務。
- 攻擊過程:
- 在TCP SYN Flood攻擊中,攻擊主機向受害主機發送大量偽造源地址的TCP SYN報文。
- 受害主機分配必要的資源,然後向源地址返回SYN/ACK包,並等待源端返回ACK包。
- 如果偽造的源地址主機活躍,將會返回一個RST包直接關閉連線,但大部分偽造源地址是非活躍的,永遠不會返回ACK報文,受害主機繼續傳送SYN+ACK包,當半開連線報文填滿,伺服器也就拒絕新的連線。
- 防範措施:SYN-Cookie技術(在連線資訊未完全到達前不進行資源的分配);防火牆地址狀態監控技術(將到目標伺服器的TCP連線狀態分為NEW、GOOD、BAD)。
2.實踐過程
在網路攻防實驗環境中完成TCP/IP協議棧重點協議的攻擊實驗,包括ARP快取欺騙攻擊、ICMP重定向攻擊、SYN Flood攻擊、TCP RST攻擊、TCP會話劫持攻擊。
TCP/IP協議棧重點協議的攻擊
1、選取kali虛擬機器作為攻擊機,選取MetaSploitable_ubuntu和SEED_Ubuntu作為正常通訊機。
首先將三臺虛擬機器均改橋接模式,並檢視三臺虛擬機器的IP地址
kali:IP地址為192.168.11.36
MAC地址為:00:0c:29:a4:e2:c4
SEED_Ubuntu:IP地址為192.168.11.18
MAC地址為:00:0c:29:4e:5a:77
MetaSploitable_ubuntu:IP地址為192.168.11.191
MAC地址為:00:0c:29:fb:dd:0a
2、利用SEED_Ubuntu虛擬機器ping
MetaSploitable_ubuntu虛擬機器
利用arp -a
檢視arp快取表,通過結果可以看到IP地址和MAC均無誤
3、在kali虛擬機器上執行netwox 80 -e 00:0c:29:a4:e2:c4 -i 192.168.11.191
(80
是指netwox的80號工具,第一個為攻擊機Kali放入MAC地址,第二個為MetaSploitable_ubuntu的IP地址,執行後就在區域網內廣播這條命令。)
4、在SEED_Ubuntu虛擬機器中利用命令arp -a
再次檢視arp快取表,可以發現這時192.168.11.191
對應的IP地址應該改為了KALI的MAC地址
5、進行驗證,需要Kali虛擬機器能夠監聽SEED_Ubuntu和MetaSploitable_ubuntu的通訊,為了能夠監聽,我們需要將MetaSploitable_ubuntu中的arp快取表中SEED_Ubuntu虛擬機器IP地址對應的MAC地址改為Kali虛擬機器的MAC地址,因此執行命令netwox 80 -e 00:0c:29:a4:e2:c4 -i 192.168.11.18
在MetaSploitable_ubuntu中檢視arp快取表,可以看到已經成功更改MAC地址
6、在Kali虛擬機器中開啟wireshark,並在SEED_Ubuntu虛擬機器中利用命令ping 192.168.11.191
利用ip.src==192.168.11.191 or ip.dst==192.168.11.191
在wireshark中過濾資料包,從圖中可以看到,在kali上抓到了SEED_Ubuntu虛擬機器ping
MetaSploitable_ubuntu虛擬機器的ICMP資料包等
ICMP重定向攻擊
1、依舊利用上面三臺虛擬機器,在SEED_Ubuntu虛擬機器使用命令ping baidu.com
在wireshark中可以抓到ICMP資料包
2、 在Kali主機上執行命令netwox 86 -f "host 192.168.11.18" -g 92.168.11.36 -i 192.168.11.1
即嗅探到192.168.11.18
(SEED_Ubuntu)的資料包時,以192.168.11.1
的名義傳送ICMP重定向報文,使192.168.11.36
(Kali)成為其預設路由,然後觀察Wireshark資料包的情況。
3、在SEED_Ubuntu中再次ping
百度
在Kali中的wireshark可以看到 其訪問百度的資料包已經被重定向到192.168.11.191
從裡之後兩個實驗由於是在宿舍中做的,虛擬機器進行了重啟,其IP地址也被重新的分配,因此,後面實驗中的三臺虛擬機器的IP地址以及MAC地址如下:
虛擬機器名稱 | IP地址 | MAC地址 |
---|---|---|
kali虛擬機器 | 192.168.1.104 | 00:0c:29:a4:e2:c4 |
MetaSploitable_ubuntu | 192.168.1.103 | 00:0c:29:fb:dd:0a |
SEED_Ubuntu | 192.168.1.106 | 00:0c:29:4e:5a:77 |
SYN Flood攻擊
1、 在Kali上利用netwox的76
號工具對靶機的23
號埠進行SYN Flood攻擊netwox 76 -i 192.168.1.103 -p 23
。
2、通過wireshark可以看到,Kali虛擬機器向192.168.1.103
傳送了大量SYN標誌的TCP資料包,同時通過右上角的流量也可以看到,正在
TCP RST攻擊
1、使用SEED Ubuntu向MetaSploitable發起登陸telnet 192.168.1.106
,輸入使用者名稱密碼
2、在Kali上利用netwox的78
號工具對靶機進行TCP RST攻擊netwox 78 -i 192.168.1.106
3、在wireshark中可以看到Kali虛擬機器向192.168.1.106
傳送了大量的RST標誌的TCP資料包
4、因為大量RST標誌的TCP資料包,SEED Ubuntu向MetaSploitable發起的telnet連線被拒絕了
TCP會話劫持攻擊
1、本次攻擊使用的工具為ettercap,在kali中使用sudo ettercap -G
開啟圖形化介面進行操作
2、開啟Ettercap Menu->Hosts->Host List
將SEED Ubuntu和MetaSploitable設定為目標1和目標2
3、開啟MITM Menu->ARP poisoning
,出現彈窗後點擊OK
4、點選Ettercap Menu->View->Connections
檢視連線
5、使用SEED Ubuntu向MetaSploitable發起登陸telnet 192.168.1.106
進行telnet連線
6、可以在Ettercap中看到SEED Ubuntu與MetaSploitable的Telnet連線
點選開啟後發現可以看到賬號和密碼,其中還有輸錯的一次密碼
3.學習中遇到的問題及解決
- 問題1:kali中還沒有安裝netwox,無法使用netwox命令
- 問題1解決方案:輸入netwox命令後,會自動彈出安裝申請,輸入y即可安裝netwox
- 問題2:Metasploitable_ubuntu虛擬機器的在設定完橋接模式後,其IP地址不會發生改變,與另外兩個虛擬機器沒有在同一個網段下
- 問題2解決方案:利用
sudo vim /etc/rc.local
將之前設定的靜態IP的命令ifconfig eth0 192.168.200.132 netmask 255.255.255.128 route add default gw 192.168.200.1
註釋掉,重啟虛擬機器即可。
4.實踐總結
這次實驗較為順利,其中沒有遇到什麼大的問題。通過這次實驗,學會了很多攻擊技能,同時在網路攻擊中更加深刻的理解了。
通過這幾次實驗的經歷,我越發的感覺從網際網路中搜集到自己想要的,對自己有用的資源是一項十分重要的技能