云服务安全笔记云服务器

admin 2022年12月5日22:28:33安全文章评论20 views4208字阅读14分1秒阅读模式

该内容记录如何通过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


原文始发于微信公众号(冰蚕实验室):云服务安全笔记--云服务器

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月5日22:28:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  云服务安全笔记云服务器 http://cn-sec.com/archives/1445979.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: