首页 > 其他分享 >云主机秘钥(ak/sk)泄露及利用案例

云主机秘钥(ak/sk)泄露及利用案例

时间:2023-12-14 14:14:22浏览次数:30  
标签:主机 ak 秘钥 sk https 泄露

前言

云平台作为降低企业资源成本的工具,在当今各大公司系统部署场景内已经成为不可或缺的重要组成部分,并且由于各类应用程序需要与其他内外部服务或程序进行通讯而大量使用凭证或密钥,因此在漏洞挖掘过程中经常会遇到一类漏洞:云主机秘钥泄露。此漏洞使攻击者接管云服务器的权限,对内部敏感信息查看或者删除等操作。此篇文章围绕如何发现秘钥泄露、拿到秘钥后如何利用展开。

0X01漏洞概述

ak、sk拿到后的利用,阿里云、腾讯云

云主机通过使用Access
Key Id / Secret Access Key加密的方法来验证某个请求的发送者身份。Access Key
Id(AK)用于标示用户,Secret Access Key(SK)是用户用于加密认证字符串和云厂商用来验证认证字符串的密钥,其中SK必须保密。

云主机接收到用户的请求后,系统将使用AK对应的相同的SK和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对。如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。

AK/SK原理使用对称加解密。

0x02秘钥泄露常见场景

通过上面描述我们知道云主机密钥如果泄露就会导致云主机被控制,危害很大。

在漏洞挖掘过程中常见的泄露场景有以下几种:

1、报错页面或者debug信息调试。

2、GITHUB关键字、FOFA等。

3、网站的配置文件

4、js文件中泄露

5、源码泄露。APK、小程序反编译后全局搜索查询。

6、文件上传、下载的时候也有可能会有泄露,比如上传图片、上传文档等位置。

7、HeapDump文件。

0x03实战举例

案例一:HeapDump文件中的ak\sk泄露

HeapDump文件是JVM虚拟机运行时内存的一个快照,通常用于性能分析等,但是因为其保存了对象、类等相关的信息,如果被泄露也会造成信息泄露。

1、Spring Actuator heapdump文件造成的秘钥泄露。

扫描工具:https://github.com/F6JO/RouteVulScan

解压工具:https://github.com/wyzxxz/heapdump_tool

访问某一网站时进行测试发现存在spring未授权,此时查看是否有heapdump文件,下载解压,全局搜索可发现秘钥泄露。

2、通过暴破路径的方式获取。

在文件存储位置会有一些敏感文件泄露,比如请求下载云服务器上某文件时候抓包分析。可以在请求位置暴破文件名,云服务器会返回带有访问秘钥的敏感文件。

得到文件地址后访问下载,下载后用工具爬取内容。发现泄露ak\sk

工具链接:https://github.com/whwlsfb/JDumpSpider

案例二:Js文件泄露秘钥

使用工具:trufflehog

访问某网站,使用插件trufflehog探测,会在Findings位置显示是否有密钥泄露。(网站采用异步加载也适用)

案例三:小程序上传等功能点泄露。

某小程序打开后在个人中心头像位置

点击头像抓包:

可以看到accesskeyid\acesskeysecret泄露。

渗透测试过程中可以多关注上传图片、下载文件、查看图片等等位置,说不定就有ak\sk泄露。

案例四:配置信息中的ak\sk泄露

常见的nacos后台配置列表,打开示例可以看到一些配置信息,可以看到有ak\sk泄露。

0x04漏洞利用

1、ak\sk接管存储桶。

使用工具或者云主机管理平台可以直接接管存储桶,接管桶后可以对桶内信息进行查看、上传、编辑、删除等操作。

OSS Browser--阿里云官方提供的OSS图形化管理工具

https://github.com/aliyun/oss-browser

可以看到登入存储桶后可以查看、上传、删除、下载桶内文件,造成存储桶接管的危害。

腾讯云云主机接管平台:

https://cosbrowser.cloud.tencent.com/web/bucket

行云管家(支持多家云主机厂商):

可以选不同厂商的云主机导入。

选择主机导入:

通过行云管家接管主机后,不仅可以访问OSS服务,还可以直接重置服务器密码,接管服务器。

可以对主机进行重启、暂停、修改主机信息等操作。

2、拿到ak\sk后可以尝试对主机进行命令执行。

CF 云环境利用框架

https://github.com/teamssix/cf/releases

使用cf查看该主机可做的操作权限,可以看到能执行命令。

cf tencent cvm exec -c whoami等等。

详情参考:https://wiki.teamssix.com/CF/ECS/exec.html

针对阿里云主机rce

工具链接:https://github.com/mrknow001/aliyun-accesskey-Tools

