如何通過中間人攻擊嗅探SIM卡的流量通訊
寫在前面的話
這篇文章我將介紹如何製作中間人(MitM)設定來嗅探SIM卡和後端伺服器之間的流量。雖然這不是一項新的研究,但我希望這將幫助一些沒有電信基礎的人學習移動資料嗅探和虛假基站的知識。但是我只會介紹使用2G和GPRS的SIM卡的方案。希望將來可以帶來更多關於3G,4G的文章吧!
為什麼
隨著越來越多的物聯網裝置誕生,這些裝置一般通過SIM卡連線到其伺服器。他們可以是很常見的東西,如咖啡機,智慧手錶,智慧眼鏡,汽車或重要醫療裝置等更大的東西。如果您想要嗅探物聯網裝置和後端伺服器之間的流量,這篇文章可以幫你。
目標
為了對移動資料流量進行中間人攻擊。我們需要使用USRP硬體製作了一個簡單的偽基站。
要求
我在文中提到的用於進行此設定的裝置。當然還有許多其他代替品。所以我沒有任何聲稱這是最好的方法!
硬體
1.[USRP B210]( IT" ref="" rel="nofollow,noindex" target="_blank">https://www.ettus.com/product/details/UB210-KIT )(帶天線和電纜usb3連線到PC)
2.智慧手機/或舊的GSM手機。在IoT pentest場景的情況下,我們在此處使用IoT裝置。
3.一張SIM卡
4.一臺筆記本電腦
軟體
1.OpenBTS
2.SipauthServ
3.Smqueue(可選)
4.Asterisk(可選)
5.作業系統 – Ubuntu 16.04
什麼是OpenBTS
OpenBTS.org是一個開源軟體專案,致力於製作電信協議和傳統的複雜的專有硬體系統,具有網際網路協議和靈活的軟體架構。OpenBTS軟體是一個Linux應用程式,它使用軟體定義的無線電向用戶裝置提供標準的3GPP空中介面,同時將這些裝置作為SIP端點呈現給Internet。這構成了一種新型無線網路的基礎,該網路有望擴大對未服務和服務不足市場的覆蓋範圍,同時釋放創新平臺,包括為新興網路技術提供支援,例如針對物聯網的網路技術。[參考]( http://openbts.org/about/ )
建立偽基站
首先要做的是執行OpenBTS。我按照此[連結]( http://openbts.org/w/index.php?title=BuildInstallRun#Running_It_All )從原始碼構建OpenBTS。通常會有一些缺少的依賴項需要修復。除此之外,構建OpenBTS不需要特定的設定。首先,我們主要需要兩個服務,即OpenBTS本身和SipauthServe。從原始碼構建OpenBTS和SipauthServe後,啟動終端中的兩個服務。在上面的[連結]( http://openbts.org/w/index.php?title=BuildInstallRun#Running_It_All )中,還有其他元件,如Smqueue和Asterisk,它們使呼叫和SMS功能正常工作。但由於我們的重點主要是移動資料(這裡是GPRS),我們在這裡不關心設定這些元件。
執行OpenBTS
1.使用USB將USRP裝置連線到計算機。
2.就我而言,我新建了一個虛擬機器,我在其中構建了所有必需的軟體,移植起來很方便。但在使用虛擬機器時,要確保具有USB轉發功能。在virtualbox中,您應該要啟用USB>裝置> Ettus Research USRP B210(或類似的名稱。如果您不知道正確的名稱,請執行dmesg以確定。)
3.uhd_usrp_probe:使用此命令,用於Linux的USRP硬體驅動程式外設報告實用程式,一旦檢測到裝置,將下載B210的韌體。
4.執行SipauthServe:
home/dev/subscriberRegistry/apps$ sudo ./sipauthserve
5.執行OpenBTS:
home/dev/openbts/apps$ sudo ./OpenBTS
6.執行OpenBTSCLI
home/dev/openbts/apps$ sudo ./OpenBTSCLI
配置基站
在上面的步驟中,您會注意到我們運行了OpenBTSCLI。這主要是為了配置我們的OpenBTS。
下面是OpenBTSCLI中主要配置:
1.允許任何電話無需任何身份驗證即可連線到基站。無論其提供商。
OpenBTS> config Control.LUR.OpenRegistration
2.啟用GPRS
OpenBTS> config GPRS.Enable
3.啟用IP轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
4.設定iptables:[這裡]( http://openbts.org/w/index.php?title=GPRS )詳細介紹了整個GPRS和IPtables設定。
讓手機連線到基站
智慧手機需要更改某些設定才能使其連線到基站。如果是物聯網裝置,需要設定更多東西,因為在物聯網裝置中幾乎沒有選項來配置“行動網路”。我們稍後會談到這一點。
設定Android手機
(在iPhone上基本相似。)
1.啟用2G。這將從4G下調至2G:設定>蜂窩網路>首選網路型別> 2G
2.新增APN:設定>蜂窩網路>接入點名稱。新增時,請確保將MCC和MNC設定為與SIM卡相同的值。在德國,MCC為262.跨國公司將根據提供商進行更改。詳細資訊檢視此[連結]( http://www.mcc-mnc.com/ )。APN和Name值可以是任何值。此外,將身份驗證保持為none。
3.搜尋我們的基站並手動連線到它:設定>蜂窩網路>搜尋網路。通常它顯示為包括MCC和MNC值的數字。
如果您看到該訊息,即您的手機已在網路上註冊,則可以通過檢入OpenBTSCLI來確認:
OpenBTS> tmsis
這將顯示註冊到基站的SIM卡的IMSI。IMSI是SIM卡的私有識別符號。具有IMSI的攻擊者可以識別和跟蹤訂戶的網路。
移動資料嗅探
GPRS正常工作後,您應該可以在手機中實際看到“LTE”或移動資料符號的位置看到符號“G”。嘗試在智慧手機的瀏覽器中搜索某些內容。這會超級慢。
*參考來源: insinuator ,周大濤編譯,轉載請註明來自FreeBuf.COM