我們以前曾調查過黑客會通過連接在USB端口的正在充電的手機實施攻擊,在這項研究中,我們重新審視了USB端口的安全性。我們發現,手機充電時,即使電腦處于鎖屏狀態,黑客也可以通過對USB端口的攻擊成功地入侵用戶的電腦甚至可以獲取管理員登錄憑據。這讓人想起了2015年發現的Carbanak病毒,當時它的所竊總金額就已經高達10億美元,它在盜取資金相關的賬號信息同時,能入侵銀行系統管理員賬號,讓犯罪分子獲得權限,通過內部視頻監控鏡頭觀察員工的一舉一動。
在本文中,我們將介紹如何通過一位連接在電腦USB的手機的員工那里開始,擴展到對整個公司范圍內的任何計算機的管理員憑據進行竊取。其最終目的就是獲取用戶名和密碼哈希值,但我們不會詳細介紹如何解密檢索到的哈希值,或者如何在攻擊中使用這些哈希值。
我們要強調的是,這種攻擊的硬件成本不超過20美元,可以由沒有任何編程背景的人員執行。不過唯一的難點就是要對企業電腦進行物理訪問,就是要讓一個員工將受感染的手機插到未關機電腦的USB上。
我們在實驗中使用了一款新的代號為樹莓派零(Raspberry Pi Zero)的版本,有史以來最小的樹莓派尺寸,65mm x 30mm x 5mm,采用512MB LPDDR2 SDRAM,帶一個micro-SD卡槽,一個mini-HDMI接口,支持1080p 60fps視頻輸出,兩個microUSB接口——其中一個用于供電,可以運行 Raspbian 以及任何你喜歡的應用,包括 Scratch, Minecraft 和 Sonic Pi等。
使用Raspberry Pi微型電腦來攔截和分析網絡數據包或甚至作為通用滲透測試平臺的做法是非常常見的。大多數已知的微型電腦都建立在ARM微處理器上,Kali Linux是基于Debian的Linux發行版, 是專門設計用于數字取證和滲透測試的操作系統。
有專門用于滲透測試目的的計算棒,例如USB Armory。然而,集成USB A型連接器(Raspberry Pi需要適配器)要比USB Armory的成本要高出許多(約135美元),而與Raspberry Pi Zero相比,它的實用性卻相當不錯。在2016年,Raspberry Pi就號稱可以通過USB連接到PC或Mac用于竊取電腦的哈希值,緊接著Raspberry Pi Zero聲稱也可用于從3個瀏覽器中竊取cookies。
那么,就讓我們檢測一下。
首先,我們嘗試攔截企業網絡中的用戶憑據,利用Raspberry Pi連接到運行不同操作系統的筆記本電腦和臺式機中。
第二,我們嘗試利用Raspberry Pi Zero檢索并竊取cookie,以恢復熱門網站上的用戶會話。
實驗1:竊取域憑據
方法
這種攻擊背后的關鍵點就是利用網絡適配器的仿真,在樹莓派的操作系統Raspbian下找到模擬以太網適配器的模塊非常簡單。我們在cmdline.txt和config.txt文件中進行了一些配置更改,以便在啟動時加載模塊。
還有一些額外的步驟包括安裝python解釋器,sqlite3數據庫庫和一個名為Responder的特殊應用程序,用于數據包嗅探。
除此之外,我們還設置了我們自己的DHCP服務器,并定義了IP地址的范圍和子網掩碼,將其與我們要進入的網絡分開。最后一步包括配置usb0接口,并在啟動時自動加載Responder和DHCP服務器。
檢測結果
只要我們將模擬的Raspberry Pi Zero連接到Windows 10,就可以看到連接的Raspberry Pi被確定為有線局域網連接。網絡設置對話框將此適配器顯示為遠程NDIS Internet共享設備,從而被自動分配比其他適配器更高的優先級。
響應程序會掃描流經仿真網絡的數據包,并且在看到用戶名和密碼哈希值后,將它們引導到假的HTTP / HTTPS / NTLM(它支持v1和v2)服務器。每次應用程序(包括在后臺運行的應用程序)發送身份驗證數據或用戶在網絡瀏覽器的標準對話窗口中輸入攻擊時,例如,當用戶嘗試連接到共享文件夾或打印機時,就將觸發攻擊。
在自動模式下攔截的哈希值,即使系統被鎖定也是有效的,不過只有在計算機具有另一個活動的本地網絡連接時才能運行。
如上所述,我們對三種情況下的Poc進行了測試:
1.針對登錄域名的公司電腦
2.針對公共電腦上的公用電腦
3.針對家用電腦
在第一種情況下,我們發現Raspberry Pi不僅攔截來自通過USB連接的系統的數據包,還攔截了域中其他企業網絡用戶的NTLM身份驗證請求。
在觀察了幾分鐘之后,我們已經證明,Raspberry Pi連接的時間越長,就從網絡中提取的數量就越多。通過模擬數據,我們可以得出結論,在我們的設置中可以提取的哈希數量大約是每小時50個哈希。當然,實際的數量還要取決于網絡拓撲結構,即一個段內的用戶數量及其活動。在此,要說明的是,我們的實驗運行時間沒有超過半小時,因為我們也偶然發現了一些奇怪的副作用,這些會在稍后描述。
提取的哈希存儲在純文本文件中,如下圖所示:
在第二種情況下,我們只能提取連接系統的用戶憑據:域或Windows名稱、密碼哈希。如果我們設置了用戶可以嘗試訪問的共享網絡資源,就可能會得到更多用戶信息。
在第三種情況下,我們只能獲取系統所有者的憑據,該憑證未連接到域驗證服務。如果我們設置共享網絡資源并允許其他用戶連接到它們,可能會出現第一種情況的結果。
以上所描述的這些在Windows系統的攔截哈希的方法也同樣適用于Mac 系統。當我們嘗試連接需要輸入域名的內部網站時,就會看到此對話框警告安全證書無效。
現在,我們來說明一下,上面提到的超過半小時運行時發生的有趣副作用,當設備連接到網絡中的[ny]系統時,從同一網絡中的其他設備發送到網絡打印機的任務會在打印機隊列中被擱置。當用戶嘗試在驗證對話窗口中輸入憑據時,隊列還沒有被清除。經過分析,這些憑據并未到達網絡打印機,而是進入到Raspberry Pi的閃存。當嘗試從Mac系統通過SMB協議連接到遠程文件夾時,也會發現類似的行為。
Raspberry Pi Zero與Raspberry Pi 3
一旦我們看到Windows和Mac的NTLM系統受到微型電腦的攻擊,我們就要嘗試使用Linux。此外,我們決定攻擊Raspberry Pi本身,因為Raspbian操作系統是建立在Debian Weezy核心之上的。
現在我們要做個專門針對Raspberry Pi 3的實驗,順便說一下,連接到企業網絡本身就是一項具有挑戰性的任務,但是可行,所以我們不會在這個試驗中重點關注這個。要注意的是,Raspbian操作系統拒絕為USB設備網絡分配更高的優先級,默認的選擇是內置以太網。在這種情況下,Responder應用程序就會處于運行狀態,但由于數據包未經過設備,因此無法執行任何操作。當我們手動刪除內置的以太網連接時,看到的與以前在Windows中所觀察到的相似。
在Chromebook上運行的桌面版Debian上也出現了類似的情況,系統不會自動將USB將太網適配器設置為默認設置。因此,如果我們將Raspberry Pi Zero連接到運行Debian的系統上,則攻擊測試將失敗。其實,我們不認為創建Raspberry Pi-in-the-middle攻擊可能會成功,因為這更難實現,更容易檢測。
實驗二:竊取cookie
方法
在第一個實驗中,就已經說到,當Raspberry Pi Zero通過USB連接到電腦時,可以從PC竊取cookies。其實,我們還發現了一個名為HackPi的應用程序,它是一個具有響應程序的PoisonTap(XSS JavaScript)的變體,我們在上面描述過。
本實驗中的微型計電腦配置與上一個實驗相似。 HackPi可以更好地建立自己的網絡適配器,因為它具有增強的桌面操作系統發現機制,它能夠在Windows 7/8/10,Mac和-nix操作系統上自動安裝網絡設備驅動程序。在第一個實驗中,如果遠程NDIS Internet共享設備沒有自動安裝(特別是當PC被鎖定時),Windows 7,8或Vista上的攻擊就可能會失敗。而且, HackPi從來不會在Mac系統下分配自己的默認網絡適配器優先級。
與第一個實驗不同的是,這個實驗會使用從本地存儲的網頁,來啟動惡意Java腳本竊取cookie。如果攻擊成功,PoisonTap的腳本將保存從站點攔截的cookie,其列表也會位于本地存儲。
實驗結果
如果計算機未鎖定并且用戶的瀏覽器還處于打開狀態,則Java腳本將啟動網絡請求,將正在瀏覽的網頁重定向到惡意的本地網頁。然后瀏覽器從先前定義的列表中打開網站。
如果用戶在未關機的電腦上打開任何運行程序,則Raspberry Pi Zero會在短暫的超時后在地址行中啟動帶有URL go.microsoft.com的默認瀏覽器,然后如上所述的那樣進行攻擊。但前提是,默認瀏覽器在瀏覽器歷史記錄中有Cookie,否則攻擊者什么信息都不會獲得。
在我們實驗的腳本中,從提供的列表中看到的網站有youtube.com,google.com,vk.com,facebook.com,twitter.com,yandex.ru,mail.ru和超過100個其他網址。以下就是被盜的cookies日志:
我們就以使用pikabu.ru網站檢查被盜cookies的有效性為例,將信息粘貼到其他設備的干凈瀏覽器字段中,并能夠掌握用戶帳戶以及所有統計信息。在屬于鐵路公司售貨服務的另一個網站上,我們能夠檢索到用戶的令牌并在另一臺計算機上接管用戶的帳戶,因為認證協議僅使用一個LtpaToken2進行會話識別。
在這種情況下,攻擊者可以得到有關受害人以前使用過的命令、護照號碼、姓名、出生日期、電子郵件和電話號碼的信息。
這種攻擊的一個特點是,愛好者已經學會了如何在當今企業環境中找到的所有系統上自動安裝網絡設備驅動程序:Windows 7/8/10,Mac OS X,但是,在一個鎖定的系統中,該攻擊方法并不奏效。不過我們認為這只是一個時間問題,因為網絡愛好者也會克服這些困難。
不過要說明的是,本文中的這些惡意測試網頁已被卡巴斯基實驗室給阻止了,并將其檢測命名為Trojan.JS.Poisontap.a。
總結
目前已經有了各種各樣的單板微型電腦,從廉價和通用的Raspberry Pi Zero到專門針對滲透測試的計算棒,它們在大小上已經與USB相當了。
從以上的實驗可以看出, Windows PC是最容易發生攻擊的系統,旨在通過USB連接的Raspberry Pi就可以攔截身份驗證名稱和密碼。即使用戶沒有本地或系統管理員權限,只要可以檢索其他用戶(包括具有管理員權限的用戶)的域憑據,該攻擊就會發生。它也適用于Mac 操作系統。
到目前為止,竊取Cookie的第二種攻擊類型僅在系統解鎖時才起作用。該方法會將流量重定向到惡意頁面,這很容易被安全解決方案檢測到并阻止。當然,被盜的cookies只適用于那些不采用嚴格的HTTP傳輸策略的網站。
防護建議
我們提供了一些建議,以避免被攻擊者的輕松攻擊。
對用戶來說:
1.如果你在公共場合,要離開電腦一會兒,請關閉電腦。
2.如果未關閉,重新進入電腦后,檢查是電腦端口是否被插入任何額外的USB設備。如果看到立即拔出,并將其配置信息刪除。
3.你被要求通過外部閃存驅動器,比如USB設備,分享過一些東西嗎?建議使用云端傳輸或電子郵件發送文件。
4.如果有網站要對你的身份進行驗證,請立即關閉該網站。
5.定期更改密碼,無論是對PC上還是對經常登錄的網站。請記住,并不是所有的網站都會使用防護機制來防范Cookie數據被替換的,你可以使用專門的密碼管理軟件輕松管理密碼。
6.啟用雙因素身份驗證,例如,請求登錄確認或動態令牌。
當然,這一切的前提是,強烈建議你安裝并定期更新殺軟產品。
對管理員來說:
1.如果網絡拓撲結構允許,我們建議僅使用Kerberos協議來驗證域用戶。不過,如果需要使用LLNMR和NTLM身份驗證來支持傳統系統的話,我們建議將網絡分解成段,這樣即使一個網段受到威脅,攻擊者也無法訪問整個網絡。
2.限制特權域用戶登錄遺留系統,特別是域管理員。
3.域用戶密碼應定期更改。
4.企業網絡中的所有計算機都配置安全保護產品,并定期更新。
5.為防止未經授權的USB設備連接,請激活安全產品套件中提供的設備控制功能。
6.如果你擁有網絡資源,我們建議你激活HSTS(HTTP嚴格傳輸安全性),以防止從HTTPS轉換為HTTP協議并從被盜cookie中欺騙憑據。
7.如果可能,禁用監聽模式并激活Wi-Fi路由器和交換機中的客戶端(AP)隔離設置,禁止其監聽其他工作站的流量。
8.激活DHCP Snooping設置,保護企業網絡用戶免受假DHCP服務器的DHCP請求的誘導。
最后對于所有的人來說,不管是通過在線還是物理方式,你并不確定你的登錄憑據是否已經被泄露。因此,我們強烈建議你在HaveIbeenPwned網站上檢查你的憑據,以確保安全性。