KaliLinux無線滲透測試入門指南第七章高階WLAN攻擊

apachecn_飛龍發表於2016-10-26

第七章 高階 WLAN 攻擊

作者:Vivek Ramachandran, Cameron Buchanan

譯者:飛龍

協議:CC BY-NC-SA 4.0

簡介

知己知彼,百戰不殆。

孫子,《孫子兵法》

作為滲透測試者,瞭解黑客可以執行的高階攻擊十分重要,即使你可能不會在滲透測試中執行它們。這一章致力於展示黑客如何能夠將無線訪問用作接入點,執行高階攻擊。

這一章中,我們會看到我們如何能夠使用所學的知識來執行高階攻擊。我們基本上專注於中間人攻擊(MITM),它的成功需要大量的技巧和實戰。一旦我們完成了它,我們會使用這個 MITM 攻擊作為更加複雜的攻擊的基礎,例如竊聽和會話劫持。

7.1 中間人攻擊

MITM 攻擊可能是 WLAN 系統上最有潛力的攻擊之一了。實施攻擊可以使用不同的配置,我們會使用最普遍的一個 – 攻擊者使用有線 LAN 連線到網際網路,並在客戶端的網路卡上建立了假的接入點。這個接入點廣播的 SSID 和附近的本地熱點相似。使用者可能碰巧連線到這個假的接入點(或者由於更高的訊號強度理論強制連線,我們之前討論過),並且可能仍舊相信它連線到正常的接入點上。

攻擊者現在可以將所有使用者流量轉發到網際網路上,使用它所建立的有線和無線之間的網橋。

在下面的練習中,我們會模擬這個攻擊。

實戰時間 – 中間人攻擊

遵循以下指南來開始:

  1. 為了開始中間人攻擊,我們首先使用airbase-ng,在黑客的筆記本上建立軟接入點,叫做mitm。我們執行下列命令:

    airbase-ng --essid mitm –c 11 mon0

    命令輸出如下:

  2. 要注意airbase-ng在執行的時候會建立介面at0。把它當做我們基於軟體的接入點mitm的有線端的介面。

  3. 讓我們現在在黑客的筆記本上建立網橋,由有線(eth0)和無線(at0)介面組成。命令如下:

    brctl addbr mitm-bridge 
    brctl addif mitm-bridge eth0 
    brctl addif mitm-bridge at0 
    ifconfig eth0 0.0.0.0 up 
    ifconfig at0 0.0.0.0 up

  4. 我們可以為這個網橋指定一個 IP 地址,並檢查閘道器的連線性。要注意我們也可以使用 DHCP 來實現。我們可以為網橋介面指定 IP 地址,使用下列命令:

    ifconfig mitm-bridge 192.168.0.199 up

    我們之後嘗試 ping 閘道器192.168.0.1,來確保我們連線到了網路的剩餘部分。

  5. 我們現在開啟核心的 IP 轉發,便於封包能夠正確轉發,使用下列命令:

    echo 1 > /proc/sys/net/ipv4/ip_forward

    命令輸出如下:

  6. 現在讓我們將無線客戶端連線到我們的接入點mitm上。它會通過 DHCP 自動獲得 IP 地址(伺服器執行在有線端的閘道器上)。這裡,客戶端主機的 IP 為192.168.0.197。我們可以 ping 有線端的閘道器192.168.0.1來驗證連線性。

  7. 我們可以看到,主機響應了 ping 請求,像這樣:

  8. 我們也可以驗證客戶端的連線,通過觀察黑客主機上的airbase-ng終端:

  9. 這裡提一句,非常有趣的是,由於所有流量都從無線介面轉發到有線端,我們擁有流量的完整控制。我們可以通過啟動 Wireshark 並嗅探at0介面來驗證。

  10. 讓我們現在從客戶端主機上 ping 閘道器192.168.0.1。我們可以看到, Wireshark 中的封包(使用過濾器 ICMP),即使封包的目標並不是我們。這就是中間人攻擊的力量。

剛剛發生了什麼?

我們成功執行了中間人攻擊的準備工作。我們通過建立偽造接入點並將其橋接到我們的乙太網介面上。這確保了任何連線到偽造接入點的無線客戶端會感覺到,它通過有線 LAN 連線到網際網路。

試一試 – 純無線網路上的中間人攻擊

在上一個練習中,我們橋接了無線和有線介面。我們之前提到過,這只是 MITM 的連線結構之一,也有其它的組合。我們可以使用兩個無線介面,一個用於建立偽造的接入點,另一個介面連線到授權接入點。這兩個介面都橋接在一起。所以,當無線客戶端連線到我們的偽造接入點的時候,它就通過攻擊者的主機連線到了授權接入點上。

要注意,這個配置需要使用攻擊者筆記本上的兩個網路卡。

看看是否能夠使用筆記本的內建網路卡和外部網路卡來執行這個攻擊 – 記住,你可能沒有這個練習所需的注入驅動器。這是個很大的挑戰。

7.2 通過 MITM 進行無線竊聽

在上一個練習中,我們瞭解瞭如何為 MITM 進行準備。現在,我們會看一看如何使用它來進行無線竊聽。

整個實驗圍繞一個原則,所有受害者的流量現在都經過攻擊者的主機。所以,攻擊者可以竊聽任何傳送並來自受害者主機的無線流量。

實戰時間 – 無線竊聽

遵循以下指南來開始:

  1. 重複上一個實驗的所有步驟。啟動 Wireshark,有趣的是,即使 MITM 橋接已經建立,這個跟介面仍然允許我們窺視橋接的流量,如果我們想要的話:

  2. 啟動at0介面上的嗅探,便於我們監控所有由無線網路卡傳送和接收的流量:

  3. 在無線客戶端,開啟任何網頁。我這裡,無線接入點也連線到 LAN 上,我們使用地址http://192.168.0.1來開啟它:

  4. 使用你的密碼登入,進入管理介面。

5, 在 Wireshark 中,我們應該看到了大量活動:

![](http://git.oschina.net/wizardforcel/kali-linux-wireless-pentest/raw/master/img/7-2-4.jpg)
  1. 設定過濾器 HTTP 來只檢視 Web 流量:

  2. 我們可以輕易定位用於向接入點傳送密碼的 HTTP POST 請求。

  3. 下面是之前封包的詳細檢視。

  4. 展開 HTTP 協議頭,我們會看到我們所輸入的密碼並沒有以純文字傳送,反之它傳送了雜湊值。如果我們看一看封包,在上一個截圖中標號為 64,我們可以看到,有一個/md5.js的請求,這使我們懷疑它是密碼的 MD5 雜湊值。有趣的是,在雜湊的建立中,如果沒有在每個會話層面加鹽,這個技巧容易受到重放攻擊。我們將其留做一個練習來發現細節,因為這並不是無線安全的一部分,從而超出了這本書的內容。

  5. 這展示了在中間人攻擊期間,監視器如何輕易竊聽由客戶端傳送的流量。

剛剛發生了什麼?

我們準備的 MITM 環境現在允許我們竊聽受害者的無線流量,而無需讓受害者知道。這是因為在 MITM 中,所有流量都經過攻擊者的主機。所以,所有受害者的未加密流量都可被攻擊者竊聽。

試一試 – 發現 Google 搜尋者

在當今世界,我們都認為我們在 Google 上的搜尋都是私密的。很不幸,Google 搜尋上的流量都經過 HTTP,並且預設是純文字。

你可以想出一個智慧的過濾器,使你能夠使用 Wireshark 來檢視受害者所執行的所有 Google 搜尋嗎?

7.3 無線上的會話劫持

我們可以基於 MITM 執行的另一種有趣的攻擊就是應用會話劫持。在 MITM 攻擊期間,受害者的封包發往攻擊者。攻擊者負責將其轉發到正常的目的地,並將目的地發回的響應轉發給主機。有趣的是,在這個過程中,攻擊者可以修改封包的資料(如果沒有保護或加密)。這意味著它可以修改、拆解甚至靜默丟掉封包。

在下一個例子中,我們會使用準備好的 MITM 環境看一看無線上的 DNS 劫持。之後利用 DNS 劫持,我們將瀏覽器的會話劫持為https://www.google.com

實戰時間 – 無線上的會話劫持

  1. 建立中間人攻擊環境。在受害者主機上,讓我們啟動瀏覽器並輸入https://www.google.com。讓我們使用 Wireshark 來監控流量,你的介面應該像這樣:

  2. 使用 DNS 過濾器,我們可以看到,受害者發出了https://www.google.com的 DNS 請求:

  3. 為了劫持瀏覽器會話,我們需要傳送偽造的 DNS 響應,它會將https://www.google.com的 IP 地址解析為黑客主機的 IP 192.168.0.199。我們使用者這個目的的工具叫做dnsspoof。它的語法是:

    dnspoof –i mitm-bridge

    命令的輸出如下:

  4. 重新整理瀏覽器建立,現在我們可以在 Wireshark 中看到,只要受害者傳送了任何主機(包括 Google)的 DNS 請求,Dnsspoof 都會回應。

  5. 在受害者主機上,我們會看到不能連線的錯誤。這是因為我們將google.com的 IP 地址解析為192.168.0.199,這是黑客主機的 IP,但是沒有監聽 80 埠的服務:

  6. 讓我們在 Kali 上執行 Apache,使用下列命令:

    apachet2ctl start

    命令的輸出如下:

  7. 現在,一旦我們重新整理了受害者主機上的瀏覽器,我們都會收到It works!,它是Apache 的預設頁面。

  8. 這個示例表明,可以攔截資料併傳送偽造的響應,來劫持受害者的會話。

剛剛發生了什麼?

我們使用無線 MITM 作為基礎執行了應用劫持攻擊。所以這背後到底發生了什麼?MITM 準備工作確保了我們能夠看到受害者傳送的所有封包。只要我們看到了來自受害者的 DNS 請求封包,執行在攻擊者筆記本上的 Dnsspoof 就會傳送 DNS 響應給受害者,將google.com解析為攻擊者的主機 IP 。受害者筆記本接受這個響應並且瀏覽器會向攻擊者的 IP 地址的 80 埠傳送 HTTP 請求。

在實驗的第一個部分,攻擊者機器上沒有任何程式監聽 80 埠,於是 Firefox 返回錯誤。之後,一旦我們在攻擊者主機上的 80 埠(預設埠)開啟了 Apache 伺服器,瀏覽器的請求就會收到來自攻擊者主機的響應,帶有預設的It works!頁面。

這個實驗表明,一旦我們完全控制了較低的層級(這裡是第二層),我們就能輕易劫持執行在較高層級上的應用,例如 DNS 客戶端和 Web 瀏覽器。

試一試 – 應用劫持挑戰

會話劫持的下一步就是修改客戶端傳送的資料。Kali 上可用的軟體叫做 Ettercap。這會幫助你用於網路的建立搜尋和替換的過濾器。

這個挑戰中,編寫一個簡單的過濾器,將網路上所有安全的東西變成不安全的。嘗試在 Google 上搜尋安全,並看看結果是否顯示為不安全。

7.4 發現客戶端的安全配置

之前的章節中,我們看到了如何建立開放、WEP 和 WPA 接入點蜜罐,但是當我們看到來自客戶端的探測請求時,我們怎麼知道探測的 SSID 屬於哪個網路呢?

這看起來有些棘手,但解決方案很簡單。我們需要建立廣播相同 SSID 的接入點,但是擁有不同的安全配置。當漫遊客戶端搜尋網路時,它會基於儲存的網路配置自動連線到這些接入點之一。

所以,讓我們開始吧!

實戰時間 – 客戶端的解除驗證攻擊

  1. 我們假設無線客戶端擁有Wireless Lab網路配置,在它沒有連線到任何接入點時,它傳送了這個網路的探測請求。為了發現該網路的安全配置,我們需要建立多個接入點。出於我們的討論,我們假設客戶端的配置時開放網路、WEP、WPA-SPK 或者 WPA2-SPK。所以我們需要建立四個接入點。為了完成它,我們首先建立四個虛擬介面 – mon0mon3,多次使用airmon-ng start wlan0命令:

  2. 你可以使用ifconfig -a命令看到所有新建立的介面:

  3. 現在我們在 mon0上建立開放 AP:

  4. 我們在mon1上建立 WEP 保護的 AP:

  5. WPA-PSK 的 AP 在mon2上:

  6. WPA2-PSK 的 AP 在3上:

  7. 我們可以在相同頻道上執行airodump-ng來確保所有四個接入點都啟動並且執行,像這樣:

  8. 現在讓我們開啟漫遊客戶端上的 WIFI。取決於之前連線到哪個Wireless Lab,它會連線到該安全配置。這裡,它連線到了 WPA-PSK 網路,像這樣:

剛剛發生了什麼?

我們建立了擁有相同 SSID 但是不同安全配置的多個蜜罐。取決於客戶端為Wireless Lab網路儲存哪個配置,它會連線到相應的那個。

這個技巧十分實用,因為如果你在執行滲透測試,你不知道客戶端的筆記本上是哪個安全配置。這會允許你通過引誘客戶端來找到合適的那個。這個技巧也叫作 WIFI 釣魚。

試一試 – 引誘客戶端

在客戶端上建立相同 SSID 的不同配置,並檢查你的蜜罐是否能檢測它們。

要注意,許多 WIFI 客戶端可能不探測儲存在配置中的網路。這時就不能使用我們討論的技巧來檢測它們。

小測驗 – 高階 WLAN 攻擊

Q1 在 MITM 攻擊中,誰是中間人?

  1. 接入點。
  2. 攻擊者。
  3. 受害者。
  4. 都不是。

Q2 Dnsspoof 能夠:

  1. 偽造 DNS 請求。
  2. 偽造 DNS 響應。
  3. 需要在 DNS 伺服器上執行。
  4. 需要在接入點上執行。

Q3 無線 MITM 攻擊可以在 __ 上完成:

  1. 同時在所有無線客戶端上。
  2. 一次在一個頻道上。
  3. 在任何 SSID 上。
  4. 3 和 4。

Q4 在我們的 MITN 準備工作中,那個介面離受害者最近?

  1. At0
  2. Eth0
  3. Br0
  4. En0

總結

這一章中,我們瞭解瞭如何使用無線作為基礎來實現高階攻擊。我們為無線上的 MITM 攻擊做了一些準備,之後用它來竊聽受害者的流量。之後我們使用相同的準備工作,通過 DNS 毒化攻擊來劫持受害者的應用層(Web 流量)。

在下一章中,我們會了解如何按照正確的規劃、探索和報告階段來實施無線攻擊。我們也會涉及到保護 WLAN 的最佳實踐。


相關文章