通过AWS SSO设备代码认证进行AWS凭证钓鱼攻击(2024年更新)

news/2025/9/27 16:24:38/文章来源:https://www.cnblogs.com/qife122/p/19115248

通过AWS SSO设备代码认证进行AWS凭证钓鱼攻击(2024年更新)

背景

AWS SSO简介

AWS SSO(现称为Identity Center)是AWS提供的多账户权限管理服务。支持三种身份源:

  • 直接创建在AWS SSO身份存储中
  • 从Active Directory同步
  • 通过SAML集成第三方身份提供商(如Okta)

CLI使用机制

AWS SSO实现了OAuth 2.0设备授权许可标准,支持CLI认证流程:

$ aws configure sso
SSO start URL: https://my-sso-portal.awsapps.com/start
SSO region: us-east-1

系统会生成设备验证链接和代码,用户通过浏览器完成认证。

攻击原理

设备代码授权流程

  1. 客户端调用sso-oidc:RegisterClient注册OIDC客户端
  2. 调用sso-oidc:StartDeviceAuthorization生成验证链接
  3. 用户打开链接完成身份提供商认证
  4. 客户端调用sso-oidc:CreateToken获取SSO访问令牌

钓鱼攻击步骤

步骤0:获取目标信息
通过社会工程或子域名发现获取AWS SSO URL:

$ curl https://victim.awsapps.com/start/ | grep 'meta name="region"'

步骤1:发起设备代码授权

sso_oidc = boto3.client('sso-oidc', region_name=REGION)
client = sso_oidc.register_client(clientName='my-attacker')
authz = sso_oidc.start_device_authorization(clientId=client_id,startUrl=AWS_SSO_START_URL
)

步骤2:发送钓鱼链接
受害者看到合法的AWS验证页面,只需点击"允许"即可完成授权。

步骤3:获取访问令牌

token_response = sso_oidc.create_token(deviceCode=deviceCode,grantType="urn:ietf:params:oauth:grant-type:device_code"
)

步骤4:枚举AWS资源

  • 列出可访问账户:sso:ListAccounts
  • 列出账户角色:sso:ListAccountRoles
  • 获取STS凭证:sso:GetRoleCredentials

检测与防护

CloudTrail日志事件

攻击步骤 CloudTrail事件 源IP
生成设备代码 无日志 N/A
受害者查看提示 sso:ListApplications 受害者IP
获取访问令牌 sso-oidc:CreateToken 攻击者IP
枚举账户角色 sso:ListAccounts/sso:ListAccountRoles 攻击者IP

检测策略

  1. 邮件网关检测:拦截device.sso.<region>.amazonaws.com链接
  2. IP差异检测:监控短时间内不同IP的ListApplications和CreateToken事件
  3. 异常活动检测:监控sso:ListAccountRoles事件数量异常增长

凭证撤销

通过移除用户的所有权限集分配可立即撤销访问令牌:

  • 直接移除用户权限分配
  • 移除所属组的权限分配

结论

设备代码认证虽然提升了CLI使用体验,但存在固有的钓鱼风险。组织需要结合安全意识培训和CloudTrail监控来加强防护。AWS明确表示这是设计特性而非漏洞,所有实现OIDC设备代码认证的身份提供商都存在类似风险。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

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

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

相关文章

wireshark 过滤

wireshark 过滤 IP地址过滤 ip.addr == 192.168.1.202ip目的地地址过滤 ip.dst==192.168.1.202端口过滤udp.port==8080udp.srcport==8080udp.dstport==8080 搜索栏输入“not gvsp and not icmp” ,把 ARP、UDP 协议过…

解码数据结构栈

栈的概念与特性 栈是线性结构的特殊形式,其设计初衷是解决 “数据需按特定顺序存取” 的场景(如函数调用、括号匹配),核心遵循 “后进先出”(LIFO,Last In First Out)原则,是计算机领域中最基础的数据结构之一…

vs 2008 建立网站汕头有几个区几个县

七燕论文是一个非常好用的论文写作工具&#xff0c;它不仅可以帮助学生提高写作效率&#xff0c;还能帮助他们避免抄袭和提高论文质量。七燕论文的查重降重功能非常靠谱&#xff0c;能够帮助用户检测论文中的重复内容&#xff0c;并提供相应的修改建议&#xff0c;确保论文的原…

第七章 手写数字识别V4

# 优化: # 增加父类Module,输出每层信息 # 增加ReLU类,Tanh类 # 增加Dropout类,随机失活,防止过拟合,提高泛化能力 # 增加Parameter类,保存权重和梯度# 导入必要的库 import numpy as np import os import stru…

什么?你的蓝牙用不了了?

什么?你的蓝牙用不了了?如果你的电脑蓝牙出现一下问题:蓝牙图标不见? 搜索不到任何设备? 只能搜到手机不能搜到耳机? 看看本篇文章给你的解决办法把!蓝牙图标不见 暂未解决。 搜索不到任何设备 首先,同时按下 …

