針對雲環境的滲透
1.雲術語概述
1.1.RDS
關聯式資料庫服務(Relational Database Service,RDS)是一種穩定可靠、可彈性伸縮的線上資料庫服務
RDS 採用即開即用的方式,相容 MySQL、SQL Server 兩種關聯式資料庫,並提供資料庫線上擴容、備份回滾、效能檢測及分析等功能
RDS 與雲伺服器搭配使用,可使 I/O 效能倍增,內網互通,避免網路瓶頸
1.2.OSS
物件儲存服務(Object Storage Service,OSS)是阿里雲對外提供的海量、安全和高可靠的雲端儲存服務
1.3.ECS
雲伺服器(Elastic Compute Service,ECS)與傳統資料中心機房的伺服器相似,雲伺服器部署在雲端,由雲服務商直接提供底層硬體環境
1.4.安全組
一種虛擬防火牆,具備狀態檢測和資料包過濾功能,用於在雲端劃分安全域
同一安全組內的 ECS 例項之間預設內網互通
2.雲滲透思路
雲滲透,即 SaaS 或 PaaS 滲透
由於伺服器上雲或其部分功能模組被部署在雲上,站點也可能對比雲伺服器進行請求,所以除了常規的 Web 漏洞,新技術也會帶來新的風險(如 Access Key 洩露利用、配置不當利用等問題)
2.1.Access Key
Access Key 由雲服務商頒發給雲伺服器的所有者,Access Key 即所有者身份的證明
Access Key 通常分為 Access Key ID 和 Access Key Secret 兩個部分
當呼叫雲伺服器的某些 API 介面、某些服務或某些功能點時,可能需要使用 Access Key 對身份進行認證。所以,如果能獲取對應雲伺服器的 Access Key,就可以透過對應的 Access Key 完成身份認證
每個雲服務商為 Access Key 分配的許可權不同,Access Key 洩露可能造成的危害也不同。例如:阿里云為雲伺服器提供的 Access Key 是 root 使用者;AWS 為雲伺服器提供的 Access Key 有限制,有些則是 S3 或 EC2,但並不一定都擁有上傳或修改的許可權
對於常規滲透洩露出來的 Access Key,可以透過特殊手段利用其獲取目標映象,還原 VMware 虛擬機器或透過 DiskGinus 檢視檔案
在進行雲環境滲透時,攻擊者將更關注是否存在敏感資訊、Access Key 洩露的情況
- 進行資產資訊收集(包括子域名查詢、埠掃描、目錄掃描、指紋識別等)
- 在查詢過程中留意 Access Key 等金鑰,可能會在 APK 檔案、GitHub 倉庫、Web 頁面、API 介面、JavaScript 檔案、常規配置檔案中出現
- 也可使用 FOFA、ZoomEye、Hunter 等網路空間搜尋引擎對 Access Key 等關鍵詞進行查詢
- AWS 的雲產品可透過 DNS 快取、buckets.grayhatwarfare 查詢
當測試者發現 Access Key 後,透過行雲管家、OSS Browser、API Explorer、AWS CLI 等雲伺服器管理工具進行連線
2.2.雲滲透實際運用
2.2.1.使用者 Access Key 洩露的利用
通常,在以下幾種情況下,可能存在 Access Key 洩露:
- 在 APK 檔案中存放 Access Key;
- 前端程式碼洩露,例如在 JavaScript 中硬編碼 Key 導致的洩露;
- GitHub 查詢目標關鍵字發現 Access Key 與 Access Key Secret;
- 在擁有 Webshell 低許可權的情況下,蒐集阿里雲 Access Key 並利用;
- 透過 Web 注入的方式獲取 Access Key。
2.2.2.Spring 敏感資訊洩露(例)
收集資訊時,發現目標對應的三級子域名存在 spring 的介面未授權訪問,在 /actuator/env 下發現多個密碼,且其中存在 Access Key ,嘗試呼叫 heapdump 介面,下載記憶體,提取密文
下載成功後,使用 MemoryAnalyzer 搜尋轉存下來的記憶體檔案,獲取阿里雲的 Access Key 密文
在 dump 的記憶體檔案中還獲取了一些內網的 Redis 和 MySQL 明文密碼