#

云业务 AccessKey 标识特征整理

本文作者:曾哥



注意

经读者提醒,文中部分正则存在一定的误判漏判,如果你发现了存在错误的地方,可以点击文章底部的编辑这个页面按钮,通过为文库提交 PR 的方式来修改文章。

对于云场景的渗透,现在已经层出不穷,获得AK和SK,也是云安全渗透中重要的一环。

通常,我们会在一些敏感的配置文件或者通过未授权访问、任意文件读取漏洞等方式,来寻找AK和SK。

但市面上,通过正则匹配式来寻找AK和SK的,如下:

(?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})['\"]
1

但这是通过匹配 AccessKey 开头的内容,比如 access_token:AKID1AS893JF90AWKaccess_token 这个开头来进行正则匹配的,但如果没有这样的开头呢?那我们要怎么办?

那这里我就将不同厂商的 Access Key 内容特征,分别整理出来,欢迎各位师傅补充和纠错哈哈 ~

同时也能够根据不同厂商 Key 的不同特征,直接能判断出这是哪家厂商的 Access Key ,从而针对性进行渗透测试。

# Amazon Web Services

亚马逊云计算服务 (Amazon Web Services, AWS) 的 Access Key 开头标识一般是 "AKIA"。

^AKIA[A-Za-z0-9]{16}$
1
  • Access Key ID: 20个随机的大写字母和数字组成的字符,例如 AKHDNAPO86BSHKDIRYTE
  • Secret Access Key ID: 40个随机的大小写字母组成的字符,例如 S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU(无法找回丢失的 Secret Access Key ID)。

# Google Cloud Platform

Google Cloud Platform (GCP) 的 Access Key 开头标识一般是 "GOOG"。

^GOOG[\w\W]{10,30}$
1
  • 服务账号的JSON文件中包含了Access Key和密钥的信息,其中Access Key为client_email,其长度不固定,由字母、数字和特殊字符组成。
  • 密钥(Key)的长度为256个字符,由字母、数字和特殊字符组成。

# Microsoft Azure

Microsoft Azure 的 Access Key 开头标识一般是 "AZ"。

^AZ[A-Za-z0-9]{34,40}$
1
  • Azure AD Application的Client ID通常用作Access Key,长度为36个字符,由字母和数字组成。
  • 对于Azure AD Application的密钥(Secret),长度为44个字符,由字母、数字和特殊字符组成。

# IBM Cloud

IBM 云 (IBM Cloud) 的 Access Key 开头标识一般是 "IBM"。

^IBM[A-Za-z0-9]{10,40}$
1

或者是以下规则:

[a-zA-Z0-9]{8}(-[a-zA-Z0-9]{4}){3}-[a-zA-Z0-9]{12}$
1

# Oracle Cloud

Oracle云 (Oracle Cloud) 的 Access Key 开头标识一般是 "OCID"。

^OCID[A-Za-z0-9]{10,40}$
1

# 阿里云

阿里云 (Alibaba Cloud) 的 Access Key 开头标识一般是 "LTAI"。

^LTAI[A-Za-z0-9]{12,20}$
1
  • Access Key ID长度为16-24个字符,由大写字母和数字组成。
  • Access Key Secret长度为30个字符,由大写字母、小写字母和数字组成。

# 腾讯云

腾讯云 (Tencent Cloud) 的 Access Key 开头标识一般是 "AKID"。

^AKID[A-Za-z0-9]{13,20}$
1
  • SecretId长度为17个字符,由字母和数字组成。
  • SecretKey长度为40个字符,由字母和数字组成。

# 华为云

华为云 (Huawei Cloud) 的 Access Key 是20个随机大写字母和数字组成,较难用正则表达式匹配。

[A-Z0-9]{20}
1

# 百度云

百度云 (Baidu Cloud) 的 Access Key 开头标识一般是 "AK"。

^AK[A-Za-z0-9]{10,40}$
1

# 京东云

京东云 (JD Cloud) 的 Access Key 开头标识一般是 "JDC_"。

^JDC_[A-Z0-9]{28,32}
1

# 字节跳动火山引擎

字节跳动火山引擎 (Volcengine) 的 Access Key 开头标识一般是 "AKLT",长度小于256位。

^AKLT[a-zA-Z0-9-_]{0,252}
1

# UCloud

UCloud (UCloud) 的 Access Key 开头标识一般是 "UC"

^UC[A-Za-z0-9]{10,40}$
1

# 青云

青云 (QingCloud) 的 Access Key 开头标识一般是 "QY"。

^QY[A-Za-z0-9]{10,40}$
1

# 金山云

金山云 (Kingsoft Cloud) 的 Access Key 开头标识一般是 "AKLT"。

^AKLT[a-zA-Z0-9-_]{16,28}
1

# 联通云

联通云 (China Unicom Cloud) 的 Access Key 开头标识一般是 "LTC"。

^LTC[A-Za-z0-9]{10,60}$
1

# 移动云

移动云 (China Mobile Cloud) 的 Access Key 开头标识一般是 "YD"。

^YD[A-Za-z0-9]{10,60}$
1

# 电信云

中国电信云 (China Telecom Cloud) 的 Access Key 开头标识一般是 "CTC"。

^CTC[A-Za-z0-9]{10,60}$
1

# 一云通

一云通 (Yonyou Cloud) 的 Access Key 开头标识一般是 "YYT"。

^YYT[A-Za-z0-9]{10,60}$
1

# 用友云

用友云 (Yonyou Cloud) 的 Access Key 开头标识一般是 "YY"。

^YY[A-Za-z0-9]{10,40}$
1

# 南大通用云

南大通用云 (OUCDC) 的 Access Key 开头标识一般是 "CI"。

^CI[A-Za-z0-9]{10,40}$
1

# G-Core Labs

G-Core Labs 的 Access Key 开头标识一般是 "gcore"

^gcore[A-Za-z0-9]{10,30}$
1