利用airbase-ng建立Soft AP,再利用一些常見工具進行嗅探,或對抓包進行分析是出現比較早的一種MITM攻擊方法。網上有很多關於手動實現的文章,也有一些自動實現腳本。這些腳本通常分兩類,一類是一步一步讓用戶輸入接口、選項什么的,最后再運行,每一次啟動都要重復輸入很多數據,低效且不爽。第二類是自動運行的,但可選項比較少,不符合自己的使用習慣。所以,在學習過程中自己寫了一個自動實現腳本。
建立Soft AP可使用airbase-ng和hostapd,其中前者需要網卡支持monitor模式,是比較常用的工具,但僅支持OPN和WEP的,不支持WPA加密,不挑網卡,常見的RTL8187L既可。第二個是hostapd,需要網卡支持AP模式,8187L就用不了了,rt3070可以使用,支持建立OPN/WEP/WPA各種SoftAP。本文介紹基於airbase-ng的實現,畢竟這是個輕量級且各種hack可選項較多的常用工具。
建立soft Ap並進行嗅探,主要有如下4步:
1.airbase-ng建立熱點
2.dhcpd啟動dhcp服務
3.iptables設置好轉發規則,使接入Soft AP客戶的數據可正常訪問互聯網
4.啟動嗅探工具收集信息
結束后,還可以對抓取的包進行后續分析。當然,中間還可以進行DNS劫持,偽造頁面進行釣魚,不在本文討論范圍。下面分步說。
准備工作:
(1) 一台電力比較持久的筆記本電腦,可以直接安裝kali linux,也可以在VMware中安裝kali。
(2)一塊8187L網卡,山寨的就可以,性價比高,做工沒看出來比原裝的差在哪兒,只要保證中間芯片是真的就行。(下面照片中是原裝的)
(3)天線:感覺7dbi的全向天線高度正好,再大就不方便了,而且9dbi的信號並未增強多少,反而損耗更大。方向性天線也不錯,7db方向性天線體積很小巧,據說明在聚焦方向上可達10dbi全向天線的作用距離,用於室內空間較狹長時合適。穿牆能力就不說了,鋼筋混凝土牆兩堵,基本就很難接收可用信號了。
實測7dbi全向天線信號強度(無遮擋):65米處,-85dbm,50米處約-75dbm,10米之內信號穩定在-35dbm左右。該值非常粗略,僅供參考。一般能夠正常通信的下限是-90dbm,上網的話要求更高。當然,信號強度也和接收裝置的天線有關,不過總體上說,8187L加上7dbi的兩種天線基本夠用了,覆蓋一個公共場所不大室內空間沒問題。
(4)筆記本有internet網接入,用於將Fake AP接收的信息轉到internet上去,不多贅述。
(5)啟動monitor模式,並偽造一下本機的網卡地址 [wlan1要根據interface下的具體名字來]
一、使用airbase-ng建立OPN的Soft AP
airbase-ng主要用於建立OPN的AP,也就是不需要密碼的公開AP。WEP加密的已經很少見了,不支持WPA加密。這一步中,最關鍵的是AP的ssid,ssid決定了AP欺騙性,也就是被連接的可能性。現在手機、平板電腦的客戶端會自動記錄連接過的AP信息,保存在/data/misc/wifi/wpa_suppliant.conf中,每個熱點保存四個信息:ssid、psk(密碼)、key_mgmt(加密方式)、priority(優先級)。注意,其中不含網卡的硬件地址.所以,只需前三項對上,便可自動連接。
手機wifi功能打開時,會不斷向外發送probe信息包,里面包含ssid。可用airodump-ng查看當前網絡環境下有哪些被probe的ssid,供偽造ssid時參考。
選定名稱后,便可使用airbase-ng建立Fake AP了:
airbase-ng運行成功后,ifconfig查看,會多出一個at0接口。
二、使用dhcpd啟動dhcp服務
客戶端連接上SoftAP后,要給他們分配IP地址。這里有一條最關鍵,就是SoftAP的IP地址和Internet接口的IP地址不能在網一個段。比如,連接Internet網的網卡eth0,地址是10.10.10.138/24,則at0的地址后面不能設置為同一網段,這里設置為10.0.0.1/24。
首先建立dhcpd.conf,內容包含dhcp服務運行的設置參數,關鍵代碼如下:
這些選項的意義就不一一介紹了,比較重要的時option routers,網關的設置,后續at0的地址要設置為該網關地址。option domain-name-servers,設置DNS服務器地址,8.8.8.8是比較通用的值。
接下來然后需要將SoftAP的接口,也就是airbase-ng創建的at0設置為該網段的網關:
接着啟動dhcp服務
三、使用iptables設置轉發
使用iptables設置轉發,將用戶連接SoftAP后的數據,轉發到internet上,是非常關鍵的一步。網上各種版本很多,其實最簡單的實現就一句指令:
注意,轉發生效需要本機開啟ip_forward功能。指令是:
由於后面運行ettercap時,會將該值再次變為0,所以等ettercap運行后再執行上述命令。
四、運行各種嗅探工具
SoftAP建立並運行dhcp服務后,客戶端就可以根據我們設定的規則連接上熱點並正常瀏覽網頁,運行各個程序了。接下來,就是針對Soft AP的接口at0,執行各種嗅探:
以上就是實現基於Soft AP的MITM攻擊的幾個關鍵步驟。
這里提供一個自動執行腳本auto_opnAP.sh,最簡單的執行命令是:
運行界面如下圖所示:
總體上看,現在大多數手機客戶端在安全上都有考慮,用戶名、密碼以明文直接出現的不多,特別是大企業開發的工具,但還是有部分小企業的軟件在這方面不太重視。同時,盡管客戶端連接時對信息進行了加密,但用瀏覽器登錄時,由於遵循http協議,部分情況下用戶名和密碼更容易泄漏。所以,在公共場所使用免費WiFi時,還是要甄別熱點的真假,並盡量少進行關鍵操作。
聲明:本文旨在討論原理,提高安全意識,提供的腳本也僅供學習交流,本文所有測試均在自家局域網絡測試,請勿非法使用。有好的修改建議,歡迎交流