个人可以做电影网站吗信用徐州网站建设情况

黑马程序员上海中心学姐微信&#xff1a;CZBKSH关注咳咳&#xff0c;今天学姐就来和你们说说Spring对于Java程序员的重要性。首先&#xff0c;Spring 官网首页是这么介绍自己的——“Spring: the source for modern Java”&#xff0c;这也意味着 Spring 与 Java 有着密切的关系…

做韦恩图的在线网站wordpress下载视频

简单选择排序的介绍&#xff1a;从给定的序列中&#xff0c;按照指定的规则选出某一个元素&#xff0c;再根据规定交换位置后达到有序的目的。简单选择排序的基本思想&#xff1a;假定我们的数组为int [] arr new int[n]&#xff0c;第一次我们从arr[0]~arr[n-1]中选择出最小的…

2025/9/27

2025/9/271.完成课后任务:验证码任务 2.完成课后任务:生成三十道四则运算题

30.Linux DHCP 服务器 - 详解

30.Linux DHCP 服务器 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

C# Smart3D Plate Part零件形状提取

public class ExportPartShape : BaseModalCommand{public override void OnStart(int instanceId, object argument){base.OnStart(instanceId, argument);var symFile = @"C:\Program Files (x86)\Smart3D\Comm…

威海建设局网站首页图片编辑在线

在FTP协议中&#xff0c;可以通过配置服务器端的空闲连接超时时间来设置连接的过期时间。具体步骤如下&#xff1a; 登录FTP服务器&#xff0c;进入服务器的配置文件目录。通常配置文件位于/etc或/etc/vsftpd目录下。打开FTP服务器的配置文件&#xff0c;例如vsftpd.conf。在配…

网站使用微软雅黑小程序模板免费下载

C语言实验lab10C程序设计实验报告学院&#xff1a;国际商学院班级&#xff1a;14电商专业&#xff1a;电子商务姓名&#xff1a;熊靓男日期&#xff1a;15.5.25学号&#xff1a;1420070049实验目的复习一维数组掌握二维数组参数的传递掌握排序算法实验内容消灭怪物在阳光明媚月…

化妆品网站系统规划网站制作排名

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param s string字符串 * param n int整型 * return string字符串*/public String trans (String s, int n) {// write co…

长春网站建设公司会展设计效果图

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com —————————————————————————————— 目录 查询数据 条件 逻辑运算符 模糊查询 范围查询 in 判断空 UNION 排序 聚合 分组&#xff1a;group by —————————…

网站开发工程师的证件seo技术专员招聘

本文简单记录一次实践使用过程&#xff0c;涉及presto-mysql,presto-elasticsearch&#xff0c;文中参数未做注释&#xff0c;请参考官方文档&#xff0c;希望能帮到大家1 下载安装 presto-0.228<1>下载服务端客户端相关jar<2>安装&#xff1a;1> 解压tar -zxvf…

路飞和女帝做h的网站女装网站建设计划书

正则表达式是一个特殊的字符序列&#xff0c;它能帮助你方便的检查一个字符串是否与某种模式匹配。re 模块使 Python 语言拥有全部的正则表达式功能。compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。r…

潍坊市住房和城乡建设厅网站如何自己制作链接内容

第一步&#xff1a;安装svg-sprite-loader插件 <!-- svg-sprite-loader svg雪碧图 转换工具 --> <!-- <symbol> 元素中的 path 就是绘制图标的路径&#xff0c;这种一大串的东西我们肯定没办法手动的去处理&#xff0c; 那么就需要用到插件 svg-sprite-loader …

用户体验好的网站wordpress用户修改头像

在处理多个 Python 库依赖时&#xff0c;遇到依赖冲突是很常见的&#xff0c;特别是当项目依赖的库版本相互不兼容时。要解决这些冲突&#xff0c;可以采用以下方式。 1. 虚拟环境的使用 为了避免系统级和用户级包的冲突&#xff0c;建议你使用 虚拟环境。虚拟环境为每个项目…

题解:QOJ9619/洛谷13568 [CCPC 2024 重庆站] 乘积,欧拉函数,求和(数论+状压DP)

首先将 \(\phi(x)\) 拆成 \(\phi(x)= x \prod_{p | x} \frac {p-1}{p}\),发现我们要求的式子其实可以转化为 \(\sum_{S} (\prod a_i)\prod_{p|\prod a_i} \frac {p-1}{p}\)。 发现其实我们只关心哪些质数 \(p\) 在最终…

Momentum Gradient Descent(动量梯度下降)

Momentum Gradient Descent(动量梯度下降)是标准梯度下降(SGD)的一个重要改进版,旨在加速训练过程,并帮助模型更有效地找到最优解。 你可以将动量(Momentum)想象成物理学中的惯性。动量梯度下降(Momentum GD)…