多款Intel產品未授權訪問漏洞(CVE-2017-5689)

Darklord.W發表於2020-10-16
 

 

  1. 漏洞簡介
    1. 漏洞描述

英特爾通過其 vPro 商務處理器平臺提供了 IntelActive Management Technology(AMT)技術,這項技術能讓IT管理人員遠端管理和修復PC、工作站和伺服器。

這項預設的功能使用基於Web的控制頁面,通過遠端埠16992和16993讓管理員遠端管理系統。為防止功能被未授權的使用者濫用,AMT服務會使用HTTP摘要認證和Kerberos驗證機制。許可權提升漏洞出現在web控制介面的認證使用者環節。

    1. 影響範圍

第一代 Core family: 6.2.61.3535

第二代 Core family: 7.1.91.3272

第三代Core family: 8.1.71.3608

第四代Core family: 9.1.41.3024 and 9.5.61.3012

第五代Core family: 10.0.55.3000

第六代Core family: 11.0.25.3001

第七代Core family: 11.6.27.3264

    1. 漏洞原理

該漏洞源於程式沒有充分的驗證輸入

    1. 環境搭建

在fofa、shodan等平臺上搜尋 port:16992,選擇測試目標

  1. 漏洞分析

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的長度,放到了strcmp()函式中。

4、因此,將user_response值清空,即傳送空響應,將沒有位元組被檢查,strncmp()返回零,表明驗證成功。因而,空的響應字串被認為有效而被執行,從而繞過密碼核實機制,登入管理介面。

    1. 開始驗證

選擇一個測試目標:

 

嘗試登陸,輸入使用者名稱密碼admin/admin,並開啟burpsuite抓包

 

然後,清空response的值,並點選forward放過抓包,便可以以管理員許可權登陸intel amt web介面

 

接下來,點選User Accounts,繼續開啟抓包,並清空response值後forward

 

成功跳轉至使用者修改介面,可以選擇修改admin密碼,或者刪除使用者,新增新使用者等,這裡以新增新使用者做演示,目前的操作都需要經過抓包清空response值再放過才可以

 

點選New,繼續抓包清空response再forward

可以隨意建立一個使用者,設定許可權,輸入密碼,強度需要高一些

 

繼續抓包清空response再forward

接下來便可以用剛建立的使用者登陸

 

復現成功

  1. 漏洞總結及防禦方案

關閉amt服務,升級韌體

 

後期利用:

可以下載ManageabilityDeveloperToolKit,它是intel amt 管理工具,官網連結如下:

Open MDTK

下載後,點選Manageability Automation Tool

右鍵點選新增主機,輸入主機ip,新增的使用者名稱和密碼

可以右鍵Manager Computer

等待連線,然後便可以對目標主機進行遠端操作等

 

 

宣告:僅做驗證,未非法訪問資料,且該測試目標為外網主機。

相關文章