一、Bucket 公開訪問
0x1:Bucket權限配置錯誤-公開訪問
在創建Bucket桶時,默認是private的權限,存儲桶的私有權限表明,只有該存儲桶的創建者及有授權的賬號纔對該存儲桶中的對象有讀寫權限,其他任何人對該存儲桶中的對象都沒有讀寫權限。
如果在錯誤的配置下,給了listobject權限,就會導致可遍歷存儲桶。
如果選擇了”公共讀“或者”公共讀寫“,則外部可以直接訪問對應的KEY路徑。
但是此時,外部是無法通過訪問根目錄列對象的。
如果想列出Object對象,只需要在Bucket授權策略中設置ListObject即可,
這樣再當我們訪問存儲桶域名的時候就會發現,已經把我們存儲桶的東西列出來了,
參考鏈接:
https://wiki.teamssix.com/CloudService/S3/bucket-brute-force.html
二、特定的Bucket策略配置
如果Bucket的權限配置錯誤的配置了 GetBucketPolicy 權限,可導致攻擊者獲取Bucket的詳細策略配置信息。
我們嘗試使用aliyun的cli獲取policy,
可以看到,需要特定的UA或者特定的IP纔可以訪問。
攻擊者通過獲取Bucket策略,構造符合策略的特定訪問條件,即可繞過Bucket策略的訪問控制。
參考鏈接:
https://zone.huoxian.cn/d/918-oss
三、應用程序漏洞
攻擊路徑:
- SSRF -> EC2 Metadata API -> IAM臨時Security Token -> AWS SSM -> RCE
- SSRF -> EC2 Metadata API -> IAM臨時Security Token -> AWS Lambda -> RCE
- SSRF -> EC2 Metadata API -> IAM臨時Security Token -> AWS S3 -> 信息泄漏
- RCE -> EC2 Metadata API -> IAM臨時Security Token -> AWS EC2/S3/Lambda
- RCE -> EC2 Metadata API -> EC2 Userdata -> 敏感憑證 -> 其他EC2或者雲服務
相關參考:
- AWS Elastic Beanstalk: https://www.notsosecure.com/exploiting-ssrf-in-aws-elastic-beanstalk/
- AWS SSM: https://hackerone.com/reports/401136
- AWS: https://blog.appsecco.com/getting-shell-and-data-access-in-aws-by-chaining-vulnerabilities-7630fa57c7ed
- CloudGoat(AWS): https://rhinosecuritylabs.com/aws/cloudgoat-walkthrough-rce_web_app/
- GCP: https://hackerone.com/reports/341876
參考鏈接:
http://avfisher.win/archives/1175