AWS - IAM & STS Unauthenticated Enum
Ukusanyaji wa Majukumu na Majina ya Watumiaji kwenye akaunti
Jaribio la Kufikiria Kiotomatiki Jukumu
Mbinu hii haifanyi kazi tena kwani ikiwa jukumu lipo au la, utapata kosa hili daima:
Kosa lilijitokeza (AccessDenied) wakati wa kuita operesheni ya AssumeRole: Mtumiaji: arn:aws:iam::947247140022:user/testenv hana idhini ya kutekeleza: sts:AssumeRole kwenye rasilimali: arn:aws:iam::429217632764:role/account-balanceasdas
Unaweza jaribu hili kwa kukimbia:
aws sts assume-role --role-arn arn:aws:iam::412345678909:role/superadmin --role-session-name s3-access-example
Kujaribu kufikiria jukumu bila idhini inayostahili husababisha ujumbe wa kosa kutoka AWS. Kwa mfano, ikiwa huna idhini, AWS inaweza kurudisha:
Hii ujumbe unathibitisha uwepo wa jukumu lakini unaonyesha kwamba sera yake ya kuchukua jukumu hairuhusu dhana yako. Kwa upande mwingine, jaribio la kuchukua jukumu lisililopo husababisha kosa tofauti:
Kwa kuvutia, njia hii ya kutofautisha kati ya majukumu yaliyopo na yasiyopo inaweza kutumika hata kati ya akaunti tofauti za AWS. Kwa ID halali ya akaunti ya AWS na orodha ya maneno iliyolengwa, mtu anaweza kuchunguza majukumu yaliyopo katika akaunti bila kukutana na vizuizi vyovyote vya asili.
Unaweza kutumia script huu kutambua wakuu wanaowezekana kwa kutumia suala hili.
Sera za Kuamini: Kuvunja Nguvu Majukumu na Watumiaji wa Akaunti za Msalaba
Kuweka au kusasisha sera ya kuamini ya jukumu la IAM kunahusisha kufafanua ni rasilimali au huduma za AWS zipi zinaruhusiwa kuchukua jukumu hilo na kupata vitambulisho vya muda. Ikiwa rasilimali iliyotajwa katika sera ipo, sera ya kuamini inahifadhiwa kwa mafanikio. Walakini, ikiwa rasilimali haipo, kosa linazalishwa, ikionyesha kuwa mkuu batili alitolewa.
Tafadhali elewa kuwa katika rasilimali hiyo unaweza kufafanua jukumu au mtumiaji wa akaunti ya msalaba:
arn:aws:iam::acc_id:role/role_name
arn:aws:iam::acc_id:user/user_name
Hii ni mfano wa sera:
GUI
Hii ni kosa utakaloliona ikiwa unatumia jukumu ambalo halipo. Ikiwa jukumu lipo, sera ita hifadhiwa bila makosa yoyote. (Kosa ni kwa ajili ya kuboresha, lakini pia inafanya kazi wakati wa kuunda)
CLI
Unaweza kiotomatiki mchakato huu kwa https://github.com/carlospolop/aws_tools
bash unauth_iam.sh -t user -i 316584767888 -r TestRole -w ./unauth_wordlist.txt
Tumia Pacu:
run iam__enum_users --role-name admin --account-id 229736458923 --word-list /tmp/names.txt
run iam__enum_roles --role-name admin --account-id 229736458923 --word-list /tmp/names.txt
Jukumu la
admin
lililotumiwa kwenye mfano ni jukumu katika akaunti yako litakalotumiwa kwa udanganyifu na pacu ili kuunda sera inayohitajika kwa ajili ya uchambuzi
Privesc
Katika kesi jukumu lilikuwa limeconfigure vibaya na kuruhusu yeyote kudai:
Mshambuliaji anaweza tu kudai hivyo.
Ufikiaji wa Tatu wa OIDC Federation
Fikiria kwamba unaweza kusoma mfumo wa hatua za Github ambao unapata jukumu ndani ya AWS. Imani hii inaweza kutoa ufikiaji kwa jukumu lenye sera ya imani ifuatayo:
Sera hii ya uaminifu inaweza kuwa sahihi, lakini ukosefu wa hali zaidi unapaswa kukufanya usiwaamini. Hii ni kwa sababu jukumu la awali linaweza kuchukuliwa na MTU yeyote kutoka Github Actions! Unapaswa kueleza katika hali pia mambo mengine kama jina la org, jina la repo, env, tawi...
Hitilafu nyingine inayowezekana ni kuongeza hali kama ifuatavyo:
Tafadhali kumbuka alama ya mwanya (*) kabla ya mambo ya (colon) :. Unaweza kuunda shirika kama org_name1 na kudai jukumu kutoka kwa Hatua ya Github.
Marejeo
Last updated