In the backdrop of rising cybersecurity threats, with chatter on Telegram channels hinting at data dumps and Pastebin snippets exposing snippets of configurations, Huge Logistics is taking no chances. They've enlisted your team's expertise to rigorously assess their cloud infrastructure. Armed with a list of IP addresses and endpoints, a lead emerged — an RDS endpoint: exposed.cw9ow1llpfvz.eu-north-1.rds.amazonaws.com. Your mission? Dive deep into this endpoint's security, and identify any security issues before threat actors do.
真是场景
rds:Amazon Relational Database Service,即亚马逊关系型数据库服务
数据库直接暴露在公网容易被密码爆破,同时也会导致拒绝服务,因为单个数据库实例能建立连接是有限的,同时也可能导致,密码错误过多导致被锁了,也能影响正常业务
常见端口:
- Amazon Aurora (port 3306)
- PostgreSQL (5432)
- MySQL (port 3306)
- MariaDB (port 3306)
- Oracle Database (port 1521)
- SQL Server (port 1433)
端口扫描,发现开着 3306
mysql 爆破字典
nmap 的爆破功能,账号密码分隔符是
/ 而不是: ,需要替换mac 的话,命令是:sed -i '' 's/:/\//g' mysql-creds.txt
爆破,为了防止 IP 阻塞,延迟为 1秒一次
不知为啥爆不了
换 msf,先把字典改改,因为 msf 的账号密码是以空格分割的,我这里是 mac,所以 sed 命令是
爆破
爆出来账号密码
dbuser:123hydra 也可以,就是 nmap 的不行
macsed -i '' 's/ /:/g' mysql-creds.txt
连上即可拿到 flag
即可拿到flag
防御
题目提供了一个 aws iam 用户
AKIATWVWNKAVAOAG3WU7 | pMKBxUI+kx7/z/sXAyx/dYSxANKWSisEsoJik5gz | eu-north-1 |
查看 rds 实例
直接查询公网是否可访问
通过 AWS 控制台
进入 RDS → Databases,选择 Exposed 数据库,就能看到了

如果不是业务必须开放到公网,可以通过下面方式收敛暴露面
选择 Modify

在 Additional configuration 选 Not publicly accessible 保存即可

如果必须开放,则建议设置强密码,并且启用审计日志,最好也把日志发布到 CloudWatch
进一步阅读
- https://aws.amazon.com/blogs/security/detect-threats-to-your-data-stored-in-rds-databases-by-using-guardduty/ 主要介绍用 AWS 的 guardduty 日志来查看异常的数据库事件,如登录等
- https://www.sqlservercentral.com/articles/demystifying-best-practices-and-enhancing-rds-security-with-amazon-guardduty 这篇文档到安全运营实践还是不错的,保护(AWS)数据库的最佳实践:
- 配置安全组,防止数据库暴露在外界。确保与数据库交互的资源从同一 VPC 内连接
- 为访问数据库的每个应用程序创建单独的用户角色,并具有最低限度的必要权限和访问权限
- 定期轮换密钥和密码,使用临时凭证(具有有效期到 IAM 账户)执行人工操作维护任务。
- 定期查看审计日志,以识别滥用模式
- https://www.bleepingcomputer.com/news/security/microsoft-warns-of-brute-force-attacks-targeting-mssql-servers/ mssql 成为爆破到主要目标,并且可以通过 sqlps 工具作为 LOLBin 进行滥用
