20199313 2019-2020-2 《網絡攻防實踐》第五周作業


20199313 2019-2020-2 《網絡攻防實踐》第五周作業


本博客屬於課程:《網絡攻防實踐》
本次作業:《第五周作業》
我在這個課程的目標:掌握知識與技能,增強能力和本領,提高悟性和水平。

一、知識點梳理與總結

上周回顧:
上周我們學習了TCP/IP各層的網絡安全基礎知識,以及網絡空間的常識,我們在自己搭建的屬於自己的虛擬網絡中進行各種知識、技巧的學習。
同時,我們上周對嗅探器做了全方位的學習。
接下來我們就要開始針對重要協議的攻擊展開學習。

二、網絡拓補結構

本次實驗使用的網絡拓撲結構如圖:

三、ARP緩存欺騙攻擊

1.ARP通訊協議過程

由於局域網的網絡流通不是根據IP地址進行,而是按照MAC地址進行傳輸、計算機是根據mac來識別一台機器。
區域網內A要向主機B發送報文,會查詢本地的ARP緩存表,找到B的IP地址對應的MAC地址后,就會進行數據傳輸。
如果未找到,則A廣播一個ARP請求報文(攜帶主機B的IP地址),網上所有主機包括B都收到ARP請求,但只有主機B識別自己的IP地址,於是向A主機發回一個ARP響應報文。
其中就包含有B的MAC地址,A接收到B的應答后,就會更新本地的ARP緩存。接着使用這個MAC地址發送數據(由網卡附加MAC地址)

2.實踐過程

首先查看一下自己攻擊機的IP和mac地址,如果ifconfig命令中沒有顯示HWADDR字樣的mac地址,則可以用nmcli device show eth0 命令來查看mac地址(其中eth0則是你的網卡編號)
在虛擬機中,通過fping命令,fping -g 192.168.220.1/24查看當前局域網還存在那些主機,以確定要攻擊的主機的ip地址,我們發現一共四台主機在線(ubantu、theseed、Metasploitable、用戶主機),本次我們使用ubantu來篡改theseed和Measploitable的ARP表來達到雙向監聽的效果。(其實我們可以在局域網內任意選擇兩個主機的IP來做ARP欺騙)
由於我們對局網內的主機進行了檢測,所以我們現在的ARP表應該多的一塌糊塗,這時候我們用組合命令來清除一下ARP表:
arp -n|awk '/^[1-9]/{system("arp -d "$1)}' 注意這條命令需要root權限
然后我們用ping命令來檢測和其他兩台主機的連通性,順便獲取一下他們的MAC信息,此時的ARP表就十分清爽


如何進行ARP欺騙不被發現:
開啟端口轉發:echo 1 >/proc/sys/net/ipv4/ip_forward
關閉端口轉發:echo 0 >/proc/sys/net/ipv4/ip_forward
查看端口轉發是否成功:cat /proc/sys/net/ipv4/ip_forward 如果顯示1則表示開啟成功,顯示0則開啟失敗
開啟IP轉發后 流量會經過kali的主機而后再去到目標所以這時開啟arpspoof 那么目標就不會斷網,因為流量通過了kali主機那么我們就可以攔截相關數據。
使用netwox工具偽造tcp報文,利用netwox的80工具: 80 : Periodically send ARP replies,客戶端(需要ip地址與MAC地址)與服務端(需要ip地址與MAC地址)和攻擊機(需要ip地址與MAC地址) 在同一局域網內, 攻擊機使用命令來向另一台主機發送tcp報文,來修改靶機的ARP表:netwox 80 -e "攻擊機MAC地址" -i "服務端ip地址"
這條命令被廣播之后,其他虛擬機關於靶機的IP對應mac地址的ARP表都被修改成了攻擊機的mac地址(圖一),我們接下來要做的是同時修改靶機關於網關的地址,就可以做到雙向監聽(圖二)



四、ICMP重定向攻擊

