TCP/IP網絡協議攻擊



kali視頻學習請看

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


這部分涉及:

  • 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 緩存。

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

  • 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重定向報文判斷是不是來自本地路由器

實踐

首先查看靶機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立刻截獲了靶機發往目標服務器的的相關報文,如下圖所示:

然后這時我們再查看靶機的路由表,和之前的相對比,靶機已經錯誤的將網關更改為了我們的攻擊機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。Addr222.28.136.226and tcp.port23過濾
打開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機器就斷了


免責聲明!

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



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