云安全 | AWS 渗透总结

admin 2024年11月24日14:31:47评论19 views字数 7749阅读25分49秒阅读模式

0x01 基础信息

我手动遍历应用程序查找一些敏,在开始对AWS环境进行渗透测试之前,您需要了解一些关于 AWS 工作原理的基本知识,以帮助您了解需要做什么、如何发现错误配置以及如何利用它们。组织层次结构、IAM等基本概念解释如下:

亚马逊AWS-基本信息 

https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-basic-information

在线实验室

在线实验室https://github.com/RhinoSecurityLabs/cloudgoathttps://hackingthe.cloud/aws/capture_the_flag/cicdont/https://github.com/BishopFox/iam-vulnerablehttp://flaws.cloud/http://flaws2.cloud/https://github.com/nccgroup/sadcloudhttps://github.com/bridgecrewio/terragoathttps://github.com/ine-labs/AWSGoat

0x02 AWS Pentest

渗透 AWS 环境,了解以下内容非常重要:

1.正在使用哪些服务、2.正在公开什么、3.谁可以访问什么以及内部 AWS 服务与外部服务如何连接。

从红队的角度来看,破坏 AWS 环境的第一步是设法获得一些凭证

github(或类似)中的泄漏- OSINT社会工程学密码重用(密码泄露)AWS 托管应用程序中的漏洞 具有访问元数据端点的服务器端请求伪造 https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf读取本地文件 /home/USERNAME/.aws/credentials C:UsersUSERNAME.awscredentials第三者违约内部员工Cognito 凭据 https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-services/aws-cognito-enum#cognito

或者通过破坏暴露的未经身份验证的服务:

AWS - 未经身份验证的枚举和访问

https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-unauthenticated-enum-access

或者,如果您正在进行审查,您可以只要求提供具有这些角色的凭证:AWS - 渗透测试的权限

https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-permissions-for-a-pentest

在您设法获得凭据后,您需要知道这些凭据属于谁,以及他们可以访问什么,因此您需要执行一些基本的枚举:

基本枚举

SSRF

如果您在 AWS 内的机器中发现 SSRF,请检查此页面以获取技巧:Cloud SSRF

https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf

我是谁

您需要知道的第一件事就是您是谁(在有关 AWS 环境的其他信息中,您在哪个帐户中):

aws sts get-caller-identityaws iam get-user # 这将获取您自己的用户# 如果你有密钥 IDaws sts get-access-key-info --access-key-id = ASIA1234567890123456# 获取内部错误信息aws sns publish --topic-arn arn:aws:sns:us-east-1:*账户ID*:aaa --message aaa# 来自元数据TOKEN = ` curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" `curl -H "X-aws-ec2-metadata-token: $TOKEN " http://169.254.169.254/latest/dynamic/instance-identity/document

请注意,公司可能会使用canary tokens来识别令牌何时被盗和使用。建议在使用令牌之前检查令牌是否为canary tokens令牌。有关详细信息,请查看此页面

组织枚举

 AWS - 组织枚举

https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-services/aws-organizations-enum

IAM 枚举

如果您有足够的权限,检查 AWS 帐户内每个实体的权限将有助于您了解您和其他身份可以做什么以及如何提升权限。

如果您没有足够的权限来枚举 IAM,您可以窃取暴力破解它们来找出它们。检查如何进行计算和暴力破解:AWS - IAM 和 STS 枚举

https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-services/aws-iam-and-sts-enum

现在您已经有了一些关于您的凭据的信息(如果您是红队,希望您没有被发现)。是时候弄清楚环境中正在使用哪些服务了。在下一节中,您可以检查一些枚举一些常见服务的方法。

服务枚举、后期开发和持久化

AWS 拥有数量惊人的服务,在下面的页面中,您将找到基本信息、枚举备忘单**、**如何避免检测、获得持久性以及关于其中一些的其他利用后技巧:

AWS - 服务

https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-services

请注意,您不需要手动执行所有工作,您可以在本文下方找到有关 自动工具的部分。

https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting#automated-tools

此外,在此阶段您可能会发现更多服务暴露给未经身份验证的用户,您可能能够利用它们:AWS - 未经身份验证的枚举和访问

https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-privilege-escalation

特权升级

