AWS ELB、VPC 和 IAM 服務攻防
0x00 前言
在 AWS 中,不管是 EC2 還是 RDS 都會使用到 VPC (Virtual Private Cloud) 虛擬網絡環境服務,在 EC2 中可能會用到 ELB (Elastic Load Balancing) 彈性負載均衡服務,IAM (Identity and Access Management) 可以幫助 AWS 用戶安全地控制對 AWS 資源的訪問。
這里站在攻擊者的視角簡單看看 VPC、ELB 和 IAM 服務所面臨的一些風險點。
0x01 信息收集
1、網段信息
在 VPC 中可以看到目標網段信息,拿到這些信息后,在進行內網橫向時就可以更有專注性,在一定程度上提高內網橫向的效率。

或者通過命令行獲取目標子網信息
aws ec2 describe-subnets --query 'Subnets[].CidrBlock'

2、流日志
在 VPC 中,可以通過創建查看流日志的信息,去判斷目標 IP 的流量信息,從而判斷出高價值目標,方便接下來的內網橫向。

3、安全組配置信息
在 AWS VPC 控制臺中,可以查看到目標的安全組信息,如果安全組配置了一些只允許單個 IP 訪問的策略,那么可以認為這個 IP 是一個高價值 IP,例如這樣的配置。

或者使用命令行查看入站規則中的端口和源IP范圍
aws ec2 describe-security-groups --query 'SecurityGroups[].IpPermissions[].[FromPort,IpRanges]'

同時在安全組中,如果遇到開放所有端口并且允許所有人訪問的情況,那么也可以認為這是存在一定安全風險的。
4、IAM 用戶角色權限信息
如果可以訪問到目標的 IAM 信息,則可以對當前用戶的 IAM 用戶角色權限信息進行收集,這有助于更全面的了解到當前目標使用了那些云服務以及策略的劃分。
例如通過下面的這些角色,可以猜測出當前目標使用了 EKS、ELB、RDS 等服務,那么在進行橫向的時候,就可以多關注關注有沒有這方面的資產。

或者使用命令行查看
aws iam list-roles --query 'Roles[].RoleName'

0x02 權限提升
1、 在 IAM 中分配用戶權限
如果當前用戶具備編輯 IAM 策略的權限,但沒有某些服務權限的話,那么可以在 IAM 中開啟這個服務權限,以實現提權。
例如下面這個用戶,在打開 EC2 時提示我們沒有權限

但是這個用戶是具有 IAM 的編輯權限的,因此我們可以將 AmazonEC2FullAccess 權限賦予給這個用戶

此時再次訪問 EC2 界面,發現就可以成功訪問了,這樣就實現了提權。

0x03 權限維持
1、利用 IAM 進行權限維持
利用 IAM 進行權限維持的原理也比較簡單,直接在 IAM 中創建一個擁有高權限的用戶即可。
例如這里選擇添加用戶,訪問類型選擇控制臺密碼

「設置權限」選擇「直接附加現有策略」,策略選擇「AdministratorAccess」,即表示附加所有策略

創建完成后,會提供自動生成的密碼與登錄地址,使用這個登錄地址和密碼直接登錄即可,這時我們就制作好了一個后門賬戶。
0x04 影響
1、惡意修改安全組
攻擊者可以通過惡意修改安全組,比如將允許特定 IP 訪問的策略改成允許所有人訪問,以方便自己的測試。
或者將安全組修改為禁止允許所有人訪問,導致目標對外服務不可訪問。
2、惡意釋放彈性 IP
攻擊者可以通過惡意釋放彈性 IP,造成目標實例 IP 變動導致域名綁定 IP 失效,以至于域名不可訪問等影響。
3、HTTP 請求走私攻擊
如果 EC2 配置了 ELB,那么攻擊者可以嘗試對 EC2 上的 Web 服務發起 HTTP 請求走私攻擊,從而繞過認證。
4、惡意修改防火墻策略
攻擊者可以通過惡意修改防火墻策略,將自己的攻擊 IP 添加到防火墻策略內,從而方便自己的攻擊。
或者將防火墻策略設置為禁止所有人訪問,導致目標對外服務不可訪問。