談談 AWS 云數據庫的攻防手法
0x00 前言
在平時攻防的過程中,經常會碰到數據庫在云上的情況,本文將以 AWS 中的云數據庫為例,主要談談在面對云數據庫場景下的一些攻防手法。
目前 Amazon RDS 支持以下數據庫:
- MySQL
- MariaDB
- PostgreSQL
- Oracle
- Microsoft SQL Server
0x01 前期偵查
1、訪問憑證泄露
在前期進行信息收集時,可以通過一些傳統常見下的被動信息收集方法,嘗試收集目標的數據庫賬號密碼、云服務賬號的訪問憑證、臨時憑證、SDK 代碼中泄露的密鑰等等。
2、共享快照
對于 AWS RDS,可以在共享快照中,根據快照名稱判斷查找,看看是否有和目標相關聯的快照,然后再通過還原快照的方式,獲得快照中 RDS 的數據。

0x02 初始訪問
1、訪問憑證登錄
如果前期收集到了數據庫的賬號密碼,則可以直接使用其登錄。
如果前期收集到了云服務賬戶的訪問密鑰或臨時秘鑰,則可以通過訪問控制臺或者命令行操作 RDS
2、弱口令
如果數據庫存在弱口令,則可以通過密碼爆破,猜解出 RDS 的賬號密碼。
在 AWS 上,RDS 賬號名一般為 admin,通常密碼一般為隨機強密碼,因此如果僅對 root、admin 用戶進行爆破,則爆破的成功率較低。
所以可以嘗試對其他常見用戶名進行爆破,這類用戶名可能是目標人員自行創建的賬號,存在弱口令的可能性較高。
0x03 執行
1、云廠商命令行工具
如果知道云服務賬號的訪問密鑰,對于 AWS 而言,可以使用 AWS 提供的命令行工具進行 SQL 語句的執行,除此之外也可以使用 SDK 執行 SQL 語句。
2、數據庫連接工具
如果知道數據庫的賬號密碼后,也可以使用 Navicat 進行連接訪問,或者使用 MDUT 等類似工具對數據庫進行滲透,但一般 RDS 提供的權限可能不會太高,使用這類工具失敗的可能性較大。
0x04 權限提升
1、低權限下收集到高權限訪問憑證信息
在使用低權限賬號登錄到數據庫后,在數據庫中可以嘗試搜索訪問密鑰、賬號密碼等信息,獲得高權限賬號信息。
如果當前數據存在 Web 應用上的用戶密碼信息,則可以通過嘗試獲得 Web 應用系統權限,在 Web 應用系統權限下,搜索數據庫的訪問密鑰或者云服務的 API 密鑰,從而進一步橫向到數據庫高權限。
2、數據庫自身漏洞
在有低權限賬號后,也可以通過數據庫自身漏洞進行提權,不過在云場景下,這種情況可能并不多見。
0x05 權限維持
1、控制臺修改數據庫賬號密碼
在 AWS 控制臺處,可直接對數據庫密碼進行修改,但為了避免影響目標業務,一般情況下不建議這樣做。

2、添加數據庫賬號
可以通過 AWS 命令或者數據庫連接工具,為數據庫創建賬號,以實現權限維持的目的。
3、共享快照
在 AWS 控制臺中,可以為目標數據庫創建快照,然后將快照共享給自己,這樣即使數據庫權限丟失,在自己的賬號下也能通過還原快照獲取數據庫內的數據了。

0x06 防御繞過
1、編輯警報
在 AWS 控制臺中,可以通過修改目標的警報信息來避免自己的后續操作操作觸發告警。

2、使用代理服務器連接
在實際場景中,應該使用代理服務器連接到目標數據庫,以避免自己的 IP 被藍隊發現。
0x07 信息收集
1、通知郵箱
在 AWS RDS 的控制臺處,可以在編輯警報處看到目標配置的通知郵箱地址,這種郵箱地址可能是目標公司的安全部門人員郵箱,應該予以關注。

2、性能詳情
在 AWS RDS 控制臺中,可以通過數據庫性能詳情信息,收集到目標 RDS TOP SQL 語句、TOP 連接主機、TOP 用戶等信息。

3、MSSQL 讀取實例信息
如果拿到了 MSSQL 數據庫權限,則可以通過 BULK INSERT 讀取數據庫所在實例的文件,這里以日志文件為例。
create table #testtable(context ntext);BULK INSERT #testtable FROM 'C:\ProgramData\Amazon\EC2Launch\log\agent.log'WITH (DATAFILETYPE = 'char',KEEPNULLS)select * from #testtabledrop table #testtable;

4、其他的信息收集
在 RDS 中還可以收集共享快照信息或者對數據庫里的信息進行收集等。
在連接到數據后,可以查看數據庫的連接記錄,定位到數據庫管理人員的 IP,也可以收集數據庫中的賬號密碼,找到數據庫的通用密碼。
除此之外,數據庫中存儲的網站信息、個人敏感信息等都是信息收集的對象。
0x08 影響
1、惡意公開共享
如果攻擊者將數據庫快照惡意公開共享,那么任何人都能在 AWS RDS 公有快照中搜索到該快照,造成數據泄露。
2、其他影響
數據庫權限被攻擊者拿到后,還會造成破壞數據、篡改數據、加密勒索等等影響。
參考資料:
- https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/Welcome.html
- https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/