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

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

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

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

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