用手機從鎖定的計算機中偷取憑證信息
簡介
Room362之前發布從鎖定計算機中盜取憑證信息一文,其中的方法很棒。這種攻擊方式之所以能成功,主要原因在於系統訪問設備的時候,會自動載入設備驅動,即便計算機處在鎖定狀態也是如此,當然也包括USB網路適配器的驅動程序。
了解到這一點之後,我們就可以嘗試用Android網路共享功能——也就是所謂的Tethering來創建網路。啟用網路共享功能之後,手機設備就能夠接收來自主機的所有通信數據,手機是作為網關存在。這樣一來要執行中間人攻擊簡直輕而易舉。
本文中,我將為大家講解其中涉及的步驟,工具,以及進行一次成功攻擊所需要的配置。
Android網路共享功能
Android設備進入USB Tethering網路共享模式的時候,系統會在USB介面新增一個USB介面描述符並重啟。
主機操作系統會查詢Android設備,也就是通過USB埠連接手機的時候, 它會接收USB網路設備描述符,之後載入驅動程序。
驅動一旦載入,主機操作系統會創建一個新的網路介面(通過USB)。主機處理該網路介面與處理其他介面的方式沒有差別。此時USB連接處在活躍狀態,主機就會發送DHCP請求來獲取IP。
在原生的Android網路共享配置中,系統會用dnsmasp建立一個DHCP和DNS伺服器來響應該請求。它為主機提供連接到網路所需的IP地址以及路由信息。
在Android Tethering網路共享的具體實施中,這些配置細節是硬編碼到Tethering.java程序包中的。顯然,在已獲得root許可權的Android設備中,我們自己動手配置這些信息不是難事。
除此之外,iptables轉發規則可以設置為從USB到外部介面(通常為Wi-Fi或3G)間轉發流量。完成這項操作後,主機就可以使用USB網路連接到互聯網了(即網路共享功能)。
中間人攻擊
攻擊者在網路中投放惡意數據包,迫使網路設備連接攻擊者的網路,那麼發動中間人攻擊也就不需要Tethering了。就像前文所說的那樣,通過Tethering網路共享連接的話,主機所有的流量都會流經設備。
即便設備連接到其他網路,部分網路流量還是會流經USB網路,這對於某些身份憑證信息的泄露已經足夠了。
盜取憑證
這一例中,中間人攻擊工具我們選擇了Responder。這是個被動憑證收集工具,Responder監聽指定的NetBIOS Name Service(NBT-NS)以及本地鏈路多播名稱解析 (LLMNR)查詢。該工具包含了通過TCP和UDP埠監聽的欺騙身份驗證伺服器。
受害者被重定向至這些伺服器,這樣就能獲取到這些人的身份驗證憑證了。
使用Responder劫持流量並捕獲憑證非常高效。特別是當用戶在網上的動作比較活躍的時候(例如,瀏覽網頁,訪問內部共享等)。
從鎖定機器中盜取憑證
該攻擊向量首先假定用戶不在或者在網路中不活躍。還有些先決條件,用戶之前必須已經登錄過主機,或者說已經在主機上進行過身份認證,另外當然也需要我們能夠實際接觸到這台主機及其USB埠。
網路代理自發現協議 (WPAD)協議可用來自動定位proxy auto-config (PAC)文件。PAC的位置可以通過DHCP響應「site-local」選項252(即auto-proxy-config)與「 http://example.com/wpad.dat」值提供給用戶。
DHCP比DNS擁有更高的優先權。如果DHCP提供WPAD URL,則DNS不會執行查詢,這隻適用於DHCPv4。在DHCPv6中沒有定義WPAD選項。
所有的Web瀏覽器都支持該協議,包括Windows,MacOSX,Linux以及iOS和Android系統的。不過默認只有在Windows操作系統中啟用。
方法結合
談到網路共享功能和DHCP,我們前面已經提過,用Android設備可以創建網路和DHCP伺服器。使用Android的dnsmasq也可以很方便的創建DHCP伺服器,並且配置WPAD選項指向Responder。
至於身份驗證,在鎖定的計算機上之所以可以這樣攻擊是因為代理自動配置文件包含了DHCP響應所需的細節信息。
當主機嘗試檢索PAC文件,Responder的HTTP服務會返回一個「(407)身份驗證請求」信息。在大多數情況下,主機通過用戶緩存的憑證進行身份驗證。
Windows使用NTLM協議來完成認證,這是個challenge-response身份驗證協議。用戶密碼hash以及challenge-response步驟在此作為用戶身份驗證的token。
雖然沒有明文憑證可供攻擊者直接使用,但破解出hash並獲得用戶密碼還是有可能的。如果密碼強度比較弱,那麼破解所需的時間不會太長。
不過對於剛啟動的機器來說由於還沒有緩存憑證,所以這種攻擊方式是無效的。然而一旦用戶先前就進行過身份驗證,主機就可以嘗試再次獲取文件。
不過還面臨一個挑戰,就是如何在Android設備上跑Responder(這是個Python項目)。這裡提供多種解決方案供考慮,最簡單粗暴的方法就是安裝qPython應用。
qPython是一款針對Android的Python編譯器,它能夠完美的運行Responder。還有個替代方案是安裝NetHunter,NetHunter是從Kali Linux移植到Android之上的,同樣的它也包含Python編譯器。
一台已root的Android設備,一顆好奇的心?
安裝qPython,下載腳本和Responder,然後按指示進行。
這段視頻展示的是Windows 10鎖屏界面。測試主機最新安裝了Windows操作系統,且沒有加入任何域,未連接到其他任何網路,用戶之前通過了身份驗證後鎖定了屏幕。
連接一台Android設備,運行上面提到的Responder腳本。注意在執行Responder後的幾秒鐘,在沒有進行任何交互的情況下,用戶的NTLM hash已經捕獲到。下圖展示了捕獲到的數據:
腳本執行步驟,通過設置網路並運行Responder啟用網路共享功能。
黃色部分為捕獲到的hash
解決方案
在操作系統和瀏覽器中禁用自動代理配置設置,至少可以防止上述鎖屏攻擊。不過在公司網路中需要用到代理或者依賴於自動配置,當然就會有些麻煩了。不過我們要使用代理,最好是硬編碼設置或者由自動配置腳本提供。以下為不同操作系統規避這種攻擊的設置方法:
Windows 10, 8.1, and 8
打開設置 (開始 → 在Windows 10中為設置 / 左下角 → Windows 8, 8.1為更改計算機設置).
選擇
網路
之後選擇左邊的代理.確保「自動檢測設置」已禁用.
Windows 7, Vista, XP
單擊開始進入控制面板.
在控制面板中選擇互聯網選項.
在連接選項卡中選擇LAN設置.
確保「自動檢測設置」已禁用.
MacOSX
打開系統偏好.選擇
網路
之後選擇活躍連接選擇
高級
之後進入代理
選項卡.確保「自動發現代理」已禁用.
*參考來源:
Cigital
,FB小編鳶尾編譯,轉載請註明來自FreeBuf(FreeBuf.COM)
※英國GCHQ正式發布開源數據分析工具CyberChef(含使用示例)
※Win10 Edge瀏覽器從越界寫到任意內存讀寫
※企業安全團隊強大與否,看這八個關鍵指標
TAG:FreeBuf |
※連充電寶都能偷取手機隱私!教你一招如何避免信息泄露!
※她18歲就打入國民黨軍統機關,偷取秘密無數,戴笠用計把她抓獲
※男子開挖掘機去偷取款機,破牆而入!
※蘋果員工「偷取客人手機中的果照」數量超過上百張
※他努力爬上部長卻只為偷取公司機密,他的計劃馬上就要成功
※盜墓賊因偷取趙匡胤腰帶 被屍體噴出的毒液毀容
※順豐「偷取」電商客戶信息讓小商戶幾乎破產 真是「個別行為」?
※他們用老道方式偷取石油,彪悍的存在以命換油
※特斯拉怕上汽「偷取」核心科技拒不合作,是矯情還是戰略?
※他偷偷取走愛因斯坦的大腦,研究天才的奧秘,結果出人意料!
※攻擊者利用7號信令(SS7)中的漏洞從德國銀行偷取錢財
※不思議迷宮太空船廢墟血狼怎麼偷 隱藏血狼彩蛋怎麼偷取
※這種鳥可以模仿其他動物的聲音發出假警報,目的是偷取它們的食物
※俄羅斯偷獵者,為私利不惜去偷取猛獁象屍體
※偷取仙女衣服可以獲得妻子?當他有念想時現實卻是
※神秘商店被天美偷偷取消了,限定皮膚返場?大家完全被天美騙了!
※頭大無腦!美飢餓棕熊偷取喂鳥器中鳥食未遂
※故事:為錢財偷取鍍金佛頭,兩盜匪最終遭報應死於非命
※男子深夜潛入公司偷取文件,結果撞見了她頓時淚流滿面