输入ak\sk查询主机,选择主机名填入,查看云助手列表是true或者false,为true可执行命令。



转自原文链接: https://forum.butian.net/share/2376

标签:主机,ak,秘钥,sk,https,泄露
From: https://www.cnblogs.com/backlion/p/17901047.html

相关文章

  • uniapp开发——纯原生渲染nvue调用uni.makePhoneCall没反应的处理办法
    uni.makePhoneCall(OBJECT)|uni-app官网(dcloud.net.cn)正常情况下,manifest.json配置拨打电话的权限就可以了:配置权限后重新打包,真机运行应该就可以正常的拨打电话了。如果API没反应,那么可以试试下边这种不弹出询问框直接拨打电话的方法:callMobile(){letmobile......
  • SAP-APP-服务器组-pacemaker集群的基础环境的安装部署-001
    1、安装pacemaker相关的软件及可能会用到的软件,两台主机都需要安装[root@app01qq-5201351]#yuminstallnmap-ncat-y[root@app01qq-5201351]#yuminstallpcs-y[root@app01qq-5201351]#yuminstallresource-agents-sap-ynmap-ncat软件包是因为可以提供nc命令,只......
  • ubuntu18.04.6 配置Busybox make -C buildroot busybox-menuconfig 遇到提示LD_LIBR
     可以先在终端执行下面命令让LD_LIBRARY_PATH变量的内容变为空白 然后再继续,这时会提示安装g++ 输入sudoapt-getinstallg++又提示权限不够,那就在make命令的前面加上sudo即可: 这样busybox的界面就会出现:  ......
  • UBUNTU 18.04.6编译linux内核make ARCH=arm menuconfig提示recipe for target ‘menuc
    UBUNTU18.04.6编译linux内核makeARCH=armmenuconfig提示recipefortarget‘menuconfig’failed:这是因为没有安装图形化Kernel配置工具。要么安装libncurses5-dev库,要么安装libncurses-dev这是因为没有安装图形化Kernel配置工具。要么安装libncurses5-dev库,要么安......
  • BugKu-Web-Flask_FileUpload(模板注入与文件上传)
    FlaskFlask是一个使用Python编写的轻量级Web应用框架。它是一个微型框架,因为它的核心非常简单,但可以通过扩展来增加其他功能。Flask的核心组件包括Werkzeug,一个WSGI工具箱,以及Jinja2,一个模板引擎。Flask使用BSD授权,这意味着它遵循开源许可证,允许用户自由地使用、修改和分发。Fla......
  • UBUNTU 18.04.6 在编译LINUX内核的时候执行MAKE ARCH=ARM SOCFPGA_DEFCONFIG提示Can't
     Intel针对SoCFPGA芯片提供的Linux源码中已经提供好了一个名为socfpga_defconfig的配置文件,我们对内核的配置和修改,建议基于此配置文件进行,因此在进行配置前,需要先将该配置文件导入到默认配置文件.config中,操作方法很简单。 在终端输入makeARCH=armsocfpga_defconfig......
  • UBUNTU 18.04.6 在编译linux内核的时候执行make ARCH=arm socfpga_defconfig设置默认
    在编译linux内核的时候执行makeARCH=armsocfpga_defconfig设置默认配置时报错bisonflexnotfound缺少文件:/bin/sh:1:bison:notfound 输入命令sudoapt-getinstallbison进行安装: /bin/sh:1:flex:notfound 输入命令 sudoapt-getinstallflex进行安......
  • std::make_pair & std::make_tuple 的区别和联系
    std::make_pair和std::make_tuple都是用于创建对应类型的对象的C++标准库函数模板。它们的区别主要在于它们所处理的数据类型和返回类型。std::make_pair:std::make_pair用于创建一个std::pair对象,std::pair是一个包含两个值的容器。#include<iostream>#include<......
  • RustDesk 部署
    一、通过编译好的文件安装1、下载服务端程序wget-P/usr/local/srchttps://github.com/rustdesk/rustdesk-server/releases/download/1.1.9/rustdesk-server-linux-amd64.zip2、解压文件并创建用户#解压tarxf/usr/local/src/rustdesk-server-linux-amd64.zi......
  • 2023.12 ~ After the ice turns into water / the sea I hang upside down will be yo
    COCI2023.11LOJ3999考虑把填数过程倒过来做,那么就变成了覆盖。设\(f(i,j,0/1)\)表示目前填进去\(i\)个数,且最后一个填的数是\(j\),并且\(j\)的位置在最左侧/最右侧的方案数。以\(f(i,j,0)\)为例,转移有:\(f(i,j,0)\tof(i+1,k,0)\),要求\(k\lej-1\)且\(j-1\equivk......