您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)如何通過使用Lambda函數(shù)對(duì)AWS帳戶進(jìn)行攻擊測(cè)試,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
前言
2018年8月3號(hào),我收到了一條神秘的LinkedIn消息,這條消息來自Caleb Sima,內(nèi)容如下:
我不得不承認(rèn),我一開始都沒反應(yīng)過來Caleb想跟我說啥,不過看了一下URL之后(其中包含了Lambda和Shell),我感覺他應(yīng)該是想告訴我他開發(fā)出了一種通過Lambda函數(shù)來執(zhí)行Shell命令的技術(shù)。我之前也見過類似的東西,比如說Lambdash。幾秒鐘之后,我打算點(diǎn)進(jìn)去看一看這個(gè)Web頁面,然后發(fā)現(xiàn)了:
看到這段話之后,我首先得弄清楚Caleb的動(dòng)機(jī),所以我給他發(fā)了一條信息:
好吧,Caleb是打算讓別人通過Lambda函數(shù)來攻擊他的AWS賬號(hào),并最終實(shí)現(xiàn)Shell命令的運(yùn)行。聽起來確實(shí)值得一試,畢竟現(xiàn)在很難有人愿意把自己的賬號(hào)給別人去免費(fèi)“蹂躪”了,這讓我非常興奮!
首先,我在當(dāng)前目錄(/var/task)下運(yùn)行“ ls -IF”命令來提取函數(shù)處理器的文件名:
拿到文件名(index.js)之后,我通過運(yùn)行“cat index.js”命令來獲取函數(shù)的源代碼:
實(shí)際上,最初的源代碼并沒有讓我感到驚訝,因?yàn)樗褪瞧胀ǖ睦肔ambda函數(shù)執(zhí)行Shell命令的一段代碼,我之前也已經(jīng)見過很多類似的了。
我跟我自己說:“好吧,我現(xiàn)在能運(yùn)行Shell命令了,可是那然后呢?我怎么才能給這個(gè)賬號(hào)帶來一點(diǎn)實(shí)際的威脅呢?”
于是,我打算收集更多信息,然后我列出了所有的環(huán)境變量,我想看看Caleb有沒有留下一些有用的東西,這里可以使用‘env’命令:
在對(duì)環(huán)境變量進(jìn)行滲入分析之后,我發(fā)現(xiàn)當(dāng)一個(gè)AWS Lambda函數(shù)執(zhí)行時(shí),它會(huì)使用一個(gè)由開發(fā)者(IAM角色)提供的臨時(shí)安全證書。此時(shí)需要從AWS STS(安全令牌服務(wù))接收以下三個(gè)參數(shù):
AWS_SECRET_ACCESS_KEYAWS_ACCESS_KEY_IDAWS_SESSION_TOKEN
這是三個(gè)非常敏感的令牌,但是卻直接在我的屏幕上作為環(huán)境變量打印了出來…
如果你不熟悉AWS IAM安全模型的話,我可以告訴你,這是一個(gè)非常強(qiáng)大且細(xì)粒度非常高的安全權(quán)限模型,模型的具體介紹可參考AWS提供的IAM角色文檔:【傳送門】。
既然我們已經(jīng)拿到了AWS STS給函數(shù)生成的令牌了,那接下來就好辦了。這里我可以直接使用令牌來在本地設(shè)備上調(diào)用AWS的命令行接口。此時(shí)我需要通過調(diào)用下列命令來在本地設(shè)置這些環(huán)境變量:
/>export AWS_SECRET_ACCESS_KEY = …../>export AWS_ACCESS_KEY_ID = …./>export AWS_SESSION_TOKEN = ....
為了測(cè)試這些令牌,我打算調(diào)用AWS STS命令行實(shí)用工具來獲取當(dāng)前的調(diào)用者身份:
/>aws sts get-caller-identity
幾秒鐘之后,命令行工具會(huì)給我返回下列信息:
{"UserId":"AROA********GL4SXW:exec","Account":"1232*****446","Arn":"arn:aws:sts::1232*****446:assumed-role/lambda_basic_execution/exec"}
非常好,現(xiàn)在我就可以在本地運(yùn)行AWS命令行工具了,而且我還可以偽裝成IAM角色。
當(dāng)你查看AWS Lambda Web終端時(shí),你將會(huì)看到:
大家可以看到,Caleb其實(shí)并沒有用環(huán)境變量存儲(chǔ)任何的應(yīng)用程序隱私數(shù)據(jù),這讓我很“生氣”。但是這里不得不提醒大家一下,很多開發(fā)人員確確實(shí)實(shí)會(huì)犯這樣的錯(cuò)誤,這是值得警惕的一點(diǎn)。
關(guān)于如何通過使用Lambda函數(shù)對(duì)AWS帳戶進(jìn)行攻擊測(cè)試就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。