我是如何繞過Google和Facebook等大站的兩步驗證的

        戳上面的藍字關注我們哦!
        我是如何繞過Google和Facebook等大站的兩步驗證的

        我是如何繞過Google和Facebook等大站的兩步驗證的

        因著前幾天在一個群里看到有人說Facebook的賬號被盜用了,損失了幾萬美金,最后也不了了之。代理商同學提醒建議打開雙重驗證:為了提高 Facebook 平臺的安全性,我們建議廣告主必須打開雙重驗證才能訪問商務管理平臺。這段時間因新冠疫情的蔓延,線上活動的活躍度不斷上升,廣告主個人帳戶遭盜用的情況屢有發生,這給了網絡危險分子可乘之機,讓他們得以竊取商務管理平臺的訪問權限,投放虛假或有誤導性的廣告。


        看到這個事情,想到一篇古早的文章,分享給大家,以下為正文,內容比較多,請耐心觀看:

        我記得在兩年前,兩步驗證(2-Factor-Authentication, 2FA)變得非常普及并且在各大主流網站(Google, Facebook, Yahoo 等)廣泛應用。那時我十六歲,天真的我想不通為什么這么天才的想法之前沒有人想到過。在那時,我認為2FA就是一個可以保護自己的金色盾牌,它可以抵御那些最復雜的網絡欺詐。







        當兩步驗證依舊是你所使用的主要應用的金色盾牌時,我開始列出以下文檔—我是如何用一系列的方法來繞過Google, Facebook, Yahoo, LinkedIn的兩步驗證以及幾乎任何向語音信箱發送兩步驗證標記的服務的。

        注:超過959萬的澳大利亞Optus公司的手機用戶會受到我下面所說的語音信箱的攻擊。這959萬使用兩步驗證的用戶中任何一人,都很有可能會受到我下文所說的繞過兩步驗證的攻擊。

        兩步驗證的分析,概念以及流程

        兩步驗證的分析

        當將兩步驗證看做一個整體時,從一個攻擊者的角度看來僅僅有這些東西。在我第一次對兩步驗證的分析中,我經常在想是否可能進行以下的攻擊:

        暴力搜索兩步驗證的pin碼(有一些服務,比如蘋果,只有四位的pin,并且幾乎沒有任何頻率的限制)。

        發現pin生成的漏洞。

        通過某種方法竊取兩步驗證后的session標記,這樣攻擊者可以不用通過兩步驗證就登錄賬戶。

        以上技術都是攻擊的有效手段,但是通常沒有人會使用,因為這些手段太老套了,已經有了相應的防御。


        在我經歷過這個初步測試的階段后,我列舉了更多的東西,意識到一定有一個弱點能夠讓我們完全避開兩步驗證。這個弱點就是語音信箱。
        有些讀者可能會知道為什么語音信箱容易出問題,因為他們可能聽說過2009年英國某些名人的語音信箱被黑客攻擊的丑聞。他們進入語音信箱的方式相當讓人擔心,分為以下幾種:默認的語音信箱PIN,未設置語音信箱PIN以及撥打自己電話的方法—都在Sophos Security中寫到過。
        在另一起類似的事故中,Cloudflare公司的CEO也是通過語音信箱繞過兩步驗證的受害者之一。然而,在這一次事件中,攻擊更為復雜,要求攻擊者設法使得AT&T(美國電話電報公司)的員工將Matthew Prince的語音信箱重定向到一個假的語音信箱處。
        那些我用來登錄到語音信箱賬號(僅限于那些已經授權的用于測試的賬號)的方法在很久以前我就寫過了,并且執行起來并不難。
        雖然進入語音信箱的方法受到越來越多的關注,但是這一方法并不適應部分國家的大多數網絡。

        概念及攻擊流程

        作為一個攻擊者,你需要知道四件事情,才能進入被攻擊者被兩步驗證保護的賬號中。它們包括:

        被攻擊者的用戶名/郵箱和密碼。

        被攻擊者關聯到兩步驗證服務的手機號。

        一個手機號欺詐服務。

        手機語音信箱遠程登錄的賬號。

        在現實中,作為一名富有經驗的攻擊者,以上四點要求并不難達到。獲取用戶名和密碼可以通過任何傳統的方法做到,獲取關聯的手機號碼在現在也并不困難。
        手機號欺詐服務,比如Spoofcard(可以顯示虛假的手機號碼的服務)僅僅花費十美元就可以多次使用并且可以獲得手機語音信箱的端點。另外,如果想要避免Spoofcard的登記,他們可以雇傭VoIP服務,打電話人的ID可以是虛假的,作用是一樣的。


        攻擊第一階段:

        攻擊者在支持兩步驗證的網絡應用上登錄被攻擊者的賬號。

        攻擊者向被攻擊者的手機號撥打電話(只需要20-30秒即可)
        在此之后立即選擇兩步驗證的選項要求通過電話發送兩步驗證的驗證碼
        由于被攻擊者正在跟攻擊者通話,兩步驗證的電話服務就會立即將驗證碼發送到被攻擊者的語音信箱里。
        這是第一個漏洞。我是這樣認為的,大家或許不同意,但是我想不出別的使驗證碼發送到語音信箱的方法了。由于這種方法的易用性,這樣做的時候有一點危險。根據過去幾年的語音信箱黑客的情況來看,通過向語音信箱發送pin,看起來好像不用管下面我將要告訴你們的第二個漏洞,直接就可以繞過兩步驗證。
        當被攻擊者沒有接兩步驗證的電話時,兩步驗證的pin碼也會被發送到語音信箱中。
        繞過兩步驗證的第二階段實際上依賴所謂的語音信箱竊聽/電話竊聽。

        我是如何繞過Google和Facebook等大站的兩步驗證的

        上圖是應用于澳大利亞的和我的整個第二部分的方法,它只是和上述移動服務運營商相對應(在未發現其他的運營商之前)。在圖中,我展示了我認為容易受到語音信箱攻擊的網絡以及其他部分或者完全不易攻擊的網絡。
        另外,我必須指出,英國的Three 和EE網絡也很容易通過電子欺騙受到語音信箱攻擊。這一點最近被英國的The Register證實。

        我是如何繞過Google和Facebook等大站的兩步驗證的

        完全易受攻擊的:
        Telco公司的自動數字識別(ANI)或者是Caller ID是用來判斷呼叫者是否是語音信箱賬戶的合法擁有者。如果ANI或Caller ID和賬戶持有者相匹配,在進入語音信箱賬戶時系統就不會要求輸入pin碼。
        在美國,可以不通過Caller ID來請求pin碼,然而在澳大利亞,據我所知除非服務提供商從他們的服務上來解決問題,否則沒有可以預防語音信箱受到欺詐攻擊的辦法。
        通過網絡語音電話業務運營商或者專門的欺詐服務提供商獲得ANI/Caller ID欺詐服務。
        在上文列出的所有的所有易受攻擊的服務中,輸入目標號碼為+610411000321.
        輸入被攻擊者的手機號作為要顯示的Caller ID.
        如果你在使用SpoofCard(可以顯示虛假的手機號碼的服務),你會收到一個手機號和一個訪問碼。撥打這個手機號碼并輸入訪問碼。
        你會連接到被攻擊者的語音信箱服務提供商的終端上。在這里輸入被攻擊者的手機號并按#鍵、
        你現在會擁有被攻擊者語音信箱的全部權限。這甚至包括可以改變用戶pin碼或者是歡迎音樂的權限。
        為什么目標號碼是+610411000321
        澳大利亞有三大主要的移動業務運營商:Telstra, Optus和Vodafone。
        Telstra, Optus和Vodafone可以轉售他們的服務,因此業務可以拓展到其他的提供商處。
        所有的中間商用和Optus相同的主要服務(例如賬號信息熱線,語音信箱服務等)。
        因此,如果攻擊者能夠開發任何三個電信提供商其中的任何一個服務的話,每個下屬的服務提供商也很有可能受影響。
        Optus呼叫語音信箱的主號碼是“321”。
        然而,當進行欺詐攻擊時,由于我們不能呼叫“321”我們需要遠程號碼去呼叫。
        Optus為在海外的用戶提供了一個可以呼叫的遠程號碼,這個號碼就是:+610411000321,并且這個可以作為任何提供欺詐服務的終端。
        注意:Optus語音信箱中任何易被攻擊的端點都已經被固定了,包括我曾經用來繞過他們的端點。
        部分易受攻擊/不易受到攻擊的:
        我說過Telstra, Virgin和 Vodafone是部分易受攻擊或不易受到攻擊的,因為我并沒有機會徹底測試攻擊語音信箱的能力。然而我的確知道:

        Telstra不管是什么Caller ID或者是ANI都要求一個pin碼,因此對于我上文描述的破解來說是安全的。

        Vodafone在未設置pin碼的情況下,如果我通過欺詐服務冒充你的號碼撥打,會讓我設置pin碼或者是進入你的語音信箱。

        Virgin Mobile我并未測試,然而由于它是Optus網絡的一部分,因此它很有可能是易受攻擊的。

        你如果不確定你現在使用的是哪種網絡,或者你想檢查一下自己是否是易受攻擊的,我的一個朋友((Aleksa Sarai)寫了一段程序通過你的手機號來確定你的在澳大利亞的移動網絡。你只需輸入你的手機號然后點擊check就可以了。

        你可以在Github上找到檢測移動網絡的代碼。


        谷歌安全團隊揭露

        我是如何繞過Google和Facebook等大站的兩步驗證的谷歌是兩步驗證的早期使用者,它的全部服務都使用了兩步驗證。如果你所選擇的電話公司在語音信箱安全方面管理非常嚴格的話,谷歌現在使用的兩步驗證系統還是非常安全的,但是谷歌所提供的兩步驗證可以繞過的概率其實是非常高的。

        假設你現在已經閱讀了上文中提到的破解步驟,使我能夠繞過兩步驗證的Google, Facebook, Yahoo 等其他主要的支持兩步驗證服務的漏洞是當你不在線時,兩步驗證會發送兩步驗證標記到你的語音信箱中。單看這一點,這是個很小的問題,但是站在安全的角度上來看,這個漏洞是非常明顯的。
        語音信箱并未實現全球統一化,它的安全性也是一樣的。每個電話公司都運行他們自己的語音信箱管理服務。

        語音信箱服務的安全并不由谷歌管理而是由電話商管理。

        一旦兩步認證的標記或者OTP在語音信箱中,有許多可以攻擊的因素,可以撤銷標記而不改動谷歌端的數據。

        如果你想看我和谷歌對話的全部郵件記錄,你可以點擊這里: google.pdf

        注意:通過這個繞過兩步驗證的方法并不能不動聲色地來盜取谷歌賬戶,因為很有可能一旦登錄到支持兩步驗證的谷歌賬戶中就會自動向用戶發送信息。在前面的步驟中你必須選擇撥打電話的方式然后繼續破解。這樣很可能會引起受害者的警覺。

        他們對我最初的破解的回復如下:

        嗨,

        謝謝你的錯誤報告。我們已經看了你提交的數據并且確信這不是谷歌產品的安全缺陷。這個攻擊假設了一個易被盜取的密碼,并且實際的易被攻擊性是由于電話商提供的對語音信箱的保護不夠充分導致的。請直接向電話商報告這些。

        Regrads,

             Jeremy

        雖然我知道語音信箱系統不夠安全這是電話商的錯誤,我仍然覺得谷歌把兩步驗證標記發送到語音信箱這一做法有缺陷,這是個很危險的做法,并且大部分2FA提供商都不這樣做。因此,我作出了以下回復:

        Hi, Jeremy,

        當我發現這些漏洞時,我完全理解并且我也和電話商在不斷聯系。

        澳大利亞和英國的大部分電話商都只要求一個并未鎖定的四位的pin碼。然而,使用VoIP服務以及Asterisk AGI(http://www.voip-info.org/wiki/view/Asterisk+AGI)的一些腳本就在一天內可以進入語音信箱的賬號。

        實質上,雖然你說的“這一定是電話商的問題”是對的。這不僅意味著在最近四年里(或更多),在澳大利亞使用Optus提供的服務的人(澳大利亞的大部分人)是非常容易受到繞過兩步驗證攻擊的,這也意味著許多國家的電信商也非常容易受相同種類的攻擊。

        我覺得把這個問題說成是一個純粹的電話商的問題,會有點忽略掉兩步驗證并沒有很好的理由來發送到個人的語音信箱里這個事實。另外,先不考慮由于外部的易受攻擊性使得谷歌的兩步驗證可以被繞過這件事,谷歌這樣做事實上還是會把敏感信息交給一個可能易受攻擊的終端。

        另外,在做了一些調查后,我能夠跟Duosecurity 和Authy的專門負責兩步驗證的工作人員交流了。當我第一次發現谷歌發送兩步驗證的標記到語音信箱時,我非常肯定像Duosecurity 和Authy這樣的兩步驗證服務提供商也是易受攻擊的。但是我錯了,他們并不會將兩步驗證標記發送到語音信箱。他們是這樣處理這個問題的:

        - 在通過語音發送PIN碼或者兩步驗證標記時要求用戶的某些交互行為。

        - 在語音信箱留下一個空白信息而不是pin。

        -要求用戶的交互作為驗證的方式(接到兩步驗證的電話->告訴用戶按下數字鍵”x”->如果正確按下=確認,如果沒有=未確認)

        請讓我知道你對此有何看法以及谷歌是否有應對這種情況的措施。十分顯然這個問題是由于電話商的不安全的語音信箱服務造成的,然而這并不是谷歌或者是我可以控制的因此使得兩步驗證在某種程度下易受攻擊。

        兩步驗證對于那些將Optus手機號和谷歌賬戶綁定到一起的澳大利亞人來說是無效的,并且至少近四年是無效的(假設其他人已經知道Optus語音信箱的漏洞了)。

        謝謝,

        Shubham

        谷歌很快回復道:

        嗨,

        感謝你解釋這個問題的潛在作用域。

        由于這并不是我們2SV系統在技術上的缺陷,我不確定我們能夠做些什么來應對這個問題。但是我已經把一個bug記錄下來并且會讓團隊成員來看一看。

        Jeremy


        假設這個問題不能修正,因此目前解決這個問題的最好方法就是禁用通過短信或者電話的兩步驗證,啟用谷歌的兩步驗證,如果你綁定到手機就可能容易受到攻擊。

        這個設置方法可以在下面找到:https://accounts.google.com/b/0/SmsAuthSettings

        我是如何繞過Google和Facebook等大站的兩步驗證的

        另外,當不確定時,可以通過下面的方法通過兩步驗證來還原谷歌賬戶:https://support.google.com/accounts/answer/183728
        https://support.google.com/accounts/answer/152124
        我自己還原賬戶時失敗了,我的朋友也是一樣的。
        然而一段時間以前,Matthew Prince (Cloudflare)成功地還原了賬戶。
        狀態: 仍然易受攻擊/并不會修復 | 揭露時間: Wed, Apr 30, 2014 at 11:49 AM

        ———————————————————————————————————————————————————–

        向Facebook安全團隊揭露

        因為我的一個失誤,在這次揭露之前我剛剛意識到可以用攻擊谷歌的類似方法來攻擊Facebook。Facebook稱他們的兩步驗證“Login Approvals”是一個類似于登錄通知的特點,但是有額外的安全步驟。

        用和上述步驟相同的流程來破解,同樣可以繞過Facebook的兩步驗證。

        我是如何繞過Google和Facebook等大站的兩步驗證的

        讓Facebook發送驗證碼到語音信箱的步驟如下:

        登錄賬戶。

        點擊“通過短信發送驗證碼”。

        會顯示出撥打電話的選項。

        通過撥打被攻擊者電話或其他方法保證被攻擊者處于通話狀態。

        點擊“電話通知驗證碼”選項。

        驗證碼會被發送到語音信箱中。

        另外,除了上述模式,也可以通過向”https://www.facebook.com/ajax/login/approvals/send_sms“發送表單數據為”method_requested=phone_requested”的請求。

        這個方法是通過截取最初發送短信的請求,將”sms_requested”替換為”phone_requested”來實現的,它是最有效地方法。

        你可以在這里找到我向facebook 披露這個漏洞的完整版本facebook.pdf.

        然而,他們對此的回復如下:

        Shubham 你好,

        我們目前暫時禁用了通過電話來發送登錄驗證碼的功能,未來還將進一步研究。我們的計劃是當可以實現用戶在通話中的交互時再重新啟用這一功能,這樣就可以防止我們將驗證碼發送到語音信箱中。

        Neal, Facebook 安全團隊

        Facebook在我繞過兩步驗證之后迅速的禁用了部分功能,他們非常迅速地采取了措施,至少是臨時的措施。

        狀態: 不再會受攻擊| 揭露日期: Sun, May 11, 2014 at 10:28 AM


        向 LinkedIn安全團隊揭露

        正如谷歌和Facebook一樣,當被攻擊者沒有接到系統自動來電或者占線時LinkedIn就會將兩步驗證碼發送到被攻擊者的語音信箱中。

        LinkedIn處理地很好,他們關閉了通過電話發送兩步驗證碼這個功能,直到他們可以和第三方的兩步驗證提供商來修復這個問題。

        你可以在這里看到我和LinkedIn發送的所有郵件linkedin.pdf.

        他們對這一問題的主要回復如下:

        Shubham,你好

        感謝你在公開這個問題之前告訴我們。

        雖然這個問題對我們的影響是有限的,但是我們暫時關閉了發送兩步驗證碼的語音的功能。我們正在和第三方協商解決這個問題。在問題修復后,我們會考慮恢復語音功能。

        謝謝,

        David

        狀態: 不再會受攻擊| 揭露日期: Wed, Apr 30, 2014 at 4:15 AM


        向雅虎團隊揭露 (通過HackerOne)

        雅虎支持兩步驗證的主要服務也容易受到我上文中所說的攻擊。事實上,對支持兩步驗證的雅虎賬號的攻擊會更嚴重因為攻擊者并不用擔心被攻擊者知道他的賬號已經登錄。

        常支持兩步驗證的網絡應用會在有人登錄后發送短信通知。然而,當登錄到雅虎賬號以后,并不會發送短信,并且可以選擇通過短信或者是電話來發送驗證碼。

        我是如何繞過Google和Facebook等大站的兩步驗證的

        由于攻擊者不用冒著被立刻知道的風險,攻擊者會更有可能登錄更長時間。

        我是如何繞過Google和Facebook等大站的兩步驗證的

        當我揭示這個問題14天后,雅虎仍然沒有回復,因此他們仍然很容易受到攻擊。
        在這里可以看到我揭示雅虎漏洞的全過程yahoo.pdf
        狀態: 仍然易受攻擊/尚未回復 | 揭露日期: 2014-04-29 13:46:16 UTC


        向 Authy & Duosecurity揭露

        我很快假設那些提供兩步驗證的服務都一定是易受攻擊的。然而,我是錯誤的—因為他們知道這個事實并且對發送pin碼到語音信箱這個問題有著長遠考慮。

        你可以閱讀我和Authy 及 Duosecurity的來往郵件 authy.pdf and duosecurity.pdf

        這兩個服務提供商都在24小時內給了我回復,并且他們對此都非常熱心。

        Authy | 狀態:不易受攻擊 | 揭露日期: Wed, Apr 30, 2014 at 1:27 AMDuosecurity | 狀態:不易受攻擊 | 揭露日期: 2014-04-29 13:46:16 UTC

        Authy會發送空白的語音信息,Duosecurity會在驗證前要求用戶的交互操作。

        感謝Authy 和Duosecurity!

        我是如何繞過Google和Facebook等大站的兩步驗證的

        緩解技術和向電話商 Telco 揭露:

        大的讀者你們好,我校對了上面的一些信息,包括世界各地各種移動網絡的終端。

        由于我不能查對 Telco 的海外電話商,我 知道世界各地的人都關心他們的電話商是否是易受攻擊的。

        要看你是否可以通過欺詐服務不用pin碼就進入語音信箱,僅需要跟著上午所說的流程來,將終端號碼改為你的電話商用的。

        如果你的電話商也容易受到攻擊請通過郵件或者是評論來告訴我。

        應對這個問題并沒有想象中的那么簡單,這要求重新構造兩步驗證的電話通知。這里是一些建議的解決方法(在給那些公司的郵件里都提到過):

        要求用戶的交互作為驗證(推薦)

        以語音信箱檢測結束通話(不可靠)

        最后也是最重要的:

        去除語音通話發送驗證碼的功能(減少了用戶體驗)

        向 Optus揭露

        我和Ben Grubb一起工作很愉快(The Sydney Morning Herald and The Age的編輯),他幫助我把這些問題反映給Optus并且在此過程中非常熱心也很有合作精神。

        當我第一次發現Optus是易受攻擊的時候,我的研究讓我注意到這篇文章thisIs your Voicemail Hackable? Optus, Telstra and Vodafone respond

        Optus很嚴肅認真地對待顧客的隱私。顧客必須設置一個獨一無二的PIN碼來激活他們的語音信箱系統。當他們的PIN碼被用戶服務重新設置時,Optus會建議他們重新設置一個只有他們自己知道的PIN碼。

        至于欺詐服務,我們正在尋求多種方式來強調這一正在出現的整個工業界的威脅,包括技術上的解決途徑以及進行對顧客的教育。

        這篇文章的日期是2011年7月22號,距今已經三年了,令人驚訝的是這個問題依然存在并且是一個關于隱私的巨大隱患!

        我和Ben在2014年3月2日將這個問題告訴了Optus,從那以后七天左右Optus修復了這個問題。

        然而,在修復以后幾個小時之內,我能夠又一次找出不用pin就可以進入任何Optus顧客語音信箱的方法。Optus正在研究這樣的繞過方法,但是在沒有其他公告之前,如果你使用Optus或者其他使用他們網絡的代理商的服務,請假設你的語音信箱是不安全的,比如Vaya, LiveConnected, Amaysim, Exetel, Yatango 等等。

        備注

        正如同我之前對于captchasSSRF和 rate limiting的迷戀一樣,我認為語音信箱和移動網絡的安全會占用我未來的許多時間。

        每個人都知道移動網絡的安全性很差,但是都沒有做出什么改變,直到我們因此受到侵害才能意識到這件事情的重要性。


        END

        做一個不斷成長的公眾號 

        我在這里等你,一起成長,一起學習

        我是如何繞過Google和Facebook等大站的兩步驗證的



        我就知道你“在看”

        我是如何繞過Google和Facebook等大站的兩步驗證的

        作者:小馬哥 來源:小馬哥

        本文為作者獨立觀點,不代表出海筆記立場,如若轉載請聯系原作者。
        (7)
        小馬哥的頭像小馬哥
        上一篇 2020年5月19日 上午12:22
        下一篇 2020年5月20日 上午12:09

        相關推薦