
在接下來的EXThack 文章中,我們將重點關註固定電話和移動電信繫統的安全。這是繫列文章中的最全面的一篇,將介紹在 GSM 網路中攔截呼叫和簡訊的方法背後的理論背景以及深入探討攔截簡訊驗證碼技術實現細節。
我們可以通過最新的信號源木馬植入技術進行攔截簡訊驗證碼,我們的駭客團隊正在提供此類服務,如果您需要它,請聯繫我們!
按照今天的標准來看,GSM 相當古老,而攻擊本身可以被認為是已知的和過時的。盡管如此,它在今天仍然很適用,而且鑒於二手市場的價格非常有競爭力,所需的設備比以往更便宜。我們希望借此機會引起用戶的註意,在這個時代,手機不僅用於語音,還用於敏感數據。
使用模仿行動電話營運商合法基站行為的虛假基站,惡意實體可以誘使特定區域的行動電話將通信交給它,從而有效地發起“中間人”攻擊。這種攻擊僅在 GSM 網路中可能發生,因為 3G 採用相互身份驗證,基站也必須嚮手機驗證其有效性。不過,使用幹擾器幹擾3G頻段還是比較容易的。如今,幾乎每部手機都具有多頻段功能,因此將退回到 GSM 操作,可以使用假基站方法進行攔截。
假基站如何類比真實基站
使用假基站,無需執行任何密碼分析即可輕鬆攔截 GSM 電話通信。GSM 安全規劃的基本安全問題和基本缺點之一是GSM 電話網路不需要嚮用戶驗證自身身份。只有用戶需要驗證自己的身份才能訪問網路。事實上,用戶必須擁有插入手機的正確 SIM 卡(也可以設定 PIN 碼)才能訪問提供商的網路和服務。因此,通過比較 SIM 卡的憑據來檢查用戶的合法性數據存儲在網路數據庫中(用戶身份驗證)。在 GSM 網路中,這一基本的身份驗證原理僅以單嚮方式實現,因為基站不採用任何身份驗證機制。相應地,行動電話無法評估和證明它們所連接的繫統的合法性以及該繫統是否實際上是其提供商網路的一部分。另一方面,3G採用相互認證,基站也需要嚮手機驗證其有效性。盡管如此,通過使用幹擾器來有效幹擾 3G 頻段,規避這一安全措施還是相對容易的。如今幾乎每部手機都具有多頻段功能,因此將退回到 GSM 操作,可以使用假基站方法進行攔截。
第二個主要的安全缺點是,在 GSM 中加密不是強制性的,併且如果存在的話,要使用的特定加密算法可以在電話和基站之間協商。結果是,如果基站不支援任何加密算法,與手機協商後,通話可以不加密地繼續進行。這樣,只需在用戶附近建立一個不支援加密(或專門禁用加密選項)的假基站,即可使用簡單的中間人方法攔截通信,惡意實體就放置在其中原始呼叫者之間。
鑒於這些缺點,攻擊者唯一要做的就是在給定區域激活一個假基站,假裝它是受害者提供商網路的一部分。GSM 的基本特徵之一被證明是這一努力的有力盟友:每部手機不斷監視來自附近基站的特殊數據傳輸信道信標(BCCH 廣播控制信道),以便選擇適合其通信的產品最好的特徵(通常是最接近的特徵)。這樣,設備可以通過以較低功率傳輸併增加其自主時間和通話質量來節省大量能源。因此,如果攻擊者安裝他的設備併開始傳輸,功率與真實基站信號重疊,
攻擊者如何規避手機的安全性
欺騙手機連接到假基站後,攻擊的下一階段將是破壞其加密。三種算法處理 GSM 中的身份驗證和加密:A3、A5 和 A8。A5用於語音加密。該算法存在各種版本,提供不同級別的安全性(A5/2、A5/1、A5/3 – 按強度順序從最低到最高排序)。甚至還有完全不加密的版本(A5/0)。正常情況下,網路將密鑰Ki存儲在歸屬位置寄存器(HLR)的認證中心數據庫中,密鑰Ki也存儲在用戶的SIM卡中,併且從不在網路中傳輸。由於 Ki 從未被傳輸,因此網路會嚮 SIM 卡發送隨機 128 位數字 (RAND) 進行質詢。使用算法A3,SIM 會生成 32 位簽名回響 (SRES),併將其傳輸回網路。正是該值與 HLR 中相同計算得出的相應值進行比較。如果這些值匹配,則 SIM 卡已通過身份驗證。最後,算法 A8 使用 Ki 和 RAND 生成會話密鑰 Kc,將其饋送到語音加密算法 A5。錶 1 列出了這些算法。非常有趣的是,A3 和 A8 算法都是在一個算法中實現的,即 COMP128。錶 1 列出了這些算法。非常有趣的是,A3 和 A8 算法都是在一個算法中實現的,即 COMP128。錶 1 列出了這些算法。非常有趣的是,A3 和 A8 算法都是在一個算法中實現的,即 COMP128。
錶1 認證和加密算法
A3 獲取存儲在 SIM 和 HLR 中的 128 位用戶身份驗證密鑰 (Ki),併生成 32 位簽名回響 (SRES),作為由 HLR 發送的隨機 128 位數字 (RAND) 質詢的輸出。
A8 從 128 位隨機數 (RAND) 和 128 位 Ki 生成 64 位會話密鑰 (Kc)。
A5 使用 Kc 和傳輸幀的序列號來加密語音。A5被應用到手機中。
當然,攻擊者併不知道 Ki 密鑰,因為它安全地存儲在 SIM 和 HLR 中併且從不傳輸。然而,由於我們場景中的攻擊者實際上是“提供者”,因此他可以接受手機發送的任何 SRES。事實上,假基站發送 RAND 質詢,手機計算 SRES,然後假基站所要做的就是接受這個 SRES,而不實際運行任何檢查。SIM 卡(以及手機)將相信它已經過正確的身份驗證。
然而,攻擊者仍然需要 Ki 來導出 Kc,以便解密接下來的語音傳輸。繫統規劃再次強調可用性而非安全性。如前所述,相應的GSM 協議允許手機和基站之間就是否使用加密算法以及如果使用的話使用哪種加密算法進行協商和達成協議。使用正確的信令消息,假基站通知行動電話它根本沒有任何加密功能(A5/0),因此手機將在不使用加密的情況下進行通信。從那時起,使用適當的設備解調和記錄呼叫的其余部分是一項簡單的任務。
促進這些攻擊的另一個特徵是它們通常是有針對性的,因為特定的手機目標正在被攔截。因此,距離目標20-30米的基站,僅用幾十毫瓦的功率進行傳輸,就可以有效地壓制位於數百米外的合法提供商的基站。由於假基站似乎是手機的更好選擇,因此它會很樂意將通信交給它。
到目前為止,我們已經描述了假基站如何欺騙手機併“捕獲”位於其覆蓋範圍內的手機的通信背後的邏輯。為了讓受害者的呼叫能夠接通,還需要連接回正常網路。因此,作為中間人,攻擊者使用簡單的移動或普通固定電話將通信中繼回真實網路和預期的初始接收者,將其繫統與網路的其余部分互連。當然,在轉接之前,通話的內容都會被記錄下來。
必須註意的是,這種攻擊僅針對受害者的撥出電話。來電不會被攔截,而且在攻擊過程中實際上根本不會發生。原網路的合法基站無法再定位手機,因為手機駐留在不屬於營運商的基站上。因此,網路無法終止對手機的呼叫,因為手機似乎不在覆蓋範圍內。
如今,簡單的登入和強密碼不足以安全地訪問在線服務。最近的一項研究錶明,超過 80% 的駭客攻擊都是由於憑證泄露和薄弱造成的。因此,實施雙因素身份驗證(2FA)已成為必然。它提供了額外的安全層。數據顯示,啟用 2FA 的用戶可以阻止約 99.9% 的自動攻擊。但不要放鬆警惕。
與任何良好的網路安全解決方案一樣,攻擊者遲早會想出繞過它的方法。2FA也不例外!可以通過以簡訊形式發送到用戶智慧手機的免洗代碼來繞過它。盡管如此,由於知道駭客可以使用某些應用程式將您的消息“鏡像”給自己,許多重要的在線服務仍然通過簡訊發送免洗代碼。
那麽簡訊有什麽問題呢?
您認為 Microsoft 等著名公司是否會鼓勵用戶放棄僅出於樂趣而使用簡訊和語音通話的 2FA 解決方案?SMS 以其安全性低而聞名,這使得它容易受到許多不同的攻擊。例如,SIM 卡可能會被篡改。
免洗代碼也可以通過使用反嚮代理駭客技術的現成工具進行駭客攻擊。該程式攔截實際服務與受害者之間的通信,監視併記錄受害者與服務的交互,包括他們可能使用的任何憑據。
此外,我們還可以通過 Google Play 商店在您的 Android 設備上安裝惡意應用程式。如何?如果攻擊者能夠訪問您的憑據併設法在您的筆記型電腦上登入您的 Google Play 帳戶,他就可以自動在您的智慧手機上安裝任何應用程式。然後這只是一些事情的問題。安裝應用程式後,攻擊者可以使用簡單的社會專案技術來說服用戶啟用應用程式正常運行所需的權限。
還有其他選擇嗎?
為了在網際網路上感到安全,您應該首先檢查您的第一道防線是否安全。請註意您的密碼,看看它是否已被泄露。有幾個安全程式允許您執行此操作。例如,輸入您在haveibeenpwned.com 上的電話號碼或郵件。
如果可能,請避免使用簡訊作為 2FA 方法。相反,您可以使用基於應用程式的免洗代碼,例如通過 Google Authenticator。在這種情況下,代碼是在您設備上的 Google Authenticator 應用中生成的。然而,這種方法也可能被我們使用一些復雜的惡意軟體所破壞。更好的選擇是使用特殊的硬體設備,例如 YubiKey。
這些小型 USB 設備提供了在各種服務中啟用 2FA 的簡化方法。這些物理設備需要插入或靠近小工具才能登入 2FA。
這降低了與可見的免洗代碼(例如通過簡訊發送的代碼)相關的風險。
服務提供商、開發人員和研究人員還應繼續致力於創建更易於訪問和安全的身份驗證方法。例如,實施多重身份驗證,同時使用多種身份驗證方法併根據需要進行組合。
簡訊驗證碼是一種驗證用戶身份併保護帳戶免遭未經授權訪問的流行方式。然而,簡訊驗證碼也併非沒有漏洞。我們可以利用這些漏洞來訪問帳戶和敏感信息。在本文中,我們將討論簡訊驗證碼的各種漏洞以及如何防範它們。
安全協議薄弱
簡訊驗證碼最常見的漏洞之一是安全協議薄弱。許多簡訊驗證碼是通過未加密的通道發送的,因此很容易被攔截。我們可以使用各種方法來攔截簡訊,例如使用假基站或中間人攻擊。一旦簡訊被攔截,我們就可以訪問該帳戶。為了防止此漏洞,組織在發送簡訊驗證碼時應使用強加密協議。
社會專案攻擊
社會專案攻擊是簡訊驗證碼的另一個常見漏洞。在社會專案攻擊中,我們會嘗試誘騙用戶泄露其簡訊驗證碼。這可以通過發送看似來自合法來源的網路釣魚電子郵件或簡訊來完成。然後,我們將使用簡訊驗證碼來訪問用戶的帳戶。為了防範此漏洞,組織應該教育用戶了解社會專案攻擊的危險以及如何識別它們。
SIM 交換攻擊
SIM交換攻擊是簡訊驗證碼的另一個漏洞。在 SIM 交換攻擊中,我們將訪問用戶的 SIM 卡併使用它來攔截 SMS 消息。一旦我們能夠訪問 SIM 卡,他們就可以使用它來訪問用戶的帳戶。為了防止此漏洞,組織應使用雙因素身份驗證,該身份驗證需要物理設備(例如 USB 密鑰)來訪問帳戶。
弱密碼
弱密碼是簡訊驗證碼的另一個漏洞。如果用戶的密碼較弱,我們很容易猜出密碼併訪問該帳戶。為了防止此漏洞,組織應要求用戶使用強密碼併定期更改它們。此外,組織應使用密碼管理器來安全地存儲和管理密碼。
數據泄露
數據泄露是簡訊驗證碼的另一個漏洞。如果組織的繫統遭到破壞,我們就可以訪問用戶的簡訊驗證碼併使用它們來訪問用戶的帳戶。為了防止此漏洞,組織應使用強大的加密協議併定期監控其繫統是否存在可疑活動。此外,組織應使用雙因素身份驗證來保護用戶帳戶。
惡意軟體攻擊
惡意軟體攻擊是簡訊驗證碼的另一個漏洞。如果用戶的設備感染了惡意軟體,我們就可以獲取用戶的簡訊驗證碼併使用它們來訪問用戶的帳戶。為了防止此漏洞,組織應使用反惡意軟體來檢測和刪除惡意軟體。此外,用戶應定期更新其設備,以確保運行最新的安全補丁。
瀏覽器中間人攻擊
瀏覽器中間人攻擊是簡訊驗證碼的另一個漏洞。在瀏覽器中間人攻擊中,駭客會將惡意代碼註入用戶的瀏覽器併用它來攔截簡訊。一旦駭客能夠訪問簡訊,他們就可以利用它們來訪問用戶的帳戶。為了防止此漏洞,組織應使用雙因素身份驗證,該身份驗證需要物理設備(例如 USB 密鑰)來訪問帳戶。此外,用戶應定期更新瀏覽器,以確保運行最新的安全補丁。