第七章 高級 WLAN 攻擊
作者:Vivek Ramachandran, Cameron Buchanan
譯者:飛龍
協(xié)議:CC BY-NC-SA 4.0
簡介
知己知彼叠蝇,百戰(zhàn)不殆璃岳。
孫子,《孫子兵法》
作為滲透測試者蟆肆,了解黑客可以執(zhí)行的高階攻擊十分重要矾睦,即使你可能不會在滲透測試中執(zhí)行它們。這一章致力于展示黑客如何能夠?qū)o線訪問用作接入點炎功,執(zhí)行高級攻擊枚冗。
這一章中,我們會看到我們?nèi)绾文軌蚴褂盟鶎W(xué)的知識來執(zhí)行高級攻擊蛇损。我們基本上專注于中間人攻擊(MITM)赁温,它的成功需要大量的技巧和實戰(zhàn)坛怪。一旦我們完成了它,我們會使用這個 MITM 攻擊作為更加復(fù)雜的攻擊的基礎(chǔ)股囊,例如竊聽和會話劫持袜匿。
7.1 中間人攻擊
MITM 攻擊可能是 WLAN 系統(tǒng)上最有潛力的攻擊之一了。實施攻擊可以使用不同的配置稚疹,我們會使用最普遍的一個 -- 攻擊者使用有線 LAN 連接到互聯(lián)網(wǎng)居灯,并在客戶端的網(wǎng)卡上創(chuàng)建了假的接入點。這個接入點廣播的 SSID 和附近的本地?zé)狳c相似内狗。用戶可能碰巧連接到這個假的接入點(或者由于更高的信號強度理論強制連接怪嫌,我們之前討論過),并且可能仍舊相信它連接到正常的接入點上柳沙。
攻擊者現(xiàn)在可以將所有用戶流量轉(zhuǎn)發(fā)到互聯(lián)網(wǎng)上岩灭,使用它所創(chuàng)建的有線和無線之間的網(wǎng)橋。
在下面的練習(xí)中赂鲤,我們會模擬這個攻擊噪径。
實戰(zhàn)時間 -- 中間人攻擊
遵循以下指南來開始:
-
為了開始中間人攻擊,我們首先使用
airbase-ng
数初,在黑客的筆記本上創(chuàng)建軟接入點找爱,叫做mitm
。我們執(zhí)行下列命令:airbase-ng --essid mitm –c 11 mon0
命令輸出如下:
-
要注意
airbase-ng
在運行的時候會創(chuàng)建接口at0
妙真。把它當(dāng)做我們基于軟件的接入點mitm
的有線端的接口缴允。 -
讓我們現(xiàn)在在黑客的筆記本上創(chuàng)建網(wǎng)橋,由有線(
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
-
我們可以為這個網(wǎng)橋指定一個 IP 地址练般,并檢查網(wǎng)關(guān)的連接性。要注意我們也可以使用 DHCP 來實現(xiàn)锈候。我們可以為網(wǎng)橋接口指定 IP 地址薄料,使用下列命令:
ifconfig mitm-bridge 192.168.0.199 up
我們之后嘗試 ping 網(wǎng)關(guān)
192.168.0.1
,來確保我們連接到了網(wǎng)絡(luò)的剩余部分泵琳。 -
我們現(xiàn)在開啟內(nèi)核的 IP 轉(zhuǎn)發(fā)摄职,便于封包能夠正確轉(zhuǎn)發(fā),使用下列命令:
echo 1 > /proc/sys/net/ipv4/ip_forward
命令輸出如下:
-
現(xiàn)在讓我們將無線客戶端連接到我們的接入點
mitm
上获列。它會通過 DHCP 自動獲得 IP 地址(服務(wù)器運行在有線端的網(wǎng)關(guān)上)谷市。這里,客戶端主機的 IP 為192.168.0.197
击孩。我們可以 ping 有線端的網(wǎng)關(guān)192.168.0.1
來驗證連接性迫悠。 -
我們可以看到,主機響應(yīng)了 ping 請求巩梢,像這樣:
-
我們也可以驗證客戶端的連接创泄,通過觀察黑客主機上的
airbase-ng
終端: -
這里提一句艺玲,非常有趣的是,由于所有流量都從無線接口轉(zhuǎn)發(fā)到有線端鞠抑,我們擁有流量的完整控制饭聚。我們可以通過啟動 Wireshark 并嗅探
at0
接口來驗證。 -
讓我們現(xiàn)在從客戶端主機上 ping 網(wǎng)關(guān)
192.168.0.1
搁拙。我們可以看到秒梳, Wireshark 中的封包(使用過濾器 ICMP),即使封包的目標(biāo)并不是我們感混。這就是中間人攻擊的力量端幼。
剛剛發(fā)生了什么礼烈?
我們成功執(zhí)行了中間人攻擊的準(zhǔn)備工作弧满。我們通過創(chuàng)建偽造接入點并將其橋接到我們的以太網(wǎng)接口上。這確保了任何連接到偽造接入點的無線客戶端會感覺到此熬,它通過有線 LAN 連接到互聯(lián)網(wǎng)庭呜。
試一試 -- 純無線網(wǎng)絡(luò)上的中間人攻擊
在上一個練習(xí)中,我們橋接了無線和有線接口犀忱。我們之前提到過募谎,這只是 MITM 的連接結(jié)構(gòu)之一,也有其它的組合阴汇。我們可以使用兩個無線接口数冬,一個用于創(chuàng)建偽造的接入點,另一個接口連接到授權(quán)接入點搀庶。這兩個接口都橋接在一起拐纱。所以,當(dāng)無線客戶端連接到我們的偽造接入點的時候哥倔,它就通過攻擊者的主機連接到了授權(quán)接入點上秸架。
要注意,這個配置需要使用攻擊者筆記本上的兩個網(wǎng)卡咆蒿。
看看是否能夠使用筆記本的內(nèi)建網(wǎng)卡和外部網(wǎng)卡來執(zhí)行這個攻擊 -- 記住东抹,你可能沒有這個練習(xí)所需的注入驅(qū)動器。這是個很大的挑戰(zhàn)沃测。
7.2 通過 MITM 進(jìn)行無線竊聽
在上一個練習(xí)中缭黔,我們了解了如何為 MITM 進(jìn)行準(zhǔn)備。現(xiàn)在蒂破,我們會看一看如何使用它來進(jìn)行無線竊聽馏谨。
整個實驗圍繞一個原則,所有受害者的流量現(xiàn)在都經(jīng)過攻擊者的主機寞蚌。所以田巴,攻擊者可以竊聽任何發(fā)送并來自受害者主機的無線流量钠糊。
實戰(zhàn)時間 -- 無線竊聽
遵循以下指南來開始:
-
重復(fù)上一個實驗的所有步驟。啟動 Wireshark壹哺,有趣的是抄伍,即使 MITM 橋接已經(jīng)建立,這個跟接口仍然允許我們窺視橋接的流量管宵,如果我們想要的話:
-
啟動
at0
接口上的嗅探截珍,便于我們監(jiān)控所有由無線網(wǎng)卡發(fā)送和接收的流量: -
在無線客戶端,打開任何網(wǎng)頁箩朴。我這里岗喉,無線接入點也連接到 LAN 上,我們使用地址
http://192.168.0.1
來打開它: 使用你的密碼登錄炸庞,進(jìn)入管理界面钱床。
5, 在 Wireshark 中埠居,我們應(yīng)該看到了大量活動:
![](http://upload-images.jianshu.io/upload_images/118142-f47e6fe779a525a3.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
-
設(shè)置過濾器 HTTP 來只查看 Web 流量:
-
我們可以輕易定位用于向接入點發(fā)送密碼的 HTTP POST 請求查牌。
-
下面是之前封包的詳細(xì)視圖。
-
展開 HTTP 協(xié)議頭滥壕,我們會看到我們所輸入的密碼并沒有以純文本發(fā)送纸颜,反之它發(fā)送了哈希值。如果我們看一看封包绎橘,在上一個截圖中標(biāo)號為 64胁孙,我們可以看到,有一個
/md5.js
的請求称鳞,這使我們懷疑它是密碼的 MD5 哈希值涮较。有趣的是,在哈希的創(chuàng)建中胡岔,如果沒有在每個會話層面加鹽法希,這個技巧容易受到重放攻擊。我們將其留做一個練習(xí)來發(fā)現(xiàn)細(xì)節(jié)靶瘸,因為這并不是無線安全的一部分苫亦,從而超出了這本書的內(nèi)容。 這展示了在中間人攻擊期間怨咪,監(jiān)視器如何輕易竊聽由客戶端發(fā)送的流量屋剑。
剛剛發(fā)生了什么?
我們準(zhǔn)備的 MITM 環(huán)境現(xiàn)在允許我們竊聽受害者的無線流量诗眨,而無需讓受害者知道唉匾。這是因為在 MITM 中,所有流量都經(jīng)過攻擊者的主機。所以巍膘,所有受害者的未加密流量都可被攻擊者竊聽厂财。
試一試 -- 發(fā)現(xiàn) Google 搜索者
在當(dāng)今世界,我們都認(rèn)為我們在 Google 上的搜索都是私密的峡懈。很不幸璃饱,Google 搜索上的流量都經(jīng)過 HTTP,并且默認(rèn)是純文本肪康。
你可以想出一個智能的過濾器荚恶,使你能夠使用 Wireshark 來查看受害者所執(zhí)行的所有 Google 搜索嗎?
7.3 無線上的會話劫持
我們可以基于 MITM 執(zhí)行的另一種有趣的攻擊就是應(yīng)用會話劫持磷支。在 MITM 攻擊期間谒撼,受害者的封包發(fā)往攻擊者。攻擊者負(fù)責(zé)將其轉(zhuǎn)發(fā)到正常的目的地雾狈,并將目的地發(fā)回的響應(yīng)轉(zhuǎn)發(fā)給主機廓潜。有趣的是,在這個過程中箍邮,攻擊者可以修改封包的數(shù)據(jù)(如果沒有保護(hù)或加密)茉帅。這意味著它可以修改、拆解甚至靜默丟掉封包锭弊。
在下一個例子中,我們會使用準(zhǔn)備好的 MITM 環(huán)境看一看無線上的 DNS 劫持擂错。之后利用 DNS 劫持味滞,我們將瀏覽器的會話劫持為https://www.google.com
。
實戰(zhàn)時間 -- 無線上的會話劫持
-
建立中間人攻擊環(huán)境钮呀。在受害者主機上剑鞍,讓我們啟動瀏覽器并輸入
https://www.google.com
。讓我們使用 Wireshark 來監(jiān)控流量爽醋,你的界面應(yīng)該像這樣: -
使用 DNS 過濾器蚁署,我們可以看到,受害者發(fā)出了
https://www.google.com
的 DNS 請求: -
為了劫持瀏覽器會話蚂四,我們需要發(fā)送偽造的 DNS 響應(yīng)光戈,它會將
https://www.google.com
的 IP 地址解析為黑客主機的 IP192.168.0.199
。我們用戶這個目的的工具叫做dnsspoof
遂赠。它的語法是:dnspoof –i mitm-bridge
命令的輸出如下:
-
刷新瀏覽器創(chuàng)建久妆,現(xiàn)在我們可以在 Wireshark 中看到,只要受害者發(fā)送了任何主機(包括 Google)的 DNS 請求跷睦,Dnsspoof 都會回應(yīng)筷弦。
-
在受害者主機上,我們會看到不能連接的錯誤抑诸。這是因為我們將
google.com
的 IP 地址解析為192.168.0.199
烂琴,這是黑客主機的 IP爹殊,但是沒有監(jiān)聽 80 端口的服務(wù): -
讓我們在 Kali 上運行 Apache,使用下列命令:
apachet2ctl start
命令的輸出如下:
-
現(xiàn)在奸绷,一旦我們刷新了受害者主機上的瀏覽器边灭,我們都會收到
It works!
,它是Apache 的默認(rèn)頁面健盒。 這個示例表明绒瘦,可以攔截數(shù)據(jù)并發(fā)送偽造的響應(yīng),來劫持受害者的會話扣癣。
剛剛發(fā)生了什么惰帽?
我們使用無線 MITM 作為基礎(chǔ)執(zhí)行了應(yīng)用劫持攻擊。所以這背后到底發(fā)生了什么父虑?MITM 準(zhǔn)備工作確保了我們能夠看到受害者發(fā)送的所有封包该酗。只要我們看到了來自受害者的 DNS 請求封包,運行在攻擊者筆記本上的 Dnsspoof 就會發(fā)送 DNS 響應(yīng)給受害者士嚎,將google.com
解析為攻擊者的主機 IP 呜魄。受害者筆記本接受這個響應(yīng)并且瀏覽器會向攻擊者的 IP 地址的 80 端口發(fā)送 HTTP 請求。
在實驗的第一個部分莱衩,攻擊者機器上沒有任何進(jìn)程監(jiān)聽 80 端口爵嗅,于是 Firefox 返回錯誤。之后笨蚁,一旦我們在攻擊者主機上的 80 端口(默認(rèn)端口)開啟了 Apache 服務(wù)器睹晒,瀏覽器的請求就會收到來自攻擊者主機的響應(yīng),帶有默認(rèn)的It works!
頁面括细。
這個實驗表明伪很,一旦我們完全控制了較低的層級(這里是第二層),我們就能輕易劫持運行在較高層級上的應(yīng)用奋单,例如 DNS 客戶端和 Web 瀏覽器锉试。
試一試 -- 應(yīng)用劫持挑戰(zhàn)
會話劫持的下一步就是修改客戶端發(fā)送的數(shù)據(jù)。Kali 上可用的軟件叫做 Ettercap览濒。這會幫助你用于網(wǎng)絡(luò)的創(chuàng)建搜索和替換的過濾器呆盖。
這個挑戰(zhàn)中,編寫一個簡單的過濾器匾七,將網(wǎng)絡(luò)上所有安全的東西變成不安全的絮短。嘗試在 Google 上搜索安全,并看看結(jié)果是否顯示為不安全昨忆。
7.4 發(fā)現(xiàn)客戶端的安全配置
之前的章節(jié)中丁频,我們看到了如何創(chuàng)建開放、WEP 和 WPA 接入點蜜罐,但是當(dāng)我們看到來自客戶端的探測請求時席里,我們怎么知道探測的 SSID 屬于哪個網(wǎng)絡(luò)呢叔磷?
這看起來有些棘手,但解決方案很簡單奖磁。我們需要創(chuàng)建廣播相同 SSID 的接入點改基,但是擁有不同的安全配置。當(dāng)漫游客戶端搜索網(wǎng)絡(luò)時咖为,它會基于儲存的網(wǎng)絡(luò)配置自動連接到這些接入點之一秕狰。
所以,讓我們開始吧躁染!
實戰(zhàn)時間 -- 客戶端的解除驗證攻擊
-
我們假設(shè)無線客戶端擁有
Wireless Lab
網(wǎng)絡(luò)配置鸣哀,在它沒有連接到任何接入點時,它發(fā)送了這個網(wǎng)絡(luò)的探測請求吞彤。為了發(fā)現(xiàn)該網(wǎng)絡(luò)的安全配置我衬,我們需要創(chuàng)建多個接入點。出于我們的討論饰恕,我們假設(shè)客戶端的配置時開放網(wǎng)絡(luò)挠羔、WEP、WPA-SPK 或者 WPA2-SPK埋嵌。所以我們需要創(chuàng)建四個接入點破加。為了完成它,我們首先創(chuàng)建四個虛擬接口 --mon0
到mon3
莉恼,多次使用airmon-ng start wlan0
命令: -
你可以使用
ifconfig -a
命令看到所有新創(chuàng)建的接口: -
現(xiàn)在我們在
mon0
上創(chuàng)建開放 AP: -
我們在
mon1
上創(chuàng)建 WEP 保護(hù)的 AP: -
WPA-PSK 的 AP 在
mon2
上: -
WPA2-PSK 的 AP 在
3
上: -
我們可以在相同頻道上執(zhí)行
airodump-ng
來確保所有四個接入點都啟動并且運行拌喉,像這樣: -
現(xiàn)在讓我們打開漫游客戶端上的 WIFI。取決于之前連接到哪個
Wireless Lab
俐银,它會連接到該安全配置。這里端仰,它連接到了 WPA-PSK 網(wǎng)絡(luò)捶惜,像這樣:
剛剛發(fā)生了什么?
我們創(chuàng)建了擁有相同 SSID 但是不同安全配置的多個蜜罐荔烧。取決于客戶端為Wireless Lab
網(wǎng)絡(luò)儲存哪個配置吱七,它會連接到相應(yīng)的那個。
這個技巧十分實用鹤竭,因為如果你在執(zhí)行滲透測試踊餐,你不知道客戶端的筆記本上是哪個安全配置。這會允許你通過引誘客戶端來找到合適的那個臀稚。這個技巧也叫作 WIFI 釣魚吝岭。
試一試 -- 引誘客戶端
在客戶端上創(chuàng)建相同 SSID 的不同配置,并檢查你的蜜罐是否能檢測它們。
要注意窜管,許多 WIFI 客戶端可能不探測儲存在配置中的網(wǎng)絡(luò)散劫。這時就不能使用我們討論的技巧來檢測它們。
小測驗 -- 高級 WLAN 攻擊
Q1 在 MITM 攻擊中幕帆,誰是中間人获搏?
- 接入點。
- 攻擊者失乾。
- 受害者常熙。
- 都不是。
Q2 Dnsspoof 能夠:
- 偽造 DNS 請求碱茁。
- 偽造 DNS 響應(yīng)裸卫。
- 需要在 DNS 服務(wù)器上運行。
- 需要在接入點上運行早芭。
Q3 無線 MITM 攻擊可以在 __ 上完成:
- 同時在所有無線客戶端上彼城。
- 一次在一個頻道上。
- 在任何 SSID 上退个。
- 3 和 4募壕。
Q4 在我們的 MITN 準(zhǔn)備工作中,那個接口離受害者最近语盈?
- At0
- Eth0
- Br0
- En0
總結(jié)
這一章中舱馅,我們了解了如何使用無線作為基礎(chǔ)來實現(xiàn)高級攻擊。我們?yōu)闊o線上的 MITM 攻擊做了一些準(zhǔn)備刀荒,之后用它來竊聽受害者的流量代嗤。之后我們使用相同的準(zhǔn)備工作,通過 DNS 毒化攻擊來劫持受害者的應(yīng)用層(Web 流量)缠借。
在下一章中干毅,我們會了解如何按照正確的規(guī)劃、探索和報告階段來實施無線攻擊泼返。我們也會涉及到保護(hù) WLAN 的最佳實踐硝逢。