這篇文章我將介紹如何制作中間人(MitM)設(shè)置來嗅探SIM卡和后端服務(wù)器之間的流量。雖然這不是一項新的研究,但我希望這將幫助一些沒有電信基礎(chǔ)的人學(xué)習(xí)移動數(shù)據(jù)嗅探和虛假基站的知識。但是我只會介紹使用2G和GPRS的SIM卡的方案。希望將來可以帶來更多關(guān)于3G,4G的文章吧!
為什么
隨著越來越多的物聯(lián)網(wǎng)設(shè)備誕生,這些設(shè)備一般通過SIM卡連接到其服務(wù)器。他們可以是很常見的東西,如咖啡機(jī),智能手表,智能眼鏡,汽車或重要醫(yī)療設(shè)備等更大的東西。如果您想要嗅探物聯(lián)網(wǎng)設(shè)備和后端服務(wù)器之間的流量,這篇文章可以幫你。
目標(biāo)
為了對移動數(shù)據(jù)流量進(jìn)行中間人攻擊。我們需要使用USRP硬件制作了一個簡單的偽基站。
要求
我在文中提到的用于進(jìn)行此設(shè)置的設(shè)備。當(dāng)然還有許多其他代替品。所以我沒有任何聲稱這是最好的方法!
硬件
1.[USRP B210](https://www.ettus.com/product/details/UB210-KIT)(帶天線和電纜usb3連接到PC)
2.智能手機(jī)/或舊的GSM手機(jī)。在IoT pentest場景的情況下,我們在此處使用IoT設(shè)備。
3.一張SIM卡
4.一臺筆記本電腦
軟件
1.OpenBTS
2.SipauthServ
3.Smqueue(可選)
4.Asterisk(可選)
5.操作系統(tǒng) – Ubuntu 16.04
什么是OpenBTS

OpenBTS.org是一個開源軟件項目,致力于制作電信協(xié)議和傳統(tǒng)的復(fù)雜的專有硬件系統(tǒng),具有互聯(lián)網(wǎng)協(xié)議和靈活的軟件架構(gòu)。OpenBTS軟件是一個Linux應(yīng)用程序,它使用軟件定義的無線電向用戶設(shè)備提供標(biāo)準(zhǔn)的3GPP空中接口,同時將這些設(shè)備作為SIP端點(diǎn)呈現(xiàn)給Internet。這構(gòu)成了一種新型無線網(wǎng)絡(luò)的基礎(chǔ),該網(wǎng)絡(luò)有望擴(kuò)大對未服務(wù)和服務(wù)不足市場的覆蓋范圍,同時釋放創(chuàng)新平臺,包括為新興網(wǎng)絡(luò)技術(shù)提供支持,例如針對物聯(lián)網(wǎng)的網(wǎng)絡(luò)技術(shù)。[參考](http://openbts.org/about/)
建立偽基站

首先要做的是運(yùn)行OpenBTS。我按照此[鏈接](http://openbts.org/w/index.php?title=BuildInstallRun#Running_It_All)從源代碼構(gòu)建OpenBTS。通常會有一些缺少的依賴項需要修復(fù)。除此之外,構(gòu)建OpenBTS不需要特定的設(shè)置。首先,我們主要需要兩個服務(wù),即OpenBTS本身和SipauthServe。從源代碼構(gòu)建OpenBTS和SipauthServe后,啟動終端中的兩個服務(wù)。在上面的[鏈接]( http://openbts.org/w/index.php?title=BuildInstallRun#Running_It_All)中,還有其他組件,如Smqueue和Asterisk,它們使呼叫和SMS功能正常工作。但由于我們的重點(diǎn)主要是移動數(shù)據(jù)(這里是GPRS),我們在這里不關(guān)心設(shè)置這些組件。
運(yùn)行OpenBTS
1.使用USB將USRP設(shè)備連接到計算機(jī)。
2.就我而言,我新建了一個虛擬機(jī),我在其中構(gòu)建了所有必需的軟件,移植起來很方便。但在使用虛擬機(jī)時,要確保具有USB轉(zhuǎn)發(fā)功能。在virtualbox中,您應(yīng)該要啟用USB>設(shè)備> Ettus Research USRP B210(或類似的名稱。如果您不知道正確的名稱,請執(zhí)行dmesg以確定。)
3.uhd_usrp_probe:使用此命令,用于Linux的USRP硬件驅(qū)動程序外設(shè)報告實(shí)用程序,一旦檢測到設(shè)備,將下載B210的固件。
4.運(yùn)行SipauthServe:
home/dev/subscriberRegistry/apps$ sudo ./sipauthserve
5.運(yùn)行OpenBTS:
home/dev/openbts/apps$ sudo ./OpenBTS
6.運(yùn)行OpenBTSCLI
home/dev/openbts/apps$ sudo ./OpenBTSCLI
配置基站
在上面的步驟中,您會注意到我們運(yùn)行了OpenBTSCLI。這主要是為了配置我們的OpenBTS。
下面是OpenBTSCLI中主要配置:
1.允許任何電話無需任何身份驗(yàn)證即可連接到基站。無論其提供商。
OpenBTS> config Control.LUR.OpenRegistration
2.啟用GPRS
OpenBTS> config GPRS.Enable
3.啟用IP轉(zhuǎn)發(fā)
echo 1 > /proc/sys/net/ipv4/ip_forward
4.設(shè)置iptables:[這里](http://openbts.org/w/index.php?title=GPRS)詳細(xì)介紹了整個GPRS和IPtables設(shè)置。
讓手機(jī)連接到基站
智能手機(jī)需要更改某些設(shè)置才能使其連接到基站。如果是物聯(lián)網(wǎng)設(shè)備,需要設(shè)置更多東西,因?yàn)樵谖锫?lián)網(wǎng)設(shè)備中幾乎沒有選項來配置“移動網(wǎng)絡(luò)”。我們稍后會談到這一點(diǎn)。
設(shè)置Android手機(jī)
(在iPhone上基本相似。)
1.啟用2G。這將從4G下調(diào)至2G:設(shè)置>蜂窩網(wǎng)絡(luò)>首選網(wǎng)絡(luò)類型> 2G
2.添加APN:設(shè)置>蜂窩網(wǎng)絡(luò)>接入點(diǎn)名稱。添加時,請確保將MCC和MNC設(shè)置為與SIM卡相同的值。在德國,MCC為262.跨國公司將根據(jù)提供商進(jìn)行更改。詳細(xì)信息查看此[鏈接](http://www.mcc-mnc.com/)。APN和Name值可以是任何值。此外,將身份驗(yàn)證保持為none。

3.搜索我們的基站并手動連接到它:設(shè)置>蜂窩網(wǎng)絡(luò)>搜索網(wǎng)絡(luò)。通常它顯示為包括MCC和MNC值的數(shù)字。

如果您看到該消息,即您的手機(jī)已在網(wǎng)絡(luò)上注冊,則可以通過檢入OpenBTSCLI來確認(rèn):
OpenBTS> tmsis
這將顯示注冊到基站的SIM卡的IMSI。IMSI是SIM卡的私有標(biāo)識符。具有IMSI的攻擊者可以識別和跟蹤訂戶的網(wǎng)絡(luò)。
移動數(shù)據(jù)嗅探
GPRS正常工作后,您應(yīng)該可以在手機(jī)中實(shí)際看到“LTE”或移動數(shù)據(jù)符號的位置看到符號“G”。嘗試在智能手機(jī)的瀏覽器中搜索某些內(nèi)容。這會超級慢。
|