IntelAMT 固件密碼繞過登錄漏洞分析與實戰
IntelAMT 固件密碼繞過登錄漏洞分析與實戰
Byantian365.com simeon
1.1漏洞簡介
2017年5月1日,英特爾公布了AMT漏洞(INTEL-SA-00075),但該漏洞的細節未公開。2017年5月5日,Tenable公司研究人員卡洛斯·佩雷斯通過分析LMS軟件包,最終發現並成功利用該漏洞。
1.漏洞編號
IntelAMT 固件密碼繞過登錄漏洞CVE漏洞編號CVE-2017-5689;Intel AMT 固件可以配置英特爾可管理性SKU:英特爾主動管理技術(AMT)和英特爾標準可管理性(ISM)。換句話說可以通過安裝LMS軟件包來管理硬件,提供Web訪問接口。無特權網絡攻擊者可以獲得系統權限,可以添加管理員帳號,可以更改網絡設置,可以遠程重啟計算機等。
AMT是一款可通過設備的有線以太網接口網絡端口16992訪問的帶外管理工具:它將系統的完全控制暴露到網絡,允許IT人員和其它系統管理員遠程重啟、修復並輕微調整服務器和工作站。它能夠提供一個虛擬串行控制臺和(如果安裝的是正確的驅動)遠程桌面訪問權限。在獲取權限之前應該要求提供密碼,但是上述提到的漏洞意味著攻擊者能夠入侵硬件的控制面板。即使已經為系統的AMT訪問權限設置了防火墻,但在用戶網絡上的攻擊者或惡意軟件仍然能夠利用這個漏洞進入AMT管理的工作站和服務器並進一步攻陷企業。
2.受影響系統
受影響的硬件版本6.x,7.x,8.x ,9.x,10.x,11.0,11.5和11.6:
第一代 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
3.攻擊場景
(1)可以直接關閉服務器電源
(2)通過加載img鏡像文件重啟系統,運行指定系統。
(3)直接修改BIOS
(4)通過KVM進行管理
4.漏洞利用原理
AMT登錄管理中通過response_length值來進行判斷,也即關鍵代碼:
if(strncmp(computed_response,user_response, response_length))
deny_access();
這個標準函數僅僅比較兩個字符串中每一個的response_length字節,看看它們是不是一樣,加以比較的兩個字符串是試圖登錄所發送的驗證響應(user_response)和服務要求的響應(computed_response)。如果兩者相符,密碼肯定對的,所以該函數返回零,代碼繼續授予訪問權。如果兩個字符串不一樣,該函數返回值是非零,這意味著密碼不對,所以拒絕訪問。所以如果提供的是空字符串,長度為零,沒有字節被檢查,因而沒有字節是不一樣的;不出所料,strncmp()返回零,表明驗證成功。因而,空的響應字符串被認為有效而被放行,實際上明明是無效的,因此通過修改response的所有值為空,即可繞過驗證進行登錄。
1.2漏洞利用還原
1.搜索端口號
存在該漏洞對外提供的端口為16992、16993和623,可以借助zoomeye和shodan等搜索引擎搜索“port:16992”、“port: 16993”和“port: 623”來獲取,為了更加精準收集目標信息,可以可以增加關鍵字IntelActive Management Technology,如圖1所示,直接搜索IntelActiveManagement Technology country:China country:China port:16992。
圖1搜索存在端口的服務器
2.查看是否正常運行web服務器
在搜索結果中對存在二個正方形的圖標的記錄進行查看,例如直接單擊打開“118.150.17.193”搜索結果記錄地址“http://118.150.17.193:16992/logon.htm”如圖2所示,網站能夠正常運行。
圖2查看AMT服務是否正常運行
3.修改burpsuite設置
運行burpsuite後,單擊“Proxy”-“Option”,在“Match andReplace”中新建或者編輯Request Header條目,Match值為response\s*="[0-9a-f]+",Replace 的值為response="",設置如圖3所示,在攔截(Intercept)中設置攔截開關為“Interceptis On”。
圖3修改burpsuite設置
4.使用admin登錄
回到瀏覽器中(一定要設置IE代理為127.0.0.1代理端口8080),單擊“Log On”進行登錄,用戶名輸入admin,密碼隨便輸入。
圖4使用admin進行登錄
5.成功登錄AMT管理界面
在burpsuite的Intercept中,單擊“Forward”進行放行,如圖5所示,成功登錄AMT管理界面,在該界面中可以看到電源的狀態是休眠,IP地址,無線IP地址,系統ID等信息,還可以查看系統、處理器、內存、磁盤和電源等詳細情況。
圖5登錄AMT管理界面
6.遠程重啟系統
單擊“Remote Control”(遠程控制),如圖6所示,可以進行常規啟動,從光盤啟動,從硬盤啟動,甚至直接關閉電源!對於重要的系統,一旦關閉電源,其後果可以想象一下!
圖6遠程控制系統
7.用戶帳號管理
單擊“User Accounts”,在其中可以新建用戶,修改用戶密碼,刪除用戶以及更改管理員,如圖7所示,還可以設置管理員的權限級別。添加用戶其密碼強度有要求,要求最少8位,密碼為字母大小寫,數字和特殊字符組成,如圖8所示,否則無法添加成功。
圖7用戶管理
圖8修改密碼
8.使用Nmap對目標IP進行全TCP端口掃描
使用Nmap對目標IP進行全TCP端口掃描的結果表明,存在16992、16994和623端口。如圖9所示,跟Tenable公司研究提出的端口16992、16993和 623有所出入。
1.3 kali平臺下msf利用
直接運行msf,然後使用以下模塊進行測試:
use auxiliary/scanner/http/intel_amt_digest_bypass
msf auxiliary(intel_amt_digest_bypass) >show actions
msf auxiliary(intel_amt_digest_bypass) >set ACTION <action-name>
msf auxiliary(intel_amt_digest_bypass) >show options
msf auxiliary(intel_amt_digest_bypass) >run
1.4安全防範
1.掃描
Tenable公司已經在Nessus中更新最新腳本,使用該掃描器的朋友可以更新其Scripts即可。對其它掃描器,可以增加掃描端口16992、16993、16994和623端口。一旦開啟通過手工訪問進行判斷。
2.加固
在防火墻上關閉16992、16993、16994和623端口,等待intel公司提供升級補丁後更新固件或者升級。
1.5參考文章
(1)https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5689
(2)https://threatpost.com/researcher-baseless-assumptions-exist-about-intel-amt-vulnerability
/125390/
(3)https://www.tenable.com/blog/rediscovering-the-intel-amt-vulnerability
(4)https://www.embedi.com/files/white-papers/Silent-Bob-is-Silent.pdf
(5)https://www.rapid7.com/db/modules/auxiliary/scanner/http/intel_amt_digest_bypass
本文出自 “simeon技術專欄” 博客,請務必保留此出處http://simeon.blog.51cto.com/18680/1928915
IntelAMT 固件密碼繞過登錄漏洞分析與實戰