如果您至少可以检查您自己对不同资源的权限,您可以检查您是否能够获得更多权限。您至少应关注以下内容中指示的权限:AWS - 权限提升

https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-privilege-escalation

公开服务

枚举 AWS 服务时,您可能会发现其中一些将元素暴露给 Internet (VM/容器端口、数据库或队列服务、快照或存储桶……)。作为渗透测试人员/红队成员,您应该始终检查是否可以在它们上找到敏感信息/漏洞,因为它们可能会为您提供对 AWS 帐户的进一步访问权限。

在本书中,您应该找到有关如何查找暴露的 AWS 服务以及如何检查它们的信息。关于如何在暴露的网络服务中查找漏洞,我建议您在以下位置搜索特定服务:

黑客技巧 https://book.hacktricks.xyz/

损害组织

从根/管理帐户

当主账户在组织中创建新账户时,在新账户中创建一个新角色,默认命名OrganizationAccountAccessRole并为主账户提供AdministratorAccess策略以访问新账户。

云安全 | AWS 渗透总结

因此,为了以管理员身份访问子帐户,您需要:

入侵主账户并找到子账户的ID和允许主账户以管理员身份访问的角色名称(默认为 OrganizationAccountAccessRole )。

妥协管理帐户中的委托人对子帐户中的角色的权限(即使该帐户允许管理帐户中的任何人模拟,因为它是外部帐户,特定权限是必要的)sts:AssumeRolests:AssumeRole。

要查找children帐户,请转到 aws 控制台中的组织部分或运行aws organizations     list-accounts您无法直接找到角色的名称,因此请检查所有自定义 IAM 策略并搜索任何允许之前发    现的子帐户。sts:AssumeRole

自动化工具

侦察

aws -recon :一个用 Ruby 编写的多线程 AWS 以安全为中心的库存收集工具。

# 安装gem install aws_recon# 侦察并获取 jsonAWS_PROFILE=<profile> aws_recon   --services S3,EC2   --regions global,us-east-1,us-east-2   --verbose

cloudlist:Cloudlist 多云工具,用于从云提供商处获取资产(主机名、IP 地址)。cloudmapper:CloudMapper 可帮助您分析您的 Amazon Web Services (AWS) 环境。它现在包含更多功能,包括安全问题审计。

# github中的安装步骤# 使用 aws 信息创建一个 config.json 文件,例如:{    "accounts": [        {            "default": true,            "id": "<account id>",            "name": "dev"        }    ],    "cidrs":    {        "2.2.2.2/28": {"name": "NY Office"}    }}# Enumeratepython3 cloudmapper.py collect --profile dev## Number of resources discoveredpython3 cloudmapper.py stats --accounts dev# Create HTML report## In the report you will find all the info alreadypython3 cloudmapper.py report --accounts dev# Identify potential issues python3 cloudmapper.py audit --accounts dev --json > audit.jsonpython3 cloudmapper.py audit --accounts dev --markdow > audit.mdpython3 cloudmapper.py iam_report --accounts dev# Identify admins## The permissions search for are in https://github.com/duo-labs/cloudmapper/blob/4df9fd7303e0337ff16a08f5e58f1d46047c4a87/shared/iam_audit.py#L163-L175python3 cloudmapper.py find_admins --accounts dev# Identify unused elementspython3 cloudmapper.py find_unused --accounts dev# Identify publivly exposed resourcespython3 cloudmapper.py public --accounts devpython cloudmapper.py prepare #Prepare webserverpython cloudmapper.py webserver #Show webserver

cartography:Cartography 是一种 Python 工具,可在 Neo4j 数据库支持的直观图形视图中整合基础设施资产及其之间的关系。

# Installpip install cartography## At the time of this writting you need neo4j version 3.5.*# Get AWS infoAWS_PROFILE=dev cartography --neo4j-uri bolt://127.0.0.1:7687 --neo4j-password-prompt  --neo4j-user neo4j

starbase:Starbase 从服务和系统(包括云基础设施、SaaS 应用程序、安全控制等)中收集资产和关系,并将其转化为由 Neo4j 数据库支持的直观图形视图。

aws -inventory:(使用 python2)这是一个试图发现在账户中创建的所有AWS 资源的工具。