ICMP重定向報文是ICMP控制報文中的一種。在特定的情況下,當路由器檢測到一台機器使用非優化路由的時候,它會向該主機發送一個ICMP重定向報文,請求主機改變路由。路由器也會把初始數據報向它的目的地轉發。 ICMP雖然不是路由協議,但是有時它也可以指導數據包的流向(使數據流向正確的網關)。ICMP協議通過ICMP重定向數據包(類型5、代碼0:網絡重定向)達到這個目的,原理上和APR重定向很相似。

使用netwox工具偽造ICMP重定向報文,利用netwox的86工具 86 : Sniff and send ICMP4/ICMP6 redirect。使用命令:netwox 86 -f "host 192.168.220.5" -g 192.168.220.4 -i 192.168.220.1
其中-f是靶機的host,-g 是指定新的網關地址(攻擊機IP);-i是當前網關地址;也即攻擊者冒充當前網關,通知受害者修改自己的網關IP。
在圖中我們可以看到,本身應該發往網關的報文被攻擊機以網關的身份重定向到我們的攻擊機,在此我們可以獲取靶機所發出的所有報文。

五、SYN洪水攻擊

SYN Flood攻擊
Dos(Denial of Service)拒絕服務攻擊是指在特定攻擊發生后,被攻擊的對象不能及時提供應有的服務。從廣義上說,任何導致服務器不能正常提供服務的攻擊都是拒絕服務攻擊。
SYN Flood是當前最流行的拒絕服務攻擊之一,這是一種利用TCP協議缺陷,發送大量的偽造的TCP連接請求,從而使得被攻擊方資源耗盡(CPU滿負荷或內存不足)的攻擊方式。
TCP協議是基於連接的,也就是說,為了在服務端和客戶端之間傳送TCP數據,必須先建立一個虛擬電路,也就是TCP連接。
建立TCP連接的標准過程是這樣的:

第一步,請求端(客戶端)發送一個包含SYN標志的TCP報文,SYN即同步(Synchronize),同步報文會指明客戶端使用的端口以及TCP連接的初始序號;
第二步,服務器在收到客戶端的SYN報文后,將返回一個SYN+ACK的報文,表示客戶端的請求被接受,同時TCP序號被加1,ACK即確認(Acknowledgement);
第三步,客戶端也返回一個確認報文ACK給服務器端,同樣TCP序列號被加1,到此一個TCP連接完成。
以上的連接過程在TCP協議中被稱為三次握手。
問題就出在TCP連接的三次握手中,假設一個用戶向服務器發送了SYN報文后突然死機或掉線,那么服務器在發出SYN+ACK應答報文后是無法收到客戶端的ACK報文的(第三次握手無法完成),這種情況下服務器端一般會重試(再次發送SYN+ACK給客戶端)並等待一段時間后丟棄這個未完成的連接,這段時間的長度我們稱為SYN超時,一般來說這個時間是分鍾的數量級(大約為30秒-2分鍾);一個用戶出現異常導致服務器的一個線程等待1分鍾並不是什么很大的問題,但如果有一個惡意的攻擊者大量模擬這種情況,服務器端將為了維護一個非常大的半連接列表而消耗非常多的資源。實際上如果服務器的TCP/IP棧不夠強大,最后的結果往往是堆棧溢出崩潰——即使服務器端的系統足夠強大,服務器端也將忙於處理攻擊者偽造的TCP連接請求而無暇理睬客戶的正常請求(畢竟客戶端的正常請求比率非常之小),此時從正常客戶的角度看來,服務器失去響應,這種情況我們稱作:服務器端受到了SYN Flood攻擊(SYN洪水攻擊)。

使用netwox工具偽造ICMP重定向報文,利用netwox的76工具76 : Synflood 。使用命令:netwox 76 -i 192.168.220.64 -p 80
用法:netwox 76 -i ip -p port [-s spoofip]
參數:
-i | --dst-ip ip 目標IP地址
-p | --dst-port port 目標端口號
-s | --spoofip spoofip IP欺騙初始化類型
(這里我們也用ubantu用cpp實現了syn拒絕服務攻擊,附圖在后文)
使用命令:netwox 76 -i 192.168.220.64 -p 80
可以看到,我們的靶機windows xp已經卡死了(cpu占用100%),臨死前的wireshark捕獲到了大量的tcp報文

