该内容记录如何通过ssrf漏洞,获取云服务器元数据信息以及可能造成的危害。
环境搭建可手动在腾讯云服务器上根据所需创建,也可通过开源项目https://github.com/HXSecurity/TerraformGoat进行搭建。
环境搭建
利用TerraformGoat项目搭建漏洞环境,进入漏洞环境目录,并将ak填入terraform.tfvars文件
部署靶场
terraform init
terraform apply
使用TerraformGoat无法构建该环境,出现以下报错
查看腾讯云官方文档和main.tf文件,发现当前请求的实例类型是1核1G,但是北京7节点已经无法购买该类型CVM,所以请求失败。这里可以通过手动去腾讯云选购服务器商品(也可问询客服人员),找到可购买实例类型后,填入main.tf重新构建即可。
因为涉及到购买新的实例,可能会产生费用,没有预算不建议使用terraform构建环境,可以拿自己之前购买过的实例搭建(总之要有一台腾讯云实例),步骤如下
打开main.tf
provider "tencentcloud" {
secret_id = var.tencentcloud_secret_id
secret_key = var.tencentcloud_secret_key
region = "ap-beijing"
}
resource "tencentcloud_instance" "web" {
instance_name = "huoxian_terraform_goat_instance"
availability_zone = "ap-beijing-7"
image_id = "img-pi0ii46r"
instance_type = data.tencentcloud_instance_types.instance_types.instance_types.0.instance_type
allocate_public_ip = true
internet_max_bandwidth_out = 50
security_groups = [tencentcloud_security_group.default.id]
user_data_raw = <<EOF
#!/bin/bash
sudo apt-get -y update
sleep 10s
sudo apt-get -y install apache2
sudo apt-get -y install php
sudo apt-get -y install php-curl
sudo sed -i 's/Listen 80/Listen 8080/' /etc/apache2/ports.conf
sudo /etc/init.d/apache2 restart
cd /var/www/html
sudo apt-get -y install wget
sudo wget https://huocorp-oss.oss-cn-beijing.aliyuncs.com/terraform-goat-dependency-files/ssrf-lab.zip
sudo apt-get -y install unzip
sudo unzip ssrf-lab.zip
sudo mv ./ssrf-lab/static/flag69152201.txt /
EOF
depends_on = [
tencentcloud_security_group_rule.ingress,
tencentcloud_security_group_rule.egress
]
}
resource "tencentcloud_security_group" "default" {
name = "huoxian_terraform_goat_security_group"
description = "make it accessible for both production and stage ports"
project_id = 0
}
resource "tencentcloud_security_group_rule" "ingress" {
security_group_id = tencentcloud_security_group.default.id
type = "ingress"
cidr_ip = "0.0.0.0/0"
ip_protocol = "tcp"
port_range = "8080"
policy = "accept"
depends_on = [
tencentcloud_security_group.default
]
}
resource "tencentcloud_security_group_rule" "egress" {
security_group_id = tencentcloud_security_group.default.id
type = "egress"
cidr_ip = "0.0.0.0/0"
policy = "accept"
depends_on = [
tencentcloud_security_group.default
]
}
data "tencentcloud_instance_types" "instance_types" {
cpu_core_count = 1
memory_size = 1
}
这里存放了构建的整个步骤,发现里面存在一个shell脚本,用来搭建ssrf环境用的,其他代码是用来构建cvm服务器的,暂时可以忽略
按照shell脚本,去下载和安装环境,执行完毕后,输入http://腾讯vps:8080/ssrf-lab/即可进入环境
漏洞复现
腾讯云实例内部可以通过访问特定的uri,获取实例元数据。获取元数据参考接口:https://cloud.tencent.com/document/product/213/4934
看所有类别的实例元数据
http://metadata.tencentyun.com/latest/meta-data/
获取内网ip
http://metadata.tencentyun.com/latest/meta-data/local-ipv4
登录服务器核对下
造成该问题的原因是,腾讯云提供了内部访问实例元数据的URI,该URI本来是需要服务器内部访问的,但是结合ssrf服务端请求伪造后,可通过公网访问实例元数据。
上述测试内容简单访问了内网ip,元数据还包含用户数据等敏感信息,可能会读取到服务器所属角色的临时token,导致被接管云控制台。
实例元数据具体详情见:https://cloud.tencent.com/document/product/213/4934
其他云服务器
其他云服务器使用ssrf漏洞读取元数据利用方式一致,不同点就是url不同。
阿里云
读取元数据 http://100.100.100.200/latest/meta-data/
读取用户数据
元数据官方说明:https://help.aliyun.com/document_detail/108460.htm?spm=a2c4g.11186623.0.0.6a8345cbIf2jvN#concept-dwj-y1x-wgb
华为云
读取元数据 http://169.254.169.254/latest/meta-data/
读取用户数据 http://169.254.169.254/latest/user-data/
这是创建ECS时添加的元数据,是生成的密码密文
元数据相关详情见:https://support.huaweicloud.com/usermanual-ecs/ecs_03_0166.html
/openstack/latest/meta_data.json #用于查询弹性云服务器的元数据
/latest/meta-data/local-ipv4 #用于查询弹性云服务器的固定IP地址。
/openstack/latest/network_data.json #查询弹性云服务器的网络信息,支持查询云服务器挂载的全部网卡的信息,包括网卡所在子网的 DNS 地址、网络带宽、网卡 ID、网卡私有 IP 地址、网卡弹性公网 IP 地址、网卡的 MAC 地址。
/openstack/latest/securitykey #获取临时的 AK、SK
案例分享
UEditor读取元数据 :https://www.4hou.com/posts/gQgr
从云服务器 SSRF 漏洞到接管你的阿里云控制台 :https://zone.huoxian.cn/d/1237-ssrf
参考链接
https://cloud.tencent.com/document/product/213/4934
https://github.com/HXSecurity/TerraformGoat https://zone.huoxian.cn/d/1237-ssrf
https://www.4hou.com/posts/gQgr
https://help.aliyun.com/document_detail/108460.htm?spm=a2c4g.11186623.0.0.6a8345cbIf2jvN#concept-dwj-y1x-wgb
https://support.huaweicloud.com/usermanual-ecs/ecs_03_0166.html
原文始发于微信公众号(冰蚕实验室):云服务安全笔记--云服务器
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论