谷歌云:云数据库攻防,可造成数据库备份公开访问

VSole2022-04-22 16:49:02

0x01 前期侦查

1、访问凭证泄露

在信息收集阶段,通过传统攻防下的信息收集方式,收集到目标的数据库账户密码、谷歌云平台账户密码,access token、服务账户凭证等。

2、备份

谷歌云具有数据库实例导出功能,可以将整个实例或实例中的数据库导出到Cloud Storage中,其格式可以是csv或者sql。


当该存储桶公开访问或泄露了服务账户凭证即可造成数据库泄露。


1、访问凭证登录

如果在前期侦查阶段收集到了数据库的账户和密码,则可以通过其直接登录。或者在前期收集到了高权限的服务账户凭证,可以通过之前Compute Engine攻防中的方法去登录谷歌云控制台,就可以去操作Cloud SQL了。

2、弱口令

如果谷歌云数据库存在弱口令,我们可以通过爆破的方式,得到数据库的账户名和密码,进而直接访问数据库。

3、空密码

在Cloud SQL中,创建mysql数据库的时候,可以赋予数据库无root密码,如果没有 root 密码,此实例会允许任何人以完整管理权限进行连接。请设置 root 密码,以确保只有授权用户才能取得此类权限。


0x03 执行

1、云厂商命令行工具

使用gcloud来查看实例信息

gcloud sql instances describe 实例名

列出实例上的所有数据库

gcloud sql databases list --instance=实例名

2、数据库连接工具

