如何玩轉Intel多款產品提權漏洞?

手把手教你如何玩轉Intel多款產品提權漏洞(漏洞CVE-2017-5689,場景復現、事件型漏洞挖掘)

本文屬於合天原創獎勵文章,未經允許,禁止轉載!

0x01

背景

當地時間5月1日(北京時間5月2日上午),英特爾(Intel)官方發布安全公告,公告表明Intel旗下產品英特爾主動管理技術(AMT),英特爾標準可管理性(ISM)和英特爾小型企業技術版本中的固件版本6.x,7.x,8.xn 9.x,10 n.x,11.0,11.5和11.6存在提權漏洞,可以使無特權攻擊者獲取這些產品的高級管理功能許可權,CVE編號:CVE-2017-5689。 n普通用戶基於Intel的PC不受影響。

0x02

組件介紹

AMT將系統的完全控制暴露到網路,允許IT人員和其它系統管理員遠程重啟、修復並輕微調整伺服器和工作站。它能夠提供一個虛擬串列控制台和(如果安裝的是正確的驅動)遠程桌面訪問許可權。

0x03

漏洞危害

首先,Intel AMT提供遠程控制電腦的能力系統,即使它關閉電源(但連接到電源和網路)。

此外,Intel AMT完全獨立於計算機系統上安裝的操作系統。其實這個技術允許遠程刪除或重新安裝。所以有幾種可能的攻擊情形可以使用該漏洞進行。

這些攻擊基於以下Intel AMT功能:

?Keyboard Video Mouse(KVM)功能,此功能內置在Intel AMT Web控制平台中,遠程使用此功能執行您在本地進行的任何常見的物理動作(使用滑鼠,鍵盤),可以遠程載入,執行任何程序到目標系統,使用通用的文件管理器讀/寫任何文件。

?IDE-R(IDE重定向),將啟動設備遠程更改為其他虛擬鏡像,從而導致系統將無法從本地硬碟驅動器啟動常規操作系統。

?使用SOL(Serial over LAN),攻擊者可遠程打開/關閉電源/重啟/重置系統,還可以用於訪問BIOS設置並進行編輯。

0x04

漏洞成因分析

(部分引自匡恩網路「分析英特爾高危漏洞CVE-2017-5689帶來的影響」)

1. 用戶發起登錄請求,伺服器給予回復(nonce、http方法和請求的URL),隨即,用戶在登錄界面輸入用戶名、密碼,客戶端發送字元串(user_response),該字元串是由用戶名、密碼、nonce值、http方法以及請求的url生成的hash值。

2. 伺服器端也會通過資料庫中的用戶名密碼計算一個類似的加密字元串(computed_response)。伺服器使用strncmp()函數對兩個字元串進行比較,如果二者相符就會讓用戶登陸Intel AMT Web界面。

3. Intel AMT漏洞的出現就是由於調用了strncmp()函數:

if(strncmp(computed_response, user_response, response_length)) exit(0x99);

在此函數中,對user_response和computed_response的值進行比較,要認證成功,變數user_response的值必須等於computed_response,因此無論長度如何,strncmp()函數的返回值必須為0,方表示驗證成功。

但是寫這段代碼的程序員錯把本應是computed_response的長度寫成了user_response的長度,放到了strncmp()函數中。

試想一下:如果提供的是空字元串,長度為零,沒有位元組被檢查,因而沒有位元組是不一樣的。因而,空的響應字元串被認為有效而被放行,實際上明明是無效的,因此通過修改response的所有值為空,即可繞過驗證進行登錄。

4. 因此,將密碼用空值代替,將沒有位元組被檢查,strncmp()返回零,表明驗證成功。因而,空的響應字元串被認為有效而被執行,從而繞過密碼核實機制,登錄管理界面。

漏洞分析原理機制可參考漏洞發現者的paper:embedi.com/files/white-

0x05

漏洞復現

所需工具:burpsuite(用於抓包改包)、firefox瀏覽器

首先登陸管理頁面

然後在firefox開啟代理,在http代理處填入127.0.0.1,埠設為8080

然後設置burpsuite,如圖,點擊proxy—option—match and replace

點擊add,添加一條規則,分別填入match框和replace框如圖所示的值,點擊ok,並勾選中這條規則

開始打開代理(intercept is on)進行抓包

點擊log on,Burpsuite抓到包,這個包不重要,點擊forward放行即可

網頁隨即會彈出如下對話框

在用戶名中輸入admin,密碼任意,點擊確定,抓到如下所示的包,再點擊forword即可

然後成功進入管理頁面

漏洞最大的危害性在於左側一系列的控制欄

包括:

點擊system後查看到的系統硬體組件配置的詳細信息

點擊event log,可以查看系統日誌;點擊remote control,可以對此伺服器進行遠控操作,包括但不限於重啟、開關機等,此處是高危

點擊network settings,可以查看並且修改ip地址、子網掩碼、網關等,危害也相等嚴重

點擊user accounts,用戶賬戶處,可以在此修改、添加、刪除用戶

綜上所述,可以看到系統重要的信息都可以查看,並且在user accounts可以添加刪除用戶,在remote control可以重啟、關閉伺服器、工作站,在未經授權的情況下,這些操作都是危害十分嚴重的

0x06

漏洞修復

第一步: 確認你的設備是否為具備AMT、SBA、ISM功能的系統,參照文檔How To Find Intel? vPro? Technology Based PCs 。如果不是,不需要做什麼操作。

第二步: 使用工具檢查系統使用了有漏洞的固件,參照文檔Download INTEL-SA-00075 Detection and Mitigation Tool 。如果你的系統已經是如上的不受影響的版本,不需要更多操作。

第三步: 英特爾強烈推薦檢查設備的OEM廠商是否提供了更新後的固件,它會有一個3開頭的4位版本號(X.X.XX.3XXX),比如 8.1.71.3608 。

第四步: 如果設備廠商還沒有提供修補漏洞的固件,緩解措施請參考文檔Download INTEL-SA-00075 Detection and Mitigation Tool

0x07

聲明

本文僅是提供復現CVE-2017-5689的思路,以幫助大家更好地理解漏洞形成機理,提高安全意識,了解網路安全的重要性。若有人因此做出破壞網路安全的行為,與此文作者及合天智匯無任何關係。特此聲明。


推薦閱讀:

漏洞之我觀
漏洞提交級別說明
安卓開發/反編譯工具中多存在嚴重漏洞
Linux PIE/stack 內存破壞漏洞(CVE–2017–1000253)預警

TAG:信息安全 | 漏洞挖掘 | 安全漏洞 |