研究人員在Black Hat Asia 2021大會(huì)上分享了針對(duì)微軟IIS和SQL服務(wù)器的新攻擊面。
Unit 42在Black Hat Asia 2021上分享了關(guān)于攻擊微軟IIS和SQL服務(wù)器的新攻擊面。在演講中,研究人員介紹了一種在IIS和SQL服務(wù)器上的遠(yuǎn)程數(shù)據(jù)庫(kù)通過(guò)SQL注入等場(chǎng)景來(lái)執(zhí)行SQL查詢的新技術(shù)。攻擊者利用該技術(shù)和微軟Jet數(shù)據(jù)庫(kù)引擎的漏洞可以遠(yuǎn)程攻擊IIS和SQL服務(wù)器來(lái)獲取system權(quán)限。
攻擊面
研究人員發(fā)現(xiàn)的新的攻擊面是由微軟Jet數(shù)據(jù)庫(kù)引擎支持的遠(yuǎn)程數(shù)據(jù)庫(kù)訪問(wèn)引起的,包括Jet Red數(shù)據(jù)庫(kù)引擎和訪問(wèn)連接引擎ACE。該特征被攻擊者誤用或?yàn)E用就可以在遠(yuǎn)程攻擊者控制的服務(wù)器上對(duì)完全控制的數(shù)據(jù)庫(kù)文件執(zhí)行SQL查詢。一旦遠(yuǎn)程合法數(shù)據(jù)庫(kù)文件被偽造的數(shù)據(jù)庫(kù)文件替換,再執(zhí)行SQL查詢就會(huì)打破微軟Jet/ACE的代碼預(yù)制條件和假設(shè),引發(fā)Jet組件安全漏洞。
典型的攻擊場(chǎng)景是SQL注入和ad hoc。在這兩個(gè)攻擊場(chǎng)景中,攻擊者可以在IIS和SQL服務(wù)器上偽造的數(shù)據(jù)庫(kù)上執(zhí)行任意SQL查詢。引發(fā)的Jet漏洞會(huì)影響IIS和SQL服務(wù)器。具體來(lái)說(shuō),用戶在表上執(zhí)行SQL查詢時(shí)可以在Jet的表前加上數(shù)據(jù)庫(kù)路徑來(lái)分配一個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù),如圖1所示:
圖 1. Access 和SQL服務(wù)器中的遠(yuǎn)程數(shù)據(jù)庫(kù)訪問(wèn)SQL
在微軟Jet和ACE中,調(diào)用CreateFile會(huì)打開(kāi)IIS和SQL服務(wù)器中的遠(yuǎn)程數(shù)據(jù)庫(kù)文件。遠(yuǎn)程數(shù)據(jù)庫(kù)的輸入路徑是UNC路徑,所以SMB和WebDAV會(huì)被用來(lái)打開(kāi)遠(yuǎn)程數(shù)據(jù)庫(kù),如圖2所示:
圖 2. IIS和SQL服務(wù)器中的隱藏特征
SQL注入和ad hoc是2個(gè)潛在的攻擊場(chǎng)景。類似地,IIS和SQL服務(wù)器只是2個(gè)潛在的受害者。Windows中所有支持Jet和ACE的組件都可能受到該漏洞的影響,因?yàn)榻M件允許用戶在可控制的數(shù)據(jù)庫(kù)上執(zhí)行任意查詢。
IIS和SQL服務(wù)器漏洞
遠(yuǎn)程數(shù)據(jù)庫(kù)訪問(wèn)的攻擊者可以用偽造的數(shù)據(jù)庫(kù)來(lái)替換合法的數(shù)據(jù)庫(kù)文件。研究人員分析發(fā)現(xiàn),替換數(shù)據(jù)庫(kù)是找出微軟Jet和ACE中漏洞的關(guān)鍵。研究人員通過(guò)模糊策略在微軟Jet和ACE中發(fā)現(xiàn)了約100個(gè)安全漏洞,如圖3所示。大多數(shù)漏洞可以用來(lái)攻擊IIS和SQL服務(wù)器。
圖 3. 約100個(gè)Jet漏洞
研究人員證明了數(shù)據(jù)庫(kù)文件的一字節(jié)修改可以引發(fā)Jet安全漏洞,如圖4所示:
圖 4. 數(shù)據(jù)庫(kù)一字節(jié)修改引發(fā)安全漏洞
微軟補(bǔ)丁
微軟對(duì)該漏洞分配了CVE編號(hào)CVE-2021-28455。2021年5月,微軟發(fā)布了該漏洞的安全補(bǔ)丁,補(bǔ)丁為用戶提供了禁用Jet組件和ACE組件的遠(yuǎn)程數(shù)據(jù)庫(kù)訪問(wèn)選項(xiàng)。補(bǔ)丁不僅僅是修復(fù)單個(gè)JET漏洞,而且還緩解了整個(gè)使用Jet組件的應(yīng)用的攻擊面。
詳細(xì)修復(fù)步驟參見(jiàn):https://unit42.paloaltonetworks.com/iis-and-sql-server/
結(jié)論
IIS和SQL服務(wù)器是微軟生態(tài)系統(tǒng)中的基礎(chǔ)組件,廣泛應(yīng)用于各種生產(chǎn)系統(tǒng)和服務(wù)中。微軟Jet數(shù)據(jù)庫(kù)引擎已經(jīng)有超過(guò)20年的歷史,大多數(shù)的組件被發(fā)現(xiàn)存在安全漏洞,并且容易被利用。遠(yuǎn)程數(shù)據(jù)庫(kù)訪問(wèn)特征連接了Jet漏洞和IIS、SQL服務(wù)器組件。攻擊者可以利用這一特征來(lái)攻擊IIS和SQL服務(wù)器,并通過(guò)SQL注入來(lái)遠(yuǎn)程獲取system權(quán)限。