当知道了数据库的账户和密码后,可以使用第三方数据库连接工具进行连接尝试。(谷歌云需要配置已授权网络才可以进行访问登录

3、Cloud SQL代理

Cloud SQL Auth 代理可让您安全地访问自己的实例,而无需已获授权的网络或配置 SSL。

如需使用 Cloud SQL Auth 代理,必须满足以下要求:

  • 必须启用 Cloud SQL Admin API。

  • 必须向 Cloud SQL Auth 代理提供 Google Cloud 身份验证凭据。

  • 必须向 Cloud SQL Auth 代理提供有效的数据库用户帐号和密码。

  • 实例必须具有公共 IPv4 地址,或者配置为使用专用 IP。

  • 该公共 IP 地址无需可供任何外部地址访问(无需添加为已获授权的网络地址)。

0x04 权限提升

1、低权限收集到高权限的凭证

当获取了数据库较低的权限后,访问数据库查找敏感信息,如用户存储的高权限账户密码、高权限凭证等信息,然后可以通过收集到的信息就可以登录控制台或命令行去操作数据库。

2、云平台数据库漏洞

通过云平台数据库自身问题去获取高权限。

0x05 权限维持

1、添加内置身份验证的用户

用户账户可以让用户和应用连接到实例,我们可以通过命令行或控制台去添加自己的用户账户,当前用户账户密码被改后,可以使用自己新建的账户密码去连接数据库。


2、修改密码

当拿到权限后,可以直接更改数据库实例下的用户密码。但实际渗透场景下不建议这么做,容易被发现。

3、添加基于Cloud IAM的用户账户

在通过这种方式添加后,即可以通过自己的谷歌云账户去管理数据库实例,使用 Cloud Console 将新的 IAM 用户添加到 Cloud SQL 实例时,Cloud SQL 会自动将 Cloud SQL Instance User 角色授予该用户用于项目中的所有实例和数据库。系统会自动为用户添加 IAM 政策绑定。

然后删除,移除经过 IAM 身份验证的用户帐号不会撤消关联主帐号在 IAM 中的权限。所以删除后还是有一定的权限。

4、添加IAM级别用户

通过IAM处添加Cloud SQL Admin的主账户权限,可以拥有Cloud SQL资源的完全控制权。


0x06 防御绕过

1、关闭产品通知

在用户偏好设置中关闭产品通知,当有改动时,将不会以电子邮件的方式通知用户。


0x07 信息收集

1、服务账户信息

在Cloud SQL概览页面可以查看该数据库的服务账户。

2、数据库信息

在Cloud SQL实例页面可以查看实例的ID、数据库版本、公共ip地址、存储空间等信息。

3、用户信息

在Cloud SQL用户页面可以查看内置身份验证的用户信息、基于Cloud IAM的主账户信息(包括了IAM电子邮件)

0x08 影响

1、数据库备份可被公开访问

在公开访问的存储桶中存在数据库备份,造成了数据库数据泄露。

2、其他影响

当数据库被攻击者拿下后,可以获取数据库的敏感信息,对数据库进行恶意操作。

参考资料:

  • https://cloud.google.com/sql/docs/mysql/sql-proxy?authuser=1&_ga=2.213776404.-1838959337.1648105721
  • https://cloud.google.com/sql/docs/mysql/connect-overview?authuser=1#authentication_options
  • https://cloud.google.com/sdk/gcloud/reference/sql/
sql数据库云数据库
本作品采用《CC 协议》,转载必须注明作者和本文链接
近日,中国信通院在2022“3SCON软件供应链安全大会”上正式发布《软件供应链厂商和产品名录》,深信服入选“软件供应链厂商”,旗下信服超融合、信服云云计算平台、信服数据库管理平台等入选“软件供应链产品”。内建安全2.0以自动安装代理的方式提供病毒查杀、漏洞修复等主机安全能力,实现业务上线即安全。
从政府侧、供给侧、需求侧、专业机构等角度出发,聚焦创新和市场双驱动、供给和需求互促进、治理和发展两手抓等思路,加大技术研究及应用示范支持力度,分类推进数据安全技术产品的服务创新,强化数据安全防护和数据开发利用,做专做强数据安全检测评估工作。
System权限是在数据库中,为了方便接下来的渗透,思路是将System权限上线到CobaltStrike上,在此处执行了从自己的VPS上下载免杀木马并执行的操作,显示执行成功,但并未上线。猜测这是台阿里的ECS,对出站端口进行了限制,所以反弹不回来。这样才算是完全控制了这台服务器。于是重新生成了木马,再次在Navicat里执行,它居然上线了!
阿里 ApsaraDB RDS for PostgreSQL 和 AnalyticDB for PostgreQL 数据库爆出两个关键漏洞。潜在攻击者能够利用这两个漏洞破坏租户隔离保护,访问其它客户的敏感数据。
近日,The Hacker News 网站披露,阿里 ApsaraDB RDS for PostgreSQL 和 AnalyticDB for PostgreQL 数据库爆出两个关键漏洞。
在面对数据库场景下的攻防手法
0x01 前期侦查 1、访问凭证泄露 在信息收集阶段,通过传统攻防下的信息收集方式,收集到目标的数据库账户密码、谷歌平台账户密码,access token、服务账户凭证等。 2、备份 谷歌具有数据库实例导出功能,可以将整个实例或实例中的数据库导出到Cloud Storage中,其格式可以是csv或者sql
数据库技术是一门信息管理自动化学科的基础课程,在经历了半个世纪的发展后已经成为计算机科学的重要分支,被广泛应用于人们的日常生活。数据库的核心任务是数据资产的管理,包括数据的分类、组织、编码、储存、检索和维护。在数据信息爆发式增长的今天,数据库承担了越来越多的数据处理与分析职责,以数据赋能的形式不断促进应用创新,助力数字化发展进程。
可以认为IAM分成两类,一个是AWS提供的IAM,这是一个完整的身份管理系统,但AWS只提供了系统,基于该系统的配置及信息维护,由客户完全负责。AWS 提供了虚拟网络及其之上的VPC,子网,ACL,安全组等,客户需要准确设计配置自己的网络,以确保正确的隔离和防护。用户控制权限的修改通常由特权用户或者管理员组实现。
VSole
网络安全专家