什麼是會話劫持? 如何確保會話隱私

已發表: 2021-07-13

登錄和註銷之間可能會發生很多事情。

攻擊者尋找可以未經授權訪問您的帳戶並利用您的數據的會話。 您應該確保在安全的環境中驗證您的登錄詳細信息,並保護自己免受會話劫持攻擊。

您可以使用  網絡應用防火牆  檢測傳入流量中的異常並阻止潛在的惡意流量。 但要修復強大的安全防禦,詳細了解會話劫持、其類型以及攻擊者可能用來滲透用戶帳戶的工具至關重要。

什麼是會話劫持?

會話劫持,也稱為 cookie 劫持,是通過在會話仍在進行時獲取或生成會話 ID 來控制用戶會話的過程。

攻擊者可以使用跨站點腳本 (XSS)、暴力破解、逆向工程或各種其他方法來獲取會話 cookie 並獲得對用戶帳戶的未經授權的訪問。

會話在您登錄 Web 應用程序等服務時開始,在您註銷時結束。 超文本傳輸協議(HTTP)是一種無狀態協議,這意味著它獨立地承載每個請求,而不參考任何先前的請求,要求用戶每次查看網頁時都進行身份驗證。 為了避免每次都提示用戶登錄,服務器會分配一個會話 ID 以在身份驗證後提供無縫的 Web 體驗。

攻擊者試圖竊取目標的會話 ID 或誘使他們點擊惡意鏈接,將他們帶到預製會話以進行會話劫持攻擊。 一旦用戶在服務器上通過身份驗證,威脅者就可以劫持會話並誘騙服務器認為他們的會話有效。

當攻擊者針對會話 cookie 時,它與 Web 應用程序會話劫持有關,而不是傳輸控制協議 (TCP) 會話劫持。 TCP是一種在 IP 之上使用的傳輸協議,用於確保數據包的可靠傳輸。 Web 應用程序在成功驗證後返回會話 cookie,攻擊者利用該 cookie 劫持會話。 它與用戶設備和服務器之間的 TCP 連接無關。

會話劫持方法

攻擊者在執行會話劫持時通常有幾種方法可供選擇。 他們可以單獨使用它們,也可以組合使用它們來接管用戶帳戶並進行惡意活動。

跨站腳本

跨站點腳本 (XSS)攻擊中,惡意黑客誘騙目標計算機執行偽裝成屬於服務器的受信任代碼的代碼。 它允許攻擊者獲取 cookie 的副本以執行他們的惡意操作。 通常,網頁嵌入了 JavaScript。 沒有適當的保障和  應用程序安全工具,如果腳本被執行,它會洩露用戶的敏感信息。

如果服務器沒有在會話 cookie 中設置HTTPOnly屬性,腳本可以將它們暴露給攻擊者。

惡意軟件注入

一些  惡意軟件  或木馬程序被編程為竊取瀏覽器 cookie 並在用戶不知情的情況下執行惡意操作。 例如,當用戶訪問惡意網站或單擊未經請求的鏈接時,惡意軟件會掃描網絡流量,收集會話 cookie,並將其發送給不良行為者。 可以訪問本地存儲的攻擊者可以從瀏覽器的臨時本地存儲(cookie jar)中竊取會話密鑰,或者他們可以獲取服務器或用戶計算機的文件或內存內容。

蠻力

攻擊者可以執行暴力攻擊來猜測用戶的會話密鑰。 當應用程序使用順序或可預測的會話密鑰時,它會使會話容易受到劫持。 這是過去首選的方法,但在現代應用程序中,會話 ID 很長並且是隨機生成的,對暴力攻擊具有很強的抵抗力。

會話側頂起

會話端劫持中,攻擊者利用數據包嗅探來讀取網絡流量並竊取會話 cookie。 通常,網站在其身份驗證頁面中使用安全套接字層/傳輸層安全 (SSL/TLS) 加密。 儘管如此,有些人在身份驗證後並未在站點範圍內使用它,從而使攻擊者能夠攔截服務器和網頁之間交換的數據。

一旦攻擊者獲得會話cookie,他們就可以劫持用戶的會話進行惡意操作。 例如,針對連接到不安全 WiFi 的用戶的不良行為者可以輕鬆讀取其他節點和接入點之間共享的數據或流量。

會話固定

攻擊者有時可以創建偽裝會話並誘騙用戶對易受攻擊的服務器進行身份驗證。 例如,威脅參與者可以使用  社會工程學  (網絡釣魚)或類似的方法來說服用戶點擊一個鏈接,該鏈接將他們帶到一個帶有已知會話 cookie 的精心製作的會話。 一旦用戶進行身份驗證,攻擊者就可以使用已知的會話密鑰來劫持用戶的會話。

攻擊者還可以誘騙用戶填寫包含隱藏和固定會話 ID 的預製登錄表單。

會話劫持攻擊的級別

會話劫持攻擊有兩個級別。 這些攻擊可以相互關聯,因為對網絡層的成功攻擊將為攻擊者提供信息以在應用程序級別利用實際用戶。

會話劫持的級別

傳輸層劫持

傳輸層劫持發生在 TCP 連接中,攻擊者攔截 Web 服務器和用戶之間的數據交換,從而禁止它們之間設置的通信通道。 然後,不良行為者將偽裝成合法數據包的惡意數據包發送到客戶端和服務器,接管用戶會話。

傳輸層劫持的一種常見方法是IP 欺騙,攻擊者使用偽裝成可信 IP 地址的偽造 IP 地址與網絡上的計算機進行通信。 他們使用源路由 IP 數據包來攔截兩個節點之間的活動通信。 IP 欺騙在 TCP 會話開始時過度利用了一次性身份驗證。

應用層劫持

在應用層劫持中,攻擊者在用戶對其應用進行身份驗證後竊取用戶的會話 ID。 中間人攻擊是應用層會話劫持的典型例子,劫持者攔截客戶端和服務器之間的通信通道。

代理攻擊也屬於應用層劫持。 攻擊者將流量定向到具有預定義會話 ID 的代理服務器,以在這些攻擊期間攔截通信。

3 會話劫持的類型

會話劫持涉及猜測或攔截現有會話中的會話 cookie,或欺騙用戶在預製會話中進行身份驗證。 會話劫持攻擊分為三種類型。

1. 活躍

活動會話劫持中,攻擊者接管網絡中的活動連接。 他們可以使所有設備靜音並接管客戶端和服務器之間的通信通道。 然後,他們放棄了服務器和用戶設備之間的聯繫。

攻擊者可以通過多種方式中斷客戶端和服務器之間的通信。 通常,入侵者會發送大量流量來攻擊有效會話並引發拒絕服務 (DoS)攻擊。

2. 被動

被動會話劫持與主動會話劫持類似,只是攻擊者監視客戶端和服務器之間的通信。 攻擊者不會阻止實際用戶退出會話,而是監督正在進行的通信交換。

被動攻擊的主要動機是竊取交換的信息並將其用於惡意目的。

3. 混合

混合會話劫持攻擊是主動攻擊和被動攻擊的結合。 在混合攻擊中,攻擊者監控網絡流量,直到他們發現問題,然後接管會話並開始冒充合法用戶。

混合攻擊依賴於欺騙,並進一步分為以下類型:

  • 盲目欺騙攻擊涉及攻擊者在不中斷會話的情況下瞄準受害者。 它們捕獲服務器和用戶之間交換的數據包,並嘗試破解 TCP 數據包序列。
  • 非盲欺騙攻擊包括監視服務器和用戶之間的流量以預測後續協議以預測其 TCP 序列範圍。 攻擊者在應用程序級別接管會話並使用可能被盜或可預測的會話令牌形成新會話。

會話劫持與會話欺騙與會話重放

會話劫持和會話欺騙之間的主要區別在於攻擊的時間。

會話劫持與會話欺騙與會話重放

一旦用戶在應用程序中驗證自己的身份,就會進行會話劫持攻擊。 該攻擊可能會導致應用程序出現延遲或異常行為。 這是因為攻擊者在您仍然登錄時利用了您的數據。如果應用程序經常崩潰,則可能表明存在會話劫持攻擊。

會話欺騙中,受害者不知道攻擊。 攻擊者可能會使用被盜或偽造的會話 ID 並冒充真實用戶,而不依賴用戶執行身份驗證。

會話重播有點不同。

會話重放中,攻擊者已經擁有會話 cookie(從會話劫持中收集),他們可以隨心所欲地使用它們。 他們可能會誘騙受害者重新提交之前有效的請求,例如在他們最初請求一個單位的地方購買多個數量的物品。

會話劫持工具

有幾種工具可以幫助攻擊者進行會話劫持攻擊。 您可以在  滲透測試  並檢查您的系統和應用程序是否可以抵禦攻擊。

以下是一些用於執行攻擊的流行會話劫持工具。

* 這些工具只能用於道德目的,以測試和加強系統以防止會話劫持。

倉鼠和雪貂

Hamster 就像一個代理服務器,它處理 Ferret 收集的數據,它捕獲通過網絡的會話 cookie。

這是由提出的倉鼠使用示例  卡利工具:

root@kali:~# 倉鼠

--- HAMPSTER 2.0 側頂工具 ---

設置瀏覽器使用代理 http://127.0.0.1:1234

調試:set_ports_option(1234)

調試:mg_open_listening_port(1234)

代理:監聽 127.0.0.1:1234

開始線程

T-Sight

T-Sight最初是作為一種在 Windows 平台上運行的網絡監控工具而開發的。 但是,在監控網絡時,可以劫持會話,因為網絡上的所有通信都是實時復制的,從而提供精確的數據傳輸輸出。 因此,T-Sight 的開發商 Engrade 現在只為預先確定的 IP 地址提供軟件許可。

劍聖

Juggernaut是一種網絡嗅探工具,可被惡意用於進行會話劫持攻擊。 可以將 Juggernaut 配置為監視局域網 (LAN)中的所有網絡流量或偵聽特定會話令牌。 它可以設置為在受害者嘗試登錄後記錄網絡流量。

Juggernaut 不同於將所有網絡流量記錄在巨大日誌文件中的常規網絡嗅探器。 Juggernaut 維護一個連接數據庫,允許攻擊者監視所有基於 TCP 的連接,甚至劫持會話。 會話劫持工具還提供了內置的數據包組裝功能。 攻擊者使用此功能對數據包進行分段以逃避入侵檢測系統和防火牆。

下面是通過 Linux 命令行運行 Juggernaut 的示例:

Juggernaut ?) 幫助 0) 程序信息 1) 連接數據庫 2) 監視連接 3) 重置連接 4) 自動連接重置守護進程 5) 單工連接劫持 6) 交互式連接劫持 7) 數據包組裝模塊 8) Souper sekret 選項編號八 9) 下台

  • 連接數據庫向您顯示一個活動連接。
  • Spy on a connection允許您監控跨開放通信通道的網絡流量,並提供存儲日誌的選項。
  • 重置連接通過向源發送 RST 數據包來關閉會話。
  • 自動連接重置守護程序允許您在主機嘗試建立會話時配置基於 IP 地址和 RST 數據包到源的主機。
  • Simplex 連接劫持使您可以向目標輸入單個命令。 攻擊者使用它來阻止檢測。
  • 交互式連接劫持允許您進行完整的會話劫持並創建大型 ACK 風暴。
  • 數據包組裝模塊可讓您創建自己的數據包。
  • Souper sekret 選項 8沒有任何功能。
  • Step down允許您退出程序。

這些是攻擊者用來進行會話劫持攻擊的一些工具。

您需要針對類似工具(如 Hunt、TTY-Watcher、IP-Watcher、1164、Wireshark、SSHMITM、Hjksuite、C2MYAZZ)加強您的網絡和系統,攻擊者使用這些工具來利用用戶會話。

如何防止會話劫持

會話劫持可能會給組織帶來可怕的後果,包括在多年建立良好聲譽並在行業中提供忠實服務後遭受的財務損失和聲譽損失。

企業需要製定戰略安全措施,以避免成為會話劫持攻擊的目標。 這些措施包括:

  • 加密網頁上的所有數據傳輸
  • 在網頁上實施超文本傳輸協議安全 (HTTPS) 認證
  • 定期更新和修補瀏覽器
  • 採用網絡安全工具,如 DDoS 保護軟件和  欺騙技術
  • 仔細登錄和退出每個會話
  • 整合 Web 框架,而不是創建內部會話管理系統
  • 認證後重新生成會話密鑰,防止黑客利用登錄時生成的會話ID
  • 通過包括額外的檢查來加強身份驗證,例如驗證用戶的常用 IP 地址或應用程序使用趨勢
  • 僅使用安全的無線網絡,避免在任何公共 WiFi 上運行
  • 使用虛擬專用網絡 (VPN) 軟件屏蔽您的 IP 地址並保護您的會話

擁有站點範圍的 HTTPS 可以說是最重要的預防機制。 如果您擔心性能問題,您可以在網站的登錄頁面和其他敏感區域實施 SSL。 另一個重要的預防措施是加密存儲在會話 cookie 中的會話值。

保護您的會話

會話劫持可能很麻煩。 積極主動並設置適當的防禦機制,以保護自己免受會話劫持攻擊並保護您的帳戶和數據。

隨著黑客不斷開發新方法來破解組織的防禦邊界,確保 100% 的安全性可能會變得更加棘手。

詳細了解事件響應以及當攻擊者獲得您的帳戶或數據的訪問權限時如何管理網絡事件。