您好,登錄后才能下訂單哦!
折磨了自己一周多,供遇到同樣問題的朋友們參考。
一般有兩種方法在kali linux下建立軟AP,一是使用airbase-ng,優(yōu)點是運行方便,適應(yīng)網(wǎng)卡的范圍比較廣,比如常見的rtl8187的網(wǎng)卡,局限是只能建立OPN和WEP加密的,不支持WPA和WPA2加密。二是通過hostapd,支持OPN、WEP、WPA、WPA2等多種加密方式,但支持的網(wǎng)卡有限。
之前我手上有rtl8187的網(wǎng)卡,一直把它當(dāng)作神器,后來發(fā)現(xiàn)完全是被誤導(dǎo)了,不僅信號一般,且支持的模式相當(dāng)有限,最關(guān)鍵是不支持hostapd建立WPA加密的AP。用iw list命令可以看到rtl8187網(wǎng)卡支持的模式:
iw list … Supported interface modes: * IBSS * managed * monitor
一陣google后,在某電商那淘了一塊rt3070芯片的,價格便宜、童叟無欺,支持b/g/n(rtl8187僅支持b/g),標(biāo)配雙6dBi增益天線,iw list看一下,瞬間發(fā)現(xiàn)這泥馬才是真正的神器?。。◤娏彝扑]!!)
Supported interface modes: * IBSS * managed * AP * AP/VLAN * WDS * monitor * mesh point
關(guān)鍵就是其中顯示的AP,這說明網(wǎng)卡支持軟AP模式。下面進入正題,我在用kali linux自帶的hostapd建立WPA2加密的AP后,終端連接時總是顯示無法正常握手的錯誤:
注意紅色標(biāo)的錯誤信息,主要就是:
wlan2: STA xx:xx:xx:xx:xx:xx IEEE 802.11: did not acknowledge authentication response mgmt::assoc_resp cb wlan2: STA xx:xx:xx:xx:xx:xx IEEE 802.11: did not acknowledge association response Data/PS-poll frame from not associated STA xx:xx:xx:xx:xx:xx
接下來,為了解決這個問題,我在網(wǎng)上搜了無數(shù)中文和鳥語網(wǎng)頁,嘗試了各路方法。比如,刪除系統(tǒng)自帶的hostapd,下載源碼直接編譯。不過git clone下載的源碼在我機器上始終無法編譯通過,直接下載官方網(wǎng)站提供的tar.gz源碼包,雖然可以編譯通過,但運行出錯。
卡在這里很長時間,不過有個別網(wǎng)站說到也遇到這個問題,并通過修改源代碼后再編譯可以解決。修改方法是,在源代碼src/ap/ieee802_11.c中將兩處return注釋掉,如下:
if (!ok) { hostapd_logger(hapd, mgmt->da, HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_NOTICE, "did not acknowledge authentication response"); //return; } if (!ok) { hostapd_logger(hapd, mgmt->da, HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_DEBUG, "did not acknowledge association response"); //return; }
但我的機器上源碼編譯通過不了?。]辦法,只能直接更改系統(tǒng)自帶的hostapd程序了。用ida打開hostapd,在Strings windows窗口中進行排序后,找到兩處連續(xù)的關(guān)鍵字符串:
雙擊后可以找到引用字符串的代碼處。第一處是在080D9678處,同時可以看到,sub_80D95E0的子程序調(diào)用了loc_80D9678:
繼續(xù)跟蹤到sub_80D95E0,以圖形視圖查看,明顯jz是錯誤信息判斷,出錯了就沿綠線,調(diào)用上面的出錯誤信息,我們只需要將jz跳轉(zhuǎn)nop掉,讓程序沿紅線繼續(xù)下去即可。
經(jīng)過查看,這句jz代碼在文件偏移0009160C處,代碼為74 6A,只需要將其改為90 90。在kali中,用十六進制編輯器對hostapd進行修改:
hexeditor /usr/sbin/hostapd
將對應(yīng)偏移處的數(shù)值修改完畢:
同理,再將第二處錯誤信息的調(diào)用跳轉(zhuǎn)nop掉,這次是jz loc_80DC618,文件偏移00094426,十六進制數(shù)據(jù)為0F 84 EC 01 00 00:
用hexeditor全部改為90:
Ctrl+x 保存推出,再次運行hostapd,手機成功連接,顯示connected:
真是一次無比曲折的經(jīng)歷。從最初想用airbase-ng建立WPA加密的AP到無奈使用hostapd,從使用rtl8187網(wǎng)卡無果再到購買合適的網(wǎng)卡,從編譯代碼不通過再到直接修改可執(zhí)行文件,折騰了那么長時間。把經(jīng)歷寫出來,供有需要的朋友參考,少走彎路!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。