防御措施:
SYN cookie是抵抗SYN-Flooding的防御機制.
防御原理簡介:
在TCP服務器收到TCP SYN包並返回TCP SYN+ACK包時,不分配一個專門的數據區,
而是根據這個SYN包計算出一個cookie值.
在收到TCP ACK包時,TCP服務器在根據那個cookie值檢查這個TCP ACK包的合法性.
如果合法,再分配專門的數據區進行處理未來的TCP連接.

六、TCP_RST攻擊

使用netwox的78號工具對靶機進行TCP RST攻擊,強行斷開靶機的tcp鏈接。利用netwox的76工具78 : Reset every TCP packet netwox 。使用命令:netwox 78 -i 192.168.220.64
我們使用上周的talent連接紫丁香社區,此時我們的主機在和服務器之間不停的進行tcp報文的通訊,如果我們用TCP_RST,則會使鏈接立刻斷開

七、TCP會話劫持攻擊(bouns攻擊)

方法零:依據我的理解,我們只需要使用前述ARP欺騙或ICMP欺騙使得服務器和客戶端之間的通信被我們的攻擊機劫持,在此就不過多贅述有關ARP和ICMP欺騙的過程。欺騙完成后結合方法三進行會話劫持。
方法一:在seed上使用telnet登錄msfadmin,總顯示找不到鏈接,我回頭再研究一下,T.T


方法二:使用netwox的40號工具構造一個TCP數據包,來達到TCP會話劫持的效果
我們用wireshark來檢測靶機和服務器之間的tcp會話信息如圖,我們看到了源端口51268和通信端口23(telnet)以及發送的數據字符l
劫持命令如下:(需要配合方法一使用)
netwox 40 --ip4-dontfrag --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.220.5 --ip4-dst 192.168.220.7 --tcp-src 51268 --tcp-dst 23 --tcp-seqnum 55 --tcp-acknum 102 --tcp-ack --tcp-psh --tcp-window 128 --tcp-data "6c"
其中參數的意義如下:
attacker觀察數據包,依次設置參數
IP4 tos :無需設置
IP4 id :無需設置,因為報文會設置為不允許分段
IP4 dontfrag :1(不允許分段,參考報文1)
IP4 offsetfrag :0(參考報文1)
IP4 ttl :64(參考報文1)
IP4 protocol :6(參考報文1)
IP4 src :48222(參考報文1)
IP4 dst :23(參考報文1,telnet服務默認端口)
IPv4 options :無需設置(參考報文1)
TCP src :192.168.175.140
TCP dst :192.168.175.141
TCP seqnum :1137345078(參考報文2)
TCP acknum :2543750827(參考報文2)
TCP ack :1
TCP psh :1(表示有data數據傳輸)
TCP window :128(筆者隨意設置的)
`tcp-data :"6c"(6c是l的16進制下字符l的Ascii碼)
在第四張圖中,不管我怎么按鍵盤,我的seed都不會有反應(原因在第五張圖,產生了ack風暴)
可以看到,我門成功劫持了會話,並且和服務器建立了通信




八、附錄(netwox功能表)

1:顯示網絡配置
2:顯示調試信息
3:顯示有關IP地址或主機名的信息
4:顯示有關以太網地址的信息
5:獲取IP列表中計算機的以太網地址
6:顯示如何訪問IP地址
7:嗅
8:嗅探並顯示打開的端口
9:嗅探和顯示以太網地址
10:嗅探和顯示網絡統計信息
11:嗅探並驗證校驗和
12:顯示要用於netbox參數的值
13:為每個設備獲取嗅探和欺騙的DLT類型
14:偽造唱片
15:顯示記錄的內容
16:轉換記錄
17:重新計算記錄中數據包的校驗和
18:重新組合記錄的IP數據包,並重新排序TCP流
19:從記錄中提取一系列數據包
20:從記錄中搜索數據包中的字符串
21:轉換數字
22:轉換字符串
23:顯示ASCII表
24:轉換IP地址范圍
25:測試目錄是否安全
26:轉儲文件
27:計算文件的MD5
28:將二進制文件轉換為可讀和可編輯的文件
29:將可讀和可編輯的文件轉換為二進制文件
30:將文件從unix轉換為dos
31:將文件從dos轉換為unix
32:欺騙以太網數據包
33:欺騙EthernetArp包
34:欺騙以太網4數據包
35:欺騙以太網4 udp數據包
36:欺騙以太網4 TCP數據包
37:欺騙以太網4 ICMP4數據包
38:欺騙Ip4包
39:欺騙Ip4Udp數據包
40:欺騙Ip4Tcp數據包
41:欺騙Ip4Icmp4數據包
42:包樣本的欺騙:片段
43:包樣本欺騙:片段,ip4opt:noop
44:數據包樣本欺騙:片段,ip4opt:rr
45:數據包樣本欺騙:片段,ip4opt:lsrr
46:數據包樣本欺騙:片段,ip4opt:ts
47:數據包樣本欺騙:片段,ip4opt:ipts
48:數據包樣本欺騙:片段,ip4opt:ippts
49:Ping ICMP
50:Ping ICMP(EthIP欺騙)
51:Ping TCP
52:Ping TCP(EthIp欺騙)
53:Ping-UDP
54:Ping-UDP(EthIp欺騙)
55:平ARP
56:Ping ARP(EthIp欺騙)
57:跟蹤路由ICMP
58:Traceroute ICMP(EthIP欺騙)
59:跟蹤路由TCP
60:Traceroute TCP(EthIp欺騙)
61:Traceroute UDP
62:Traceroute UDP(EthIp欺騙)
63:指定IP協議上的Traceroute
64:指定IP協議上的Traceroute(EthIp欺騙)
65:掃描ICMP
66:掃描ICMP(EthIP欺騙)
67:掃描TCP
68:掃描TCP(EthIp欺騙)
69:掃描UDP
70:掃描UDP(EthIp欺騙)
71:掃描ARP
72:掃描ARP(EthIp欺騙)
73:模擬多台計算機(arp和ping)的存在
74:用隨機碎片淹沒宿主
75:使用大量以太網數據包填充交換機表
76:綜合洪水
77:檢查seqnum是否可預測
78:重置每個TCP數據包
79:確認每個TCP SYN
80:定期發送ARP回復
81:發送ICMP4時間戳
82:嗅探並發送無法到達的ICMP4/ICMP6目標
83:超過嗅探和發送ICMP4/ICMP6時間
84:嗅探和發送ICMP4/ICMP6參數問題
85:嗅探並發送ICMP4源淬火
86:嗅探並發送ICMP4/ICMP6重定向
87:TCP客戶端
88:UDP客戶端
89:TCP服務器
90:UDP服務器
91:TCP服務器多客戶端
92:UDP服務器多客戶端
93:TCP遠程管理服務器
94:TCP遠程管理客戶端(exec)
95:TCP遠程管理客戶端(獲取文件)
96:TCP遠程管理客戶端(put文件)
97:系統日志客戶端
98:用syslog消息淹沒主機
99:TELNET客戶端
100:TELNET客戶端執行一個或多個命令
101:暴力telnet客戶端
102:查詢DNS服務器
103:獲取綁定DNS服務器的版本
104:DNS服務器總是回答相同的值
105:嗅探並發送DNS答案
106:發送電子郵件
107:發布新聞組消息
108:列出服務器上可用的新聞組
109:下載一條或多條新聞組郵件
110:以太網網橋限制流
111:FTP列出目錄
112:FTP客戶端:獲取文件
113:FTP客戶端:放置文件
114:FTP客戶端:刪除文件
115:FTP client:遞歸獲取目錄
116:FTP client:遞歸放置目錄
117:FTP客戶端:遞歸刪除目錄
118:HTTP獲取
119:HTTP頭
120:HTTP帖子
121:HTTP輸入
122:HTTP刪除
123:HTTP跟蹤
124:HTTP選項
125:HTTP服務器
126:HTTP遠程管理服務器
127:使用異或加密/解密文件
128:將文件分成小塊
129:重新組合文件塊
130:暴力ftp客戶端
131:暴力http客戶端(站點密碼)
132:強制http客戶端(代理密碼)
133:轉換url/uri
134:在HMTL文件中獲取url/uri
135:將HMTL文件中的url/uri轉換為絕對url
136:Web下載(http://。。。或ftp://…)
137:創建工具138的示例配置文件
138:WebSpider(使用137工具創建的配置文件)
139:命令行上的WebSpider(完全遞歸)
140:欺騙以太網6數據包
141:欺騙以太網P6UDP數據包
142:欺騙以太網P6TCP數據包
143:欺騙以太網P6ICMP6數據包
144:欺騙Ip6數據包
145:欺騙Ip6Udp數據包
146:欺騙Ip6Tcp數據包
147:欺騙Ip6Icmp6數據包
148:Ping ICMP6鄰居發現
149:Ping ICMP6鄰居發現(EthIp欺騙)
150:掃描ICMP6鄰居發現
151:掃描ICMP6鄰居發現(EthIp欺騙)
152:交互式IRC客戶端
153:IRC客戶端列表頻道
154:IRC客戶端偵聽頻道
155:網絡性能測量:TCP服務器
156:網絡性能測量:TCP客戶端
157:網絡性能度量:UDP服務器
158:網絡性能度量:UDP客戶端
159:SNMP獲取
160:SNMP漫游
161:SNMP陷阱
162:SNMP Trap2
163:SNMP通知
164:SNMP集
165:TFTP客戶端:獲取文件
166:TFTP客戶端:放置文件
167:TFTP服務器
168:FTP服務器
169:顯示簡單的網絡配置,易於解析
170:TELNET服務器
171:DHCP客戶端
172:新聞組的列表文章范圍
173:下載一條或多條新聞組郵件的概述
174:FTP客戶端:獲取文件並檢查其MD5
175:Web下載(http://。。。或ftp://…)並檢查其MD5
176:TFTP客戶端:獲取一個文件並檢查其MD5
177:檢查SMTP服務器是否啟動
178:檢查IRC服務器是否啟動
179:DHCP客戶端請求通知
180:SNTP客戶端獲取時間
181:SNTP服務器
182:獲取web文件的大小(http://。。。或ftp://…)
183:TCP中繼
184:UDP中繼
185:TCP多客戶端中繼
186:毫秒睡眠
187:顯示日期和時間
188:系統日志服務器
189:SMTP服務器
190:煮咖啡
191:生成密碼(英語,
法語、西班牙語)
192:包樣本欺騙:片段,ip4opt:ssrr
193:IDENT client請求有關打開會話的信息
194:IDENT client創建會話並請求其信息
195:標識服務器
196:誰是客戶
197:誰是客戶端猜測服務器
198:SMB/CIFS客戶端:列出共享
199:SMB/CIFS客戶端:創建目錄
200:SMB/CIFS客戶端:刪除目錄
201:SMB/CIFS客戶端:重命名目錄
202:SMB/CIFS client:列出目錄的內容
203:SMB/CIFS客戶端:刪除文件
204:SMB/CIFS客戶端:重命名文件
205:SMB/CIFS客戶端:獲取文件
206:SMB/CIFS客戶端:放置文件
207:SMB/CIFS客戶端:遞歸獲取目錄
208:SMB/CIFS客戶端:遞歸地放置目錄
209:SMB/CIFS客戶端:遞歸刪除目錄
210:命令行上的WebSpider(保持在同一目錄中)
211:網絡蜘蛛:將本地下載的文件名轉換為其原始url
212:Web spider:將url轉換為其本地下載的文件名
213:顯示IP地址列表
214:Traceroute發現:網絡拓撲圖
215:Traceroute發現(EthIp欺騙)
216:嗶聲
217:SMB/CIFS服務器
218:netbox內部驗證套件
219:計算文件的加密哈希(md5、sha等)
220:將二進制文件轉換為base64編碼的文件
221:將base64編碼的文件轉換為二進制文件
222:在HMTL文件中,禁止指向本地url的鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM