加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 安全 > 正文

深入解析HashiCorp Vault中的身份验证漏洞

发布时间:2022-08-04 11:26:17 所属栏目:安全 来源:互联网
导读:在上一篇文章中,我们为读者介绍了Vault的身份验证架构,以及冒用调用方身份的方法,在本文中,我们将继续为读者介绍冒用调用方身份以及利用Vault-on-GCP的漏洞的过程。 使用有效签名的JWT向该操作发送请求,将返回SubjectFromWebIdentityToken字段中的令牌

  在上一篇文章中,我们为读者介绍了Vault的身份验证架构,以及冒用调用方身份的方法,在本文中,我们将继续为读者介绍冒用调用方身份以及利用Vault-on-GCP的漏洞的过程。

  使用有效签名的JWT向该操作发送请求,将返回SubjectFromWebIdentityToken字段中的令牌的sub字段。
 
  当然,一个正常的OIDC供应商是不会在主题字段中给带有XML有效载荷的JWT进行签名的。不过,攻击者只要直接创建自己的OIDC身份供应商(IdP),并将其注册到自己的AWS账户上,然后就可以用自己的密钥对任意的令牌进行签名了。
 
  让我们把这一切放在一起,就可以搞定整个攻击过程:
 
   创建一个OIDC IdP。实际上,就是生成一个RSA密钥对,创建一个OIDC discovery.json和key.json文档,并将json文件托管在Web服务器上(参见这里,这是使用S3的设置示例)。
 
   使用自己的AWS账户注册一个OID IdP -> AWS IAM角色映射。需要注意的是,这里的AWS账户不需要与我们的目标有任何关系。
 
   现在,就可以使用我们的OIDP给一个JWT进行签名了,其中可以放入任意的GetCallerIdentityResponse,只要将其作为主题声明的一部分即可。解码后的示例令牌可能是这样的:iss、azp和aud与步骤2中指定的细节是完全匹配的。其中,sub中包含我们的伪造的响应,从而将我们识别为AWS IAM账户arn:aws:iam::superprivileged-aws-account。
 
  复制
  {'iss': 'https://oidc-test-wrbvvljkzwtfpiikylvpckxgafdkxfba.s3.amazonaws.com/',
  
  'azp': 'abcdef', 'aud': 'abcdef',
  
  'sub': '',
  
  'exp': 1595120834, 'iat': 1594207895}

   我们可以使用步骤3中的(已经签名的)令牌和步骤2中使用的RoleArn直接向STS AssumeRoleWithWebIdentity操作发送请求,以测试所有设置是否正确:
 
  复制
  curl -H "Accept: application/json"

  如果一切按计划进行,STS将把令牌主题反映为其JSON编码响应的一部分。如上所述,Go XML解码器将跳过GetCallerIdentityResponse对象前后的所有内容,从而使Vault认为这是一个有效的STS CallerIdentity响应。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读