AK/SK認(rèn)證
云主機(jī)通過使用Access Key Id / Secret Access Key加密的方法來驗(yàn)證某個請求的發(fā)送者身份。Access Key Id(AK)用于標(biāo)示用戶,Secret Access Key(SK)是用戶用于加密認(rèn)證字符串和云廠商用來驗(yàn)證認(rèn)證字符串的密鑰,其中SK必須保密。AK/SK原理使用對稱加解密。
云主機(jī)接收到用戶的請求后,系統(tǒng)將使用AK對應(yīng)的相同的SK和同樣的認(rèn)證機(jī)制生成認(rèn)證字符串,并與用戶請求中包含的認(rèn)證字符串進(jìn)行比對。如果認(rèn)證字符串相同,系統(tǒng)認(rèn)為用戶擁有指定的操作權(quán)限,并執(zhí)行相關(guān)操作;如果認(rèn)證字符串不同,系統(tǒng)將忽略該操作并返回錯誤碼。
AK/SK泄露
大部分的云主機(jī)都支持AK/SK都認(rèn)證方式,用于API調(diào)用等功能,由于開發(fā)的不規(guī)范,以及一些其它漏洞,可能會導(dǎo)致AK/SK泄露。在滲透中,如果發(fā)現(xiàn)目標(biāo)泄露了AK/SK,可以通過AK/SK直接攻擊其對應(yīng)的云服務(wù)器。
AK/SK利用
行云管家直接大部分主流的云廠商。
image
選擇對應(yīng)廠商,通過AK/SK憑證對主機(jī)進(jìn)行綁定。
image
AK/SK驗(yàn)證通過,選擇綁定的云主機(jī)。
image
綁定成功,可以直接重置操作系統(tǒng)登錄密碼。(取得客戶授權(quán)后操作)
實(shí)戰(zhàn)利用
阿里云AK/SK泄露
如下,目標(biāo)使用了spring boot 2.0框架,開放了env端點(diǎn)。
存在阿里云aliyun.accesskey和aliyun.secretKey屬性,其對應(yīng)的value進(jìn)行了脫敏處理。
嘗試獲取脫敏的屬性明文。
目標(biāo)網(wǎng)站存在/actuator/jolokia 接口且使用了 jolokia-core 依賴,直接嘗試使用第一種方法獲取明文。(大多數(shù)情況通過下載應(yīng)用實(shí)時的 JVM 堆信息,獲取明文)
修改arguments為想要獲取的屬性值。
成功獲取到aliyun.accesskey、aliyun.secretKey的明文信息。
使用行云管家輸入獲取的AK/SK綁定主機(jī)?梢圆榭吹街鳈C(jī)的實(shí)例ID,所屬地區(qū)等信息。
最終目的是獲取服務(wù)器權(quán)限,由于沒有取得客戶允許,不能隨意重置操作系統(tǒng)密碼。
查看阿里云官方的api使用。
在左上方搜索框,搜索相關(guān)命令執(zhí)行的操作方法。
RunCommand為執(zhí)行命令。
CreateCommand是創(chuàng)建命令和InvokeCommand調(diào)用命令一起使用。
首先嘗試直接執(zhí)行命令:
選擇熟悉的腳本語言,本次使用python
RegionId為地域ID,通過行云管家獲取到
RunShellScript:適用于Linux實(shí)例Shell腳本。
CommandContent:對bash反彈shell命令進(jìn)行Base64編碼
InstanceId:通過行云管家獲取到實(shí)例ID
正確輸入后,可以調(diào)試SDK代碼執(zhí)行腳本,也可以把腳本內(nèi)容粘貼到本地執(zhí)行。
執(zhí)行成功后遠(yuǎn)程vps沒有接收到反彈的shell,原因未知。
查看其他師傅的利用文章使用的CreateCommand創(chuàng)建命令和InvokeCommand調(diào)用命令進(jìn)行反彈shell操作。
首先使用CreateCommand創(chuàng)建命令,輸入對應(yīng)信息。
執(zhí)行腳本,獲取到返回的CommandId
然后使用InvokeCommand調(diào)用命令,輸入得到的CommandId
vps成功接收到反彈的shell
工具自動化
可以直接使用網(wǎng)上自動化的利用工具,簡單便捷。
指定AK/SK 獲取主機(jī)列表
./AliCloud-Tools -a xxx -s xxx ecs --list
指定AK/SK,實(shí)例ID,和執(zhí)行的命令。
./AliCloud-Tools -a xxx -s xxx ecs exec -I xxx -c "whoami"
成功接收到反彈的shell。
其它云主機(jī)AK/SK利用
網(wǎng)上的大多數(shù)文章都是對阿里云的AK/SK進(jìn)行利用。
然而實(shí)際情況中可能遇到其它的云主機(jī)AK/SK泄露。
如:
亞馬遜云
在行云管家列表內(nèi)的可以直接綁定去管理。
不在列表內(nèi)的,需要去查看官方的API文檔,然后根據(jù)文檔進(jìn)行進(jìn)一步的利用。
其官方開發(fā)者中心描述了如何使用AK/SK對服務(wù)器進(jìn)行管理。