记一次AccessKey值泄露的挖掘和分析
字数 1277 2025-08-20 18:18:11
AccessKey泄露挖掘与分析技术指南
1. AccessKey基础知识
1.1 AccessKey概述
AccessKey是云服务提供商用于身份验证的密钥对,通常由AccessKey ID和AccessKey Secret组成。泄露这些密钥可能导致云环境被接管。
1.2 主要云厂商AccessKey特征
阿里云AccessKey
- 标识特征:以"LTAI"开头
- 正则表达式:
^LTAI[A-Za-z0-9]{12,20}$ - Key ID长度:16-24个字符(大写字母和数字)
- Key Secret长度:30个字符(大小写字母和数字)
腾讯云AccessKey
- 标识特征:以"AKID"开头
- 正则表达式:
^AKID[A-Za-z0-9]{13,20}$ - SecretId长度:17个字符(字母和数字)
- SecretKey长度:40个字符(字母和数字)
2. AccessKey泄露挖掘技术
2.1 常见泄露途径
- 敏感配置文件
- 未授权访问漏洞
- 任意文件读取漏洞
- JavaScript源代码泄露
- 接口信息泄露
2.2 正则匹配模式
使用以下正则表达式匹配多种AccessKey类型:
(?i)((access_key|access_token|admin_pass|admin_user|algolia_admin_key|algolia_api_key|alias_pass|alicloud_access_key|amazon_secret_access_key|amazonaws|ansible_vault_password|aos_key|api_key|api_key_secret|api_key_sid|api_secret|api.googlemaps AIza|apidocs|apikey|apiSecret|app_debug|app_id|app_key|app_log_level|app_secret|appkey|appkeysecret|application_key|appsecret|appspot|auth_token|authorizationToken|authsecret|aws_access|aws_access_key_id|aws_bucket|aws_key|aws_secret|aws_secret_key|aws_token|AWSSecretKey|b2_app_key|bashrc password|bintray_apikey|bintray_gpg_password|bintray_key|bintraykey|bluemix_api_key|bluemix_pass|browserstack_access_key|bucket_password|bucketeer_aws_access_key_id|bucketeer_aws_secret_access_key|built_branch_deploy_key|bx_password|cache_driver|cache_s3_secret_key|cattle_access_key|cattle_secret_key|certificate_password|ci_deploy_password|client_secret|client_zpk_secret_key|clojars_password|cloud_api_key|cloud_watch_aws_access_key|cloudant_password|cloudflare_api_key|cloudflare_auth_key|cloudinary_api_secret|cloudinary_name|codecov_token|config|conn.login|connectionstring|consumer_key|consumer_secret|credentials|cypress_record_key|database_password|database_schema_test|datadog_api_key|datadog_app_key|db_password|db_server|db_username|dbpasswd|dbpassword|dbuser|deploy_password|digitalocean_ssh_key_body|digitalocean_ssh_key_ids|docker_hub_password|docker_key|docker_pass|docker_passwd|docker_password|dockerhub_password|dockerhubpassword|dot-files|dotfiles|droplet_travis_password|dynamoaccesskeyid|dynamosecretaccesskey|elastica_host|elastica_port|elasticsearch_password|encryption_key|encryption_password|env.heroku_api_key|env.sonatype_password|eureka.awssecretkey)[a-z0-9_ .\-,]{0,25}0,5}['\"]([0-9a-zA-Z\-_=]{8,64})['\"]
2.3 挖掘方法
- 使用浏览器开发者工具(F12)搜索关键词如"OSSaccessKeyId"
- 检查JavaScript源代码中的敏感信息
- 使用插件(如findsomething)扫描接口信息泄露
- 查找"ossAccessid"和"ossAccesskey"等关键字
3. AccessKey利用技术
3.1 工具介绍
行云管家(yun.cloudbility.com)
- 登录后选择云主机厂商并导入资源
- 输入泄露的Key ID和Key Secret
- AK/SK验证通过后选择绑定的云主机
- 完成导入操作
OSS Browser(阿里云官方工具)
- GitHub地址: https://github.com/aliyun/oss-browser
- 功能: 专门用于连接OSS(对象存储服务)
- 使用方法: 直接输入泄露的AccessKey进行连接
3.2 利用流程
- 确认AccessKey所属云厂商
- 根据厂商选择合适的工具
- 尝试连接并获取云资源访问权限
- 检查可用的云服务(如ECS、OSS等)
- 评估泄露的影响范围
4. 防御措施
4.1 预防AccessKey泄露
- 避免在代码中硬编码AccessKey
- 使用环境变量或密钥管理服务
- 设置最小权限原则
- 定期轮换AccessKey
4.2 检测与响应
- 监控异常API调用
- 设置AccessKey使用告警
- 发现泄露后立即撤销相关密钥
- 审计相关日志确定泄露原因
5. 法律与道德声明
- 未经授权的攻击属于非法行为
- 本文仅用于安全研究和防御目的
- 实际测试需获得系统所有者明确授权
- 传播或利用本文信息造成的后果由使用者自行承担
6. 总结
AccessKey泄露是云安全中的重要风险点,安全研究人员应:
- 了解不同云厂商的AccessKey特征
- 掌握有效的挖掘技术
- 熟悉相关利用工具
- 采取适当的防御措施
- 始终遵守法律和道德规范