TCP/IP網絡協議攻擊


kali視頻學習請看

http://www.cnblogs.com/lidong20179210/p/8909569.htmlhtml


這部分涉及:

  • ARP緩存欺騙攻擊
  • ICMP重定向攻擊
  • SYN FLOOD攻擊
  • TCP RST攻擊
  • TCP會話劫持攻擊
  • Netwox原始報文僞造工具

網絡層攻擊:

(1) ARP 緩存欺騙

ARP 緩存是 ARP 協議的重要組成部分。當使用 ARP 協議解析了某個 MAC 地址和 IP地址的映射關係,該映射便會被緩存下來。所以就不用再使用 ARP 協議來解析已存在緩存中的映射關係。可是由於 ARP 協議是無身份認證的,因此 ARP 緩存很容易被惡意的虛假ARP 數據報實施欺騙。這樣的攻擊被稱爲 ARP 緩存欺騙(或 ARP 緩存中毒)。在這樣的攻擊中,攻擊者經過僞造 ARP 數據報來欺騙被攻擊主機的電腦使之緩存錯誤的 MAC 地址和 IP 地址映射。因攻擊者的動機不一樣,攻擊的結果也有不少。例如,攻擊者可使被攻擊主機的默認網關IP 映射到一個不存在的 MAC 地址達到 DoS 攻擊,攻擊者也可使被攻擊主機的通訊重定向至其餘機器等等。你的任務是演示 ARP 緩存欺騙攻擊是怎麼工做的。任務中一些有用的命令: linux 下可使用 arp 來檢查當前的 ARP 緩存。

linux

  • ARP欺騙技術的應用場景
     利用ARP欺騙進行交換網絡中的嗅探
     ARP欺騙構造中間人攻擊,從而實施TCP會話劫持
     ARP病毒
     ARP欺騙掛馬ubuntu

  • ARP欺騙攻擊防範措施
     靜態綁定關鍵主機的IP地址與MAC地址映射關係
     網關/關鍵服務器
     "arp -s IP地址 MAC地址 類型"
     使用相應的ARP防範工具
     ARP防火牆
     使用VLAN虛擬子網細分網絡拓撲
     加密傳輸數據以下降ARP欺騙攻擊的危害後果瀏覽器

實踐

ARP欺騙

攻擊機的ip後三位爲130,靶機A爲133,靶機B爲134,攻擊機經過netwox工具僞造arp報文,使靶機B相信靶機A的ip對應的MAC地址爲僞造的MAC地址,這個MAC地址能夠是攻擊機的物理地址,我在僞造的物理地址中嵌入了個人學號。
使用netwox的80號工具攻擊,命令如圖,
緩存

攻擊結果如圖,安全

(2) ICMP 重定向攻擊

ICMP 重定向報文是路由器爲網絡中的機器提供最新的路由信息以達到最短路由而使用的。當主機收到一個 ICMP 重定向報文就會根據報文來更新本身的路由表。因爲缺少確認機制,若是攻擊者想要使被攻擊主機使用特定路由,他們只要向被攻擊主機發送欺騙性的ICMP 重定向報文,使它改變路由表便可。你的任務是演示 ICMP 重定向攻擊是如何工做的,並描述一下觀察到的結果。在 linux可使用 route 命令檢查路由表。
服務器

  • ICMP路由重定向攻擊防範
     根據類型過濾一些ICMP數據包
     設置防火牆過濾
     對於ICMP重定向報文判斷是否是來自本地路由器cookie

    實踐

首先查看靶機A的ip/mac地址,攻擊機B的ip/mac地址


而後記錄下此時A的路由表狀態
咱們打開wireshark,輸入判斷條件

(tcp or arp or icmp) and ip.addr == 222.28.136.122網絡

準備待命抓包。
這時咱們開啓netwox進行ICMP路由重定向,使用第86號工具,按照工具提示進行數據包的篡改,以下圖

這句話的意思是,嗅探網絡中來自主機222.28.136.122的TCP包,一旦出現,就以網關222.28.136.254的名義,向數據包的源地址發送一個ICMP重定向報文,使之使用222.28.136.223做爲默認的路由。

回車以後,咱們開啓wireshark,用靶機ping baidu.com,能夠看到wireshark馬上截獲了靶機發往目標服務器的的相關報文,以下圖所示:
tcp

而後這時咱們再查看靶機的路由表,和以前的相對比,靶機已經錯誤的將網關更改成了咱們的攻擊機A的IP地址

傳輸層攻擊:

(1) SYN flood 攻擊

SYN flood攻擊是 DoS 攻擊的一種形式,攻擊者向被攻擊主機的 TCP 端口大量發送 SYN請求包,但不去完成 TCP 的」三次握手」的過程,例如攻擊使用一個假的 IP 地址,或只是簡單地再也不繼續創建 TCP 鏈接的過程,這都使被攻擊主機處於」半鏈接」狀態(即在」三次握手」過程當中,有了前兩次握手,SYN 包和 SYN-ACK 包的傳輸,但沒有最後一次 ACK 包的確認)。被攻擊主機的主機會使用一個隊列來保存這種半鏈接的狀態,當這個隊列存儲空間滿了的時候,目標主機便沒法再接受任何其它鏈接。這一隊列的空間大小事實上是一個系統變量,在Linux 中,能夠這樣查看它的大小:

# sysctl –q net.ipv4.tcp_max_syn_backlog

咱們還可使用」netstat -na」命令去檢查隊列的使用狀況。處於半鏈接的鏈接狀態被標示爲」SYN-RECV」,完成了」三次握手」的鏈接被標示爲」ESTABLISHED」.在這一任務中,你須要演示 SYN flood 攻擊。你可使用 Netwox 去實施攻擊,並使用嗅探器來獲取數據包。攻擊實施的過程當中,在被攻擊主機上運行」netstat -na」命令去觀察受攻擊的狀況。請描述你的攻擊是否成功。
SYN Cookie 保護機制:若是你的攻擊看起來並不成功,你能夠檢查一下目標主機的 SYN Cookie 機制是否被開啓。SYN cookie 是針對 SYN flood 攻擊的一種保護機制。這一機制會在探測到 SYN flood 攻擊時開始生效。
你可使用 sysctl 命令去打開或關閉這一機制:

# sysctl -a | grep cookie (查看 SYN cookie 的當前狀態)
# sysctl -w net.ipv4.tcp_syncookies=0 (關閉 SYN cookie)
# sysctl –w net.ipv4.tcp_syncookies=1 (打開 SYN cookie)

請分別在 SYN cookie 機制打開和關閉兩種狀況下實施你的 SYN flood 攻擊,並比較結果。請在你的報告中嘗試描述爲何 SYN cookie 能有效地抵禦你的攻擊。 (若是課堂上沒有講解 SYN cookie 的原理,你能夠從網絡上找到相關的信息)

實踐

SYN FLOOD攻擊

使用主機C對A實施攻擊,形成FLOOD攻擊,使用以下命令

可利用Wireshark工具抓取數據包查看:

能夠看出C向A發送了大量的數據包,形成了SYN FLOOD攻擊。

(2) TCP RST 攻擊

  • TCP RST攻擊是一種中斷攻擊
     僞造TCP重置報文攻擊(spoofed TCP reset packet)
     TCP重置報文將直接關閉掉一個TCP會話鏈接
     限制條件:通信目標方接受TCP包
     通信源IP地址及端口號一致
     序列號(Seq)落入TCP窗口以內
     嗅探監視通訊雙方的TCP鏈接,得到源、目標IP地址及端口
     結合IP源地址欺騙技術假裝成通訊一方,發送TCP重置報文給通訊另外一方
    應用場景:惡意拒絕服務攻擊、重置入侵鏈接、 GFW
     GFW: 「net::ERR_CONNECTION_RESET
    你須要實施 TCP RST 攻擊。這裏推薦一個較爲有趣的實驗方法:對一個視頻流的 TCP鏈接實施攻擊。大多數的視頻分享網站會經過 TCP 鏈接來傳輸數據,你的目標是干擾被攻擊主機與視頻源之間的 TCP 鏈接(已經假定你和被攻擊主機在同一局域網內)
    訪問視頻網站並觀看視頻的過程通常以下:
    被攻擊者使用瀏覽器訪問一個視頻網站,並選擇播放某個視頻
    大多數狀況下視頻的完整內容被存放在一個不一樣的主機上,該主機接下來會與被攻擊主機創建起 TCP 鏈接,從而使被攻擊主機可以接收視頻的內容。你的任務是經過破壞上述 TCP 鏈接來干擾視頻流的傳輸。你可讓被攻擊主機試圖去訪問一個假的 IP 地址或是攻擊主機的 IP 地址來獲取視頻(從而它沒法成功得到視頻內容),但請注意,攻擊的目標應該是被攻擊主機,這是受你控制的一臺主機,不要針對提供視頻的主機(不受你控制的主機)。你的攻擊實驗應出於學習目的而不要形成真正的危害。

實踐

TCP RST攻擊也稱僞造TCP重置報文攻擊,它經過更改TCP協議頭的標誌位中的「reset」比特位(0變1),來關閉掉一個TCP會話鏈接。

首先,A爲kali攻擊機,B爲靶機(win2000),C爲服務器(ubuntu)。其中服務器的IP地址以下

咱們用靶機B創建和C的23端口的鏈接,利用telnet命令

這時,咱們啓動A中的wireshark,進行數據包的監視:
使用ip。Addr==222.28.136.226and tcp.port==23過濾
打開NETWOX,調用第78號工具,

這時,咱們再看B的鏈接界面

而wireshark當中也捕捉到了斷開鏈接的數據包

說明此次RST攻擊成功

(3) TCP 會話劫持 (bonus)

TCP 會話劫持的目標是劫持一個已經存在於兩臺被攻擊主機之間的 TCP 鏈接,在會話
中注入惡意的內容。若是這是一個 telnet 會話鏈接,攻擊者能夠注入一些惡意的命令,使得被攻擊主機運行這些惡意的命令。在這個任務中,咱們使用 telnet 做爲例子,而且仍然假定攻擊機與目標主機在同一個局域網內。

  • TCP會話劫持
     結合嗅探、欺騙技術
     中間人攻擊:注射額外信息,暗中改變通訊
     計算出正確的seq ackseq便可
     TCP會話攻擊工具 Juggernaut、 Hunt、 TTY watcher、IP watcher

  • 如何防止會話劫持
     避免攻擊者成爲通訊雙方的中間人
     部署交換式網絡,用交換機代替集線器
     禁用主機上的源路由
     採用靜態綁定IP-MAC映射表以免ARP欺
     過濾ICMP重定向報文
  • TCP會話加密(IPsec協議)
     避免了攻擊者在獲得傳輸層的端口及序列號等關鍵信息防火牆配置
     限制儘量少許的外部許可鏈接的IP地址檢測
     ACK風暴: ACK包的數量明顯增長

關於 wireshark 的一些提示:若是你使用 wireshark 進行監聽,請注意在默認狀況下wireshark 顯示的 TCP 鏈接的序列號(sequence number)是相對序列號(relative sequence),也就是當前序列號減去 TCP 鏈接創建之初的起始序列號,要查看真實的」絕對」序列號,右鍵點擊協議內容,在」protocol preference」菜單中去掉」Relative Sequence Number and Window Scaling」這一項前面的勾。
UDP Flood攻擊

  • UDP協議
     無狀態不可靠
     僅僅是傳輸數據報
  • UDP Flood
     帶寬耗盡型拒絕服務攻擊
     分佈式拒絕服務攻擊(DDoS)
     利用僵屍網絡控制大量受控傀儡主機
     一般會結合IP源地址欺騙技術
  • UDP Flood攻擊防範措施
     禁用或過濾監控和響應服務
     禁用或過濾其它的 UDP 服務
     網絡關鍵位置使用防火牆和代理機制來過濾掉一些非預期的網絡流量
     遭遇帶寬耗盡型拒絕服務攻擊
     終端無能爲力
     補救措施: 網絡擴容、 轉移服務器位置
     事件響應:彙報給安全應急響應部門、追溯和處置
     流量清洗解決方案: ISP爲關鍵客戶/服務所提供

實踐

實驗環境:

A:攻擊機kali

B:TCP會話一方,ubuntu

C:TCP會話一方,win2000

注意:這裏咱們使用hunt工具來完成tcp會話劫持,下載地址:http://download.csdn.net/detail/qq_26802417/9382279,咱們在後面會進行一些該工具的功能演示

在kali中安裝成功hunt-1.5以後,咱們直接啓動,hunt界面以下:

接下來,咱們令C去telnetB主機的23端口。界面以下,鏈接成功

此時回到kali

命令l是查看當前局域網內的鏈接

命令w是監控當前局域網內的鏈接

命令r是終結鏈接

有關劫持更多的操做的兩個命令是a,s命令,都是進行arp劫持,可是a命令會防止ack風暴。

1.咱們輸入l,界面以下

能夠看到0)號鏈接爲兩臺進行TCP會話的主機。

2.咱們再輸入a,按照以下方式填寫,進入一個監控界面

在這個界面中,不管B作了什麼,均可以監控到,以下圖所示:

咱們在A中看到就是以下界面

該方式是中間人欺騙,就是被動劫持,使得數據包經過你來傳達,因此鏈接不會終止,而你只能查看其操做結果並不能進行命令的插入。

從上圖中咱們注意到CTRL-C to break這句話,此時按下CTRL-C,而後hunt就會呈現以下界面:

其中的綠顏色的命令是我在B主機中輸入的命令,而此時B主機不管如何輸入命令,都不能起任何做用了

在kali中按下回車鍵,就徹底接管了B主機和C主機的通訊,以下圖所示

3.咱們還能夠測試r命令。r命令是一個終結鏈接的命令,以下

此時咱們的win2000機器就斷了

相關文章
相關標籤/搜索