aws_public_ips :这是一个获取与 AWS 账户关联的所有公共 IP 地址(IPv4/IPv6)的工具。

私隐 

SkyArk:在扫描的 AWS 环境中发现最高权限的用户,包括 AWS 影子管理员。https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1中的函数中找到特权策略的定义

pacu:Pacu 是一个开源的AWS 开发框架,专为针对云环境的攻击性安全测试而设计。它可以枚举、查找错误配置利用它们。您可以在字典中的https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134中找到特权权限的定义 。请注意,pacu仅检查您自己的 privescs 路径(不是帐户范围)。

PMapper:主体映射器 (PMapper) 是一个脚本和库,用于识别 AWS 账户或 AWS 组织的 AWS Identity and Access Management (IAM) 配置中的风险。它将账户中不同的 IAM 用户和角色建模为有向图,从而可以检查权限升级以及攻击者为访问 AWS 中的资源或操作而可能采取的备用路径。您可以检查用于在以

https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing结尾的文件名中查找 privesc 路径的权限

# Install## Feel free to use venvspip3 install pacu# Use pacu CLIpacu> import_keys <profile_name> # import 1 profile from .aws/credentials> import_keys --all # import all profiles> list # list modules> exec iam__enum_permissions # Get permissions> exec iam__privesc_scan # List privileged permissions

PMapper:主体映射器 (PMapper) 是一个脚本和库,用于识别 AWS 账户或 AWS 组织的 AWS Identity and Access Management (IAM) 配置中的风险。它将账户中不同的 IAM 用户和角色建模为有向图,从而可以检查权限升级以及攻击者为访问 AWS 中的资源或操作而可能采取的备用路径。您可以检查用于在以_edges.py https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing结尾的文件名中查找 privesc 路径的权限

# Installpip install principalmapper# Get datapmapper --profile dev graph createpmapper --profile dev graph display # Show basic info# Generate graphpmapper --profile dev visualize # Generate svg graph file (can also be png, dot and graphml)pmapper --profile dev visualize --only-privesc # Only privesc permissions# Generate analysispmapper --profile dev analysis## Run queriespmapper --profile dev query 'who can do iam:CreateUser'pmapper --profile dev query 'preset privesc *' # Get privescs with admins# Get organization hierarchy datapmapper --profile dev orgs createpmapper --profile dev orgs display

cloudsplaining:Cloudsplaining 是一种 AWS IAM 安全评估工具,可识别违反最低权限的行为并生成风险优先的 HTML 报告。它会向您展示潜在的超特权客户、内联和 aws政策,以及哪些委托人可以访问它们。(它不仅检查 privesc,还检查其他类型的有趣权限,推荐使用)。

cloudjack:CloudJack 评估 AWS 帐户是否存在由于 Route53 和 CloudFront 配置分离而导致的子域劫持漏洞。

ccat : 列出 ECR 存储库 -> 拉取 ECR 存储库 -> 后门它 -> 推送后门图像

Dufflebag:Dufflebag 是一种工具,可通过公共弹性块存储 ( EBS) 快照搜索可能被意外遗漏的秘密。

cloudsploit:Aqua 的 CloudSploit 是一个开源项目,旨在检测云基础设施帐户中的安全风险,包括:Amazon Web Services (AWS)、Microsoft Azure、Google Cloud Platform (GCP)、Oracle Cloud Infrastructure (OCI)、和 GitHub(它不寻找 ShadowAdmins)。

ScoutSuite:Scout Suite 是一个开源的多云安全审计工具,可以对云环境进行安全态势评估。

Reference

https://cloudsecdocs.com/aws/defensive/tooling/audit/

云安全 | AWS 渗透总结

2023零基础白帽+中级进阶渗透学习路线
知识星球
云安全 | AWS 渗透总结
云安全 | AWS 渗透总结
想成为凯文·米特尼克一模一样的
黑客教父?不存在的
想成为透透之神?醒吧
看了无数入门视频,依然搞不到Shell
不像看《安全帮Live》
云安全 | AWS 渗透总结

原文始发于微信公众号(安全帮Live):云安全 | AWS 渗透总结

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月24日14:31:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   云安全 | AWS 渗透总结https://cn-sec.com/archives/1774590.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息