用Wifi釣魚竊取你的所有隱私

[撰文 Leaf]

網路的發達,越多越多公共空間提供了免費的無線網路,這項變化提供了民眾便利的生活,
但便利的背後是資訊的安全及隱私的威脅,本文針對Wifi的安全性做了研究,並將研究內容投稿至Honeycon 2017。

這次的實驗想要證明Wifi嚴重的資訊安全與隱私的威脅,希望能培養大眾在便利的生活中兼顧資安思維及安全意識。

攻擊情境

首先我們假設實驗目標是一位普通民眾,我們要透過Wifi釣魚的方式,偷取他的帳號密碼。

(圖/網路)

在實驗前,我們做了一些布置。

實驗內容:利用RaspberryPi建置Wifi Pineapple,並建構多種攻擊模式,自動化捕捉帳號密碼。

建置DHCP Server

在任何Wifi釣魚中,DHCP都是最重要的一環,如果沒有建置好DHCP,將無法正確分配IP位址,也就無法欺騙對方連上偽造的無線熱點。

啟用IP Forwarding

使用者連上無線熱點了,也分配到IP位址了,當使用者想要連上Google網頁時,機器卻不知道該如何將封包傳到目標位置,
這時必須擬定好封包的傳送路徑,才能讓使用者順利上網。

做完了以上,無線熱點已經差不多建置完畢了,只要再設置SSID,並把所需的元件Set up起來就行了。

撰寫封包分析

目標是擷取受騙者的帳號密碼,除此之外登入網址,以及來源和目標IP位址也是重要資訊。

從上圖可以看到,HTTP封包分兩個部分,也就是header和payload,中間以 “\r\n” 相隔開來,我們將這兩部分分開來處理。

我們選擇Python中的Scapy來抓取封包,只有來源IP與目標IP可直接提取出來,其餘只能土法煉鋼慢慢解析出來了。

一開始不知道findall函式,只能手工慢慢切割,知道了以後,寫好正規化表示法,一行就夠了。

《小秘訣時間:RegExr – Learn, Build, & Test RegEx

正規化表示法對初學者而言比較難上手,有很多字符的用法不易記住,
這邊介紹個輔助工具,來查看結果是否符合預期,結果底下還有各個字符的使用說明。

payload的欄位並不像header有特別的規定名稱,完全是看程式設計師的心情,這邊列出各個常用帳號密碼欄位來,以利之後資訊捕捉及分析。

(參考自https://github.com/lgandx/PCredz)

再來其實也就跟header的資料分析類似了,這邊就不一一說明。

 

發動攻擊

一切皆準備就緒了,再來就是對目標發動攻擊。

攻擊模式一:目標鎖定單一偽造

假設該位民眾每天中午休息時間,皆會在咖啡廳蹭網,所以此攻擊模式非常適用於這種時候。

建立對方手機曾經或正要連接過的同名熱點(也就是該咖啡店的免費Wifi),讓對方手機自動搜尋進行連接,
這種方式主要針對開放式熱點,如果該熱點必須密碼輸入,就難以通過驗證,因為並沒有掌握仿造熱點的連接密碼。

如果該咖啡店有設置Wifi密碼,可事先收集該店密碼,如果有情況導致無法得知密碼,使用進階功能,對Wifi密碼做爆破。

1. 建立密碼檔

(取自:linux下字典生成工具-crunch與rtgen)

2. 密碼破解

aircrack-ng是一款包含多款工具的無線攻擊套件組合,以下是此次攻擊用到的組件名稱:

  • airmon-ng 開啟監聽模式
  • aireplay-ng 訊框(Frame)注入,用以產生夠多的封包
  • airodump 側錄封包
  • aircrack-ng 破解

aireplay [–deauth/-0]反授權攻擊模式,對目標發送連線中斷訊息,使目標重新發送授權請求,再擷取其請求的封包,產生了有用的arp資訊。

3. 建置偽造AP

攻擊模式二:目標鎖定多重偽造(Karma attack)

假設該民眾離開咖啡店,他再也沒有免費Wifi能夠使用,這時候得換一種攻擊模式,要建立攻擊目標曾經連過的Wifi,又不知道他連過哪些?

所以介紹另一種攻擊方式。

(圖/網路)

Karma攻擊有別於以上談到的攻擊方式,當行動裝置在附近探詢(Probe Request)曾經連接過的無線熱點時,
透過偽造虛假的探測響應包(Probe Response),來欺騙使用者的行動裝置,誤以為該熱點存在附近,便自動連接上。

而這種攻擊方式,也是Wifi Pineapple在使用的攻擊方式。

只負責偽造該目標(MAC位址)的Probe Response。

攻擊模式三:多目標撒網式偽造

假設這次要竊取帳密資訊的對象,是這間咖啡店的所有人,這時除了上一種攻擊模式外,還有另外一種選擇,適用於多目標同在一個地方。

回應所有的Probe Request。

可以看到在這個環境下,列表竟然出現攻擊目標連過客運的Wi-Fi。

 

攻擊成效

將擷取到東西儲存進json檔後,另外從Python裡面的SimpleHTTPServer架設一個簡單的Server,讓我們可以收集資料結果。

(參考自https://github.com/code-scan/wifisheep)

註:對駭客而言,資安觀念薄弱的人就是他們的「綿羊」,
綿羊牆便是針對使用會場無線網路但沒做好加密、沒有連上 HTTPS 網站的綿羊網路使用者,
將其被監聽到的帳號密碼以部分馬賽克方式,投射在這面牆上!(取自HITCON 2015 綿羊牆Wall of Sheep!)

重要提醒:本文僅供學術研究及探討,請勿利用學術研究內容做非法行為。

 


大家好!我們是ISDA台灣資訊安全聯合發展協會(Information Security Development Association)

協會宗旨在於著重資安教育為出發點,培育資安人才,建立完整的資訊安全供需鏈,藉此提昇台灣資訊安全品質。

此次投稿於Honeycon 2017,也是看到許多的資訊安全專案實作大都源自於國外,台灣甚少這類完整的實作內容,所以才想到台灣也應該要有這樣的實驗內容。針對這篇文章我們還有很多想講的沒講,礙於冗長的篇幅,將最主要的內容呈現給大家。

ISDA專案成員:Louis(組長)、Leaf 、Ner、 小哈、Bill、Nathon、Hurryken、烏魚子

未來我們還會有許多的專案與大家分享,如果有興趣請持續追蹤我們的FB粉絲頁,也歡迎認同我們的朋友給我們一點鼓勵與支持,到我們的粉絲頁按個讚加分享。

https://www.facebook.com/ISDA.tw/