1. 程式人生 > >雙因素認證繞過的釣魚工具

雙因素認證繞過的釣魚工具

研究人員釋出了兩個工具——Muraen和NecroBrowser。它們可以自動繞過2FA進行釣魚攻擊,大多數防禦措施都無法抵禦它們。

雙因素認證繞過的釣魚工具雙因素認證繞過的釣魚工具

滲透測試人員和攻擊者為他們的武器庫添加了一個新的工具,這種工具可以繞過雙因素身份驗證(2FA) 自動化釣魚攻擊,而此過程不易被檢測和阻止。該工具使此類攻擊更容易部署,因此組織機構應該相應地調整其反釣魚培訓。
這個新工具包在上個月阿姆斯特丹舉辦的黑客大會 (Hack in the Box) 上釋出,幾天後在GitHub上釋出。它有兩個元件:一個被稱為Muraena的透明反向代理和一個被稱為NecroBrowser 的Docker容器(用於自動化無頭Chromium例項)。

中間人式攻擊

大多數人所熟悉的傳統網路釣魚攻擊是由虛假登入頁面組成的,這些頁面在攻擊者控制的web伺服器上,並由與目標網站名稱相似的自定義域名提供服務。然而,這種靜態攻擊對使用雙因素身份驗證的線上服務無效,因為沒有與合法網站進行互動來觸發生成一次性程式碼。沒有這些程式碼,攻擊者就無法使用釣魚憑證登入。
為了繞過2FA,攻擊者需要讓他們的釣魚網站充當代理,代表受害者轉發請求到合法網站,並實時回傳。最終目標不僅是為了獲取使用者名稱和密碼,而是真正網站用來關聯登入賬號的活動會話令牌(也被稱為會話cookie)。通過將這些會話cookie放在瀏覽器中,可以直接訪問與它們關聯的帳戶,而不需要進行身份驗證。
這種基於代理的技術並不新鮮,人們一直知道它們的存在,但是進行這樣的攻擊需要技術知識,並且需要配置多個獨立的工具,比如將NGINX web伺服器當做反向代理使用。準備好工具後,攻擊者需要在竊取的會話cookie過期之前手動使用它們。此外,有些網站使用子資源完整性 (Subresource Integrity, SRI) 和內容安全策略 (Content Security Policy, CSP) 等技術來防止代理,有些網站甚至會根據標題來遮蔽自動化的瀏覽器。
Muraena和NecroBrowser的出現是為了破解這些防禦措施,並使大部分過程自動化。這意味著現在很多攻擊者可以發起繞過2FA的釣魚攻擊。這些工具是由瀏覽器開發框架專案 (Browser Exploitation Framework Project , BeEF) 的前核心開發人員Michele Orru和Bettercap專案的成員Giuseppe Trotta共同開發的。

Muraena和NecroBrowser是如何工作的?

Muraena是用Go程式語言編寫的,這意味著它可以在任何Go可用的平臺上被編譯和執行。一旦部署完成,攻擊者就可以配置他們的釣魚域名,併為其獲得合法的證書——例如,通過非營利性的Let's Encrypt證書頒發機構。
該工具包含一個充當反向代理的小型web伺服器和一個爬蟲程式。該爬蟲程式可以自動確定從合法網站代理哪些資源。代理在傳遞來自受害者的請求之前重寫這些請求。
爬蟲程式會自動生成一個JSON配置檔案,然後可以手動修改該檔案來繞過更復雜網站上的各種防禦機制。該軟體包包括對谷歌、GitHub和Dropbox的示例配置檔案。
一旦受害者登陸一個由Muraena提供支援的釣魚網站,登入過程就會和真正的網站完全一樣。網站會要求使用者輸入他們的2FA驗證碼。當他們提供驗證碼並完成身份驗證之後,代理會竊取會話cookie。
會話令牌通常由瀏覽器儲存在一個檔案中,並在後續請求中提供服務。這種方法可以使網站自動向瀏覽器提供一段時間內不需要密碼登陸而(會話長度)訪問帳戶的許可權。Muraena可以自動將收集到的會話cookie傳送給它的第二個元件NecroBrowser,而NecroBrowser可以立即開始濫用這些cookie。
NecroBrowser是一個可以通過API進行控制的微服務,進行配置以後可以通過在Docker容器內執行的Chromium無頭例項執行操作。根據可用的伺服器資源,攻擊者可以同時生成數十個或數百個這樣的容器,每個容器都有一個從受害者那裡竊取的會話cookie。
殭屍瀏覽器例項執行的操作可以完全自動化。例如,根據賬戶型別的不同,可以對電子郵件進行截圖、啟動密碼重置、將惡意金鑰上傳到GitHub或者在郵箱新增惡意轉發地址。瀏覽器例項還可以用來收集社交網路上聯絡人和朋友的資訊,甚至可以通過類似蠕蟲的攻擊向這些朋友傳送釣魚資訊。

如何防範自動釣魚攻擊

不幸的是,很少有技術解決方案能夠完全在伺服器端阻止這種釣魚攻擊。Muraena的出現說明SRI和CSP等技術的效果有限,攻擊者可以以自動化的方式繞過它們。此外,該工具表明2FA不是一個完美的解決方案。
然而基於代理釣魚攻擊無法突破某些2FA措施——那些使用支援通用第二因素 (Universal 2nd Factor, U2F) 標準的USB硬體令牌的企業。這是因為這些USB令牌通過瀏覽器建立了與合法網站的加密驗證連線,而不是通過攻擊者的反向代理。與此同時,基於簡訊驗證碼或移動驗證軟體的解決方案很容易受到攻擊,因為受害者必須手動輸入這些驗證碼,而他們可能會在釣魚網站上做這些事情。
另一種技術解決方案是為瀏覽器安裝擴充套件,這種擴充套件程式可以檢查使用者是否在正確的網站上輸入了他們的憑證。谷歌為Chrome開發了一個名為Password Alert的擴充套件,當用戶試圖在任何不屬於谷歌的網站上輸入谷歌憑證時,它會發出警告。
培養使用者保持警惕,確保他們在正確的域名和正確的網站上進行身份驗證非常重要。TLS/SSL和有效證書的存在不足以證明該網站是合法的,因為人們現在可以輕鬆免費獲得證書,所以大多數釣魚網站