研究人員發佈了兩個工具——Muraen和NecroBrowser。它們能夠自動繞過2FA進行釣魚攻擊,大多數防護措施都沒法抵禦它們。 |
滲透測試人員和攻擊者爲他們的武器庫添加了一個新的工具,這種工具能夠繞過雙因素身份驗證(2FA) 自動化釣魚攻擊,而此過程不易被檢測和阻止。該工具使此類攻擊更容易部署,所以組織機構應該相應地調整其反釣魚培訓。
這個新工具包在上個月阿姆斯特丹舉辦的黑客大會 (Hack in the Box) 上發佈,幾天後在GitHub上發佈。它有兩個組件:一個被稱爲Muraena的透明反向代理和一個被稱爲NecroBrowser 的Docker容器(用於自動化無頭Chromium實例)。web
中間人式攻擊編程
大多數人所熟悉的傳統網絡釣魚攻擊是由虛假登陸頁面組成的,這些頁面在攻擊者控制的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或者在郵箱添加惡意轉發地址。瀏覽器實例還能夠用來收集社交網絡上聯繫人和朋友的信息,甚至能夠經過相似蠕蟲的攻擊向這些朋友發送釣魚信息。服務器
如何防範自動釣魚攻擊cookie
不幸的是,不多有技術解決方案可以徹底在服務器端阻止這種釣魚攻擊。Muraena的出現說明SRI和CSP等技術的效果有限,攻擊者能夠以自動化的方式繞過它們。此外,該工具代表2FA不是一個完美的解決方案。
然而基於代理釣魚攻擊沒法突破某些2FA措施——那些使用支持通用第二因素 (Universal 2nd Factor, U2F) 標準的USB硬件令牌的企業。這是由於這些USB令牌經過瀏覽器創建了與合法網站的加密驗證鏈接,而不是經過攻擊者的反向代理。與此同時,基於短信驗證碼或移動驗證軟件的解決方案很容易受到攻擊,由於受害者必須手動輸入這些驗證碼,而他們可能會在釣魚網站上作這些事情。
另外一種技術解決方案是爲瀏覽器安裝擴展,這種擴展程序能夠檢查用戶是否在正確的網站上輸入了他們的憑證。谷歌爲Chrome開發了一個名爲Password Alert的擴展,當用戶試圖在任何不屬於谷歌的網站上輸入谷歌憑證時,它會發出警告。
培養用戶保持警戒,確保他們在正確的域名和正確的網站上進行身份驗證很是重要。TLS/SSL和有效證書的存在不足以證實該網站是合法的,由於人們如今能夠輕鬆免費得到證書,因此大多數釣魚網站也可使用HTTPS。網絡