近日,intezer研究人員在Microsoft Azure發(fā)現(xiàn)了2個(gè)安全漏洞。漏洞存在于Azure App Services 云服務(wù)中,主要影響Linux 服務(wù)器。攻擊者利用第一個(gè)漏洞可以訪問云服務(wù)器,并完全控制App Service的git庫(kù),并植入可以通過Azure Portal 訪問的釣魚頁(yè)面。攻擊者利用第二個(gè)漏洞可以利用一個(gè)SSRF 漏洞來提權(quán)到APP Service的完全代碼執(zhí)行,觸發(fā)第一個(gè)漏洞。PoC視頻如下所示:
[[345093]]
Azure App Services
Azure App Services是一個(gè)基于HTTP的web應(yīng)用托管服務(wù),可以通過Microsoft Azure Cloud 云或安裝來使用。App Services 允許開發(fā)者寫一個(gè)應(yīng)用來服務(wù)HTTP,然后推送給git。然后Azure會(huì)處理所有的部署詳情并提供Azure管理的域名。
為開始使用App Services,用戶必須首先創(chuàng)建一個(gè)App Service Plan,這是App Services將要使用的機(jī)器。機(jī)器的主要目的是托管App Service 容器。
一旦用戶創(chuàng)建了App Service,Azure就會(huì)創(chuàng)建一個(gè)包含2個(gè)容器節(jié)點(diǎn)的新的Docker環(huán)境:管理節(jié)點(diǎn)和應(yīng)用節(jié)點(diǎn)。然后回注冊(cè)2個(gè)域名:
· app.azurewebsites.net – 指向應(yīng)用的HTTP web服務(wù)器;
· app.scm.azurewebsites.net – 指向Azure提供的App Service管理頁(yè)面。

管理頁(yè)面是由微軟開源項(xiàng)目Kudu提供的。在Linux 系統(tǒng)中,有一個(gè)類似的項(xiàng)目叫做KuduLite。Kudu實(shí)例由管理節(jié)點(diǎn)托管,而應(yīng)用本身由應(yīng)用節(jié)點(diǎn)托管。
在Linux系統(tǒng)中,KuduLite 實(shí)例回提供給用戶關(guān)于系統(tǒng)的診斷信息,包括Docker日志、設(shè)置和其他環(huán)境信息。如果用戶選擇用Azure 托管app的git,就會(huì)由Kudu 服務(wù)管理。
另一個(gè)有用的特征是kudu實(shí)例中運(yùn)行交互式bash的web接口和另一個(gè)名為webssh的web接口。
app節(jié)點(diǎn)中的有用會(huì)以root權(quán)限運(yùn)行,研究人員可以通過SSH 以root權(quán)限登入。在訪問Kudu 實(shí)例時(shí),實(shí)際上是一個(gè)低權(quán)限的用戶:

該用戶只能與/home交互,并且無法在其他目錄中寫文件。但在該實(shí)例中安裝了ClamAV。
Linux App Services環(huán)境如下圖所示:

漏洞 1: KuduLite Takeover/EoP
在調(diào)查webssh如何連接到web接口到應(yīng)用節(jié)點(diǎn)的SSH服務(wù),研究人員發(fā)現(xiàn)其使用硬編碼的憑證“root:Docker!” 來訪問應(yīng)用節(jié)點(diǎn):

因?yàn)镵uduLite 實(shí)例也運(yùn)行SSH,所以就可以用相同的憑證來以root權(quán)限登陸:

因?yàn)榭梢钥刂芀uduLite,因此可以完全控制SCM web服務(wù)器。可以監(jiān)聽用戶發(fā)送給SCM web頁(yè)面的HTTP請(qǐng)求、添加自己的頁(yè)面、注入惡意JS內(nèi)容到用戶web頁(yè)面。
研究人員首先嘗試從發(fā)送給服務(wù)器的請(qǐng)求中竊取SCM 用戶cookie。此外,cookie還有一個(gè)HttpOnly 屬性,也就是說無法用客戶端瀏覽器的JS竊取。
但攻擊者仍然可以利用該漏洞來植入一個(gè)偽裝成SCM web頁(yè)面的釣魚頁(yè)面。用戶可以選擇App Services 來管理git 服務(wù)器,攻擊者可以添加惡意代碼到庫(kù)中來實(shí)現(xiàn)駐留并傳播到其他使用相同的git 服務(wù)器的實(shí)例。
漏洞2: KuduLite缺乏訪問限制允許本地文件包含或遠(yuǎn)程代碼執(zhí)行
第二個(gè)漏洞位于KuduLite API 中,與Kudu的 API非常類似。應(yīng)用節(jié)點(diǎn)可以在無需任何訪問驗(yàn)證的情況下發(fā)送請(qǐng)求到KuduLite API。當(dāng)web app中含有SSRF 漏洞時(shí)問題就很嚴(yán)重了。
能夠偽造GET 請(qǐng)求的攻擊者可能可以通過KuduLite VFS API 來訪問應(yīng)用節(jié)點(diǎn)的文件系統(tǒng):

攻擊者可以很輕易地竊取應(yīng)用節(jié)點(diǎn)的源碼和其他資產(chǎn)。
可以偽造POST 請(qǐng)求的攻擊者可以通過命令A(yù)PI 在應(yīng)用節(jié)點(diǎn)上實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行:

相比之下,在Windows 中,從應(yīng)用節(jié)點(diǎn)發(fā)送給管理節(jié)點(diǎn)的包會(huì)被丟棄。
最后,這兩個(gè)漏洞被串起來后,攻擊者就可以實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行。
總結(jié)
云服務(wù)使得開發(fā)者可以快速和靈活地部署應(yīng)用。但這些基礎(chǔ)設(shè)施常常會(huì)存在漏洞。研究人員在微軟Azure App Services中發(fā)現(xiàn)了2個(gè)安全漏洞,攻擊者利用這2個(gè)安全漏洞可以實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行。研究人員將該漏洞提交給了微軟,目前漏洞已經(jīng)修復(fù)。
本文翻譯自:https://www.intezer.com/blog/cloud-security/kud-i-enter-your-server-new-vulnerabilities-in-microsoft-azure/如若轉(zhuǎn)載,請(qǐng)注明原文地址: