AWS - Taarifa za Msingi

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

Hierarchi ya Shirika

Akaunti

Katika AWS, kuna akaunti ya mzizi, ambayo ni chombo mama kwa akaunti zote za shirika lako. Hata hivyo, huwezi kutumia akaunti hiyo kupeleka rasilimali, unaweza kuunda akaunti nyingine ili kutenganisha miundombinu tofauti za AWS kati yao.

Hii ni ya kuvutia kutoka kwa mtazamo wa usalama, kwani akaunti moja haitakuwa na uwezo wa kufikia rasilimali kutoka akaunti nyingine (isipokuwa madaraja yameundwa mahsusi), hivyo kwa njia hii unaweza kuunda mipaka kati ya uanzishaji.

Kwa hivyo, kuna aina mbili za akaunti katika shirika (tunazungumzia kuhusu akaunti za AWS na si Akaunti za Mtumiaji): akaunti moja ambayo imewekwa kama akaunti ya usimamizi, na akaunti moja au zaidi za wanachama.

  • Akaunti ya usimamizi (akaunti ya mzizi) ni akaunti unayotumia kuunda shirika. Kutoka kwa akaunti ya usimamizi ya shirika, unaweza kufanya yafuatayo:

  • Kuunda akaunti katika shirika

  • Kualika akaunti nyingine zilizopo katika shirika

  • Kuondoa akaunti kutoka shirika

  • Kudhibiti mialiko

  • Kutumia sera kwa vitu (mizizi, OUs, au akaunti) ndani ya shirika

  • Kuwezesha ujumuishaji na huduma za AWS zinazoungwa mkono ili kutoa kazi za huduma katika akaunti zote za shirika.

  • Inawezekana kuingia kama mtumiaji mzizi kwa kutumia barua pepe na nenosiri vilivyotumika kuunda akaunti hii ya mzizi/shirika.

Akaunti ya usimamizi ina majukumu ya akaunti ya malipo na inawajibika kulipa ada zote zinazokusanywa na akaunti za wanachama. Huwezi kubadilisha akaunti ya usimamizi ya shirika.

  • Akaunti za wanachama zinaunda akaunti zote nyingine katika shirika. Akaunti inaweza kuwa mwanachama wa shirika moja tu kwa wakati mmoja. Unaweza kuambatisha sera kwa akaunti ili kuweka udhibiti kwa akaunti hiyo pekee.
  • Akaunti za wanachama zinapaswa kutumia anwani halali ya barua pepe na zinaweza kuwa na jina, kwa ujumla hawawezi kudhibiti bili (lakini wanaweza kupewa ufikiaji wa hiyo).
aws organizations create-account --account-name testingaccount --email testingaccount@lalala1233fr.com

Vitengo vya Shirika

Accounts zinaweza kuunganishwa katika Vitengo vya Shirika (OU). Kwa njia hii, unaweza kuunda sera za Vitengo vya Shirika ambazo zitakuwa zinatumika kwa akaunti zote za watoto. Kumbuka kwamba OU inaweza kuwa na OUs zingine kama watoto.

bash
# You can get the root id from aws organizations list-roots
aws organizations create-organizational-unit --parent-id r-lalala --name TestOU

Service Control Policy (SCP)

A service control policy (SCP) ni sera inayobainisha huduma na vitendo ambavyo watumiaji na majukumu wanaweza kutumia katika akaunti ambazo SCP inahusisha. SCPs ni sawa na sera za ruhusa za IAM isipokuwa hazitoi ruhusa yoyote. Badala yake, SCPs zinaelezea ruhusa za juu zaidi kwa shirika, kitengo cha shirika (OU), au akaunti. Unapounganisha SCP kwa mzizi wa shirika lako au OU, SCP inakandamiza ruhusa za viumbe katika akaunti za wanachama.

Hii ndiyo NJIA PEKEE ambayo hata mtumiaji wa mzizi anaweza kuzuiwa kufanya jambo fulani. Kwa mfano, inaweza kutumika kuzuia watumiaji wasizime CloudTrail au kufuta nakala za akiba.
Njia pekee ya kupita hii ni kuathiri pia akaunti ya mkuu inayoweka SCPs (akaunti ya mkuu haiwezi kuzuiwa).

warning

Kumbuka kwamba SCPs zinakandamiza tu wakuu katika akaunti, hivyo akaunti nyingine hazihusiki. Hii inamaanisha kuwa kuwa na SCP inayokataza s3:GetObject haitazuia watu kupata akiba ya S3 ya umma katika akaunti yako.

Mifano ya SCP:

  • Kataza akaunti ya mzizi kabisa
  • Ruhusu tu maeneo maalum
  • Ruhusu tu huduma zilizoorodheshwa
  • Kataza GuardDuty, CloudTrail, na S3 Public Block Access kutoka

kuondolewa

  • Kataza majukumu ya usalama/mjibu wa tukio kuondolewa au

kubadilishwa.

  • Kataza nakala za akiba kuondolewa.
  • Kataza kuunda watumiaji wa IAM na funguo za ufikiaji

Pata mifano ya JSON katika https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html

Resource Control Policy (RCP)

A resource control policy (RCP) ni sera inayobainisha ruhusa za juu zaidi kwa rasilimali ndani ya shirika lako la AWS. RCPs ni sawa na sera za IAM katika sarufi lakini hazitoi ruhusa—zinakataza tu ruhusa ambazo zinaweza kutumika kwa rasilimali na sera nyingine. Unapounganisha RCP kwa mzizi wa shirika lako, kitengo cha shirika (OU), au akaunti, RCP inakandamiza ruhusa za rasilimali katika rasilimali zote katika upeo ulioathiriwa.

Hii ndiyo NJIA PEKEE ya kuhakikisha kwamba rasilimali hazizidi viwango vya ufikiaji vilivyowekwa—hata kama sera inayotegemea utambulisho au rasilimali ni ya kupitiliza. Njia pekee ya kupita mipaka hii ni pia kubadilisha RCP iliyowekwa na akaunti ya usimamizi wa shirika lako.

warning

RCPs zinakandamiza tu ruhusa ambazo rasilimali zinaweza kuwa nazo. Hazidhibiti moja kwa moja kile wakuu wanaweza kufanya. Kwa mfano, ikiwa RCP inakataza ufikiaji wa nje kwa akiba ya S3, inahakikisha kwamba ruhusa za akiba haziruhusu vitendo zaidi ya mipaka iliyowekwa—hata kama sera inayotegemea rasilimali imewekwa vibaya.

Mifano ya RCP:

  • Kandamiza akiba za S3 ili ziweze kufikiwa tu na wakuu ndani ya shirika lako
  • Punguza matumizi ya funguo za KMS ili ruhusu tu operesheni kutoka akaunti za shirika zinazotegemewa
  • Punguza ruhusa kwenye foleni za SQS ili kuzuia mabadiliko yasiyoidhinishwa
  • Lazimisha mipaka ya ufikiaji kwenye siri za Meneja wa Siri ili kulinda data nyeti

Pata mifano katika AWS Organizations Resource Control Policies documentation

ARN

Amazon Resource Name ni jina la kipekee kila rasilimali ndani ya AWS ina, linaundwa kama ifuatavyo:

arn:partition:service:region:account-id:resource-type/resource-id
arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env

Kumbuka kwamba kuna sehemu 4 katika AWS lakini njia 3 tu za kuziita:

  • AWS Standard: aws
  • AWS China: aws-cn
  • AWS US public Internet (GovCloud): aws-us-gov
  • AWS Secret (US Classified): aws

IAM - Usimamizi wa Utambulisho na Ufikiaji

IAM ni huduma itakayokuruhusu kusimamia Uthibitishaji, Idhini na Udhibiti wa Ufikiaji ndani ya akaunti yako ya AWS.

  • Uthibitishaji - Mchakato wa kufafanua utambulisho na uthibitisho wa utambulisho huo. Mchakato huu unaweza kugawanywa katika: Utambulisho na uthibitisho.
  • Idhini - Inaamua ni nini utambulisho unaweza kufikia ndani ya mfumo mara tu unapothibitishwa.
  • Udhibiti wa Ufikiaji - Njia na mchakato wa jinsi ufikiaji unavyotolewa kwa rasilimali salama.

IAM inaweza kufafanuliwa kwa uwezo wake wa kusimamia, kudhibiti na kuongoza mitambo ya uthibitishaji, idhini na udhibiti wa ufikiaji wa utambulisho kwa rasilimali zako ndani ya akaunti yako ya AWS.

Mtumiaji wa mizizi ya akaunti ya AWS

Unapounda akaunti ya Amazon Web Services (AWS) kwa mara ya kwanza, unaanza na utambulisho mmoja wa kuingia ambao una ufikiaji kamili kwa wote huduma na rasilimali za AWS katika akaunti hiyo. Huu ni mtumiaji wa mizizi ya akaunti ya AWS na unafikiwa kwa kuingia kwa kutumia anwani ya barua pepe na nenosiri ulilotumia kuunda akaunti.

Kumbuka kwamba mtumiaji mpya wa admin atakuwa na idhini ndogo kuliko mtumiaji wa mizizi.

Kutoka kwa mtazamo wa usalama, inapendekezwa kuunda watumiaji wengine na kuepuka kutumia huu.

Watumiaji wa IAM

Mtumiaji wa IAM ni kiumbe unachounda katika AWS ili wakilisha mtu au programu inayotumia hiyo ili kuingiliana na AWS. Mtumiaji katika AWS unajumuisha jina na ithibitisho (nenosiri na funguo za ufikiaji hadi mbili).

Unapounda mtumiaji wa IAM, unampa idhini kwa kumfanya kuwa mwanachama wa kundi la watumiaji ambalo lina sera za idhini zinazofaa (inapendekezwa), au kwa kuambatisha sera moja kwa moja kwa mtumiaji.

Watumiaji wanaweza kuwa na MFA iliyoanzishwa kuingia kupitia console. Token za API za watumiaji walioanzisha MFA hazilindwi na MFA. Ikiwa unataka kudhibiti ufikiaji wa funguo za API za watumiaji kwa kutumia MFA unahitaji kuashiria katika sera kwamba ili kutekeleza vitendo fulani MFA inahitaji kuwepo (mfano hapa).

CLI

  • Kitambulisho cha Funguo za Ufikiaji: herufi 20 za bahati nasibu za alphanumeric kubwa kama AKHDNAPO86BSHKDIRYT
  • Kitambulisho cha funguo za siri za ufikiaji: herufi 40 za bahati nasibu za kubwa na ndogo: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (Haiwezekani kurejesha kitambulisho cha funguo za siri zilizopotea).

Wakati wowote unahitaji kubadilisha Funguo za Ufikiaji huu ndio mchakato unapaswa kufuata:
Unda funguo mpya za ufikiaji -> Tumia funguo mpya kwenye mfumo/programu -> weka ya awali kama isiyo hai -> Jaribu na thibitisha funguo mpya za ufikiaji zinafanya kazi -> Futa funguo za zamani za ufikiaji

MFA - Uthibitishaji wa Vigezo Vingi

Inatumika kuunda kipengele cha ziada kwa uthibitishaji pamoja na mbinu zako zilizopo, kama vile nenosiri, hivyo, kuunda kiwango cha uthibitishaji wa vigezo vingi.
Unaweza kutumia programu ya bure ya mtandaoni au kifaa halisi. Unaweza kutumia programu kama uthibitishaji wa google bure kuanzisha MFA katika AWS.

Sera zenye masharti ya MFA zinaweza kuambatishwa kwa yafuatayo:

  • Mtumiaji wa IAM au kundi
  • Rasilimali kama vile kikasha cha Amazon S3, foleni ya Amazon SQS, au mada ya Amazon SNS
  • Sera ya kuaminika ya jukumu la IAM ambalo linaweza kuchukuliwa na mtumiaji

Ikiwa unataka kufikia kupitia CLI rasilimali ambayo inaangalia MFA unahitaji kuita GetSessionToken. Hii itakupa token yenye taarifa kuhusu MFA.
Kumbuka kwamba AssumeRole ithibitisho haina taarifa hii.

bash
aws sts get-session-token --serial-number <arn_device> --token-code <code>

Kama ilivyosemwa hapa, kuna kesi nyingi tofauti ambapo MFA haiwezi kutumika.

Makundi ya watumiaji wa IAM

Kundi la mtumiaji wa IAM ni njia ya kuunganisha sera kwa watumiaji wengi kwa wakati mmoja, ambayo inaweza kurahisisha usimamizi wa ruhusa za watumiaji hao. Majukumu na makundi hayawezi kuwa sehemu ya kundi.

Unaweza kuunganisha sera inayotegemea utambulisho kwa kundi la mtumiaji ili watumiaji wote katika kundi la mtumiaji wapate ruhusa za sera. Huwezi kutambua kundi la mtumiaji kama Principal katika sera (kama sera inayotegemea rasilimali) kwa sababu makundi yanahusiana na ruhusa, si uthibitisho, na wakuu ni viumbe vya IAM vilivyothibitishwa.

Hapa kuna sifa muhimu za makundi ya watumiaji:

  • Kundi la mtumiaji linaweza kuwa na watumiaji wengi, na mtumiaji anaweza kuwa sehemu ya makundi mengi.
  • Makundi ya watumiaji hayawezi kuwekwa ndani; yanaweza kuwa na watumiaji tu, si makundi mengine ya watumiaji.
  • Hakuna kundi la mtumiaji la default ambalo linajumuisha watumiaji wote katika akaunti ya AWS. Ikiwa unataka kuwa na kundi la mtumiaji kama hilo, lazima ulunde na kupewa kila mtumiaji mpya.
  • Idadi na ukubwa wa rasilimali za IAM katika akaunti ya AWS, kama vile idadi ya makundi, na idadi ya makundi ambayo mtumiaji anaweza kuwa mwanachama, zimepangwa. Kwa maelezo zaidi, angalia IAM na AWS STS quotas.

Majukumu ya IAM

Jukumu la IAM ni kama mtumiaji, kwa kuwa ni utambulisho wenye sera za ruhusa zinazotaja kile kinaweza na hakiwezi kufanya katika AWS. Hata hivyo, jukumu halina akreditif yoyote (nenosiri au funguo za ufikiaji) zinazohusishwa nalo. Badala ya kuwa na uhusiano wa kipekee na mtu mmoja, jukumu linakusudia kuwa linaweza kuchukuliwa na yeyote anayeihitaji (na kuwa na ruhusa za kutosha). Mtumiaji wa IAM anaweza kuchukua jukumu ili kwa muda kuchukua ruhusa tofauti kwa kazi maalum. Jukumu linaweza kupewa mtumiaji wa shirikisho anayeingia kwa kutumia mtoa huduma wa utambulisho wa nje badala ya IAM.

Jukumu la IAM linajumuisha aina mbili za sera: Sera ya kuaminiana, ambayo haiwezi kuwa tupu, inayoeleza nani anaweza kuchukua jukumu, na sera ya ruhusa, ambayo haiwezi kuwa tupu, inayoeleza nini kinaweza kufikiwa.

Huduma ya Usalama ya Tokeni ya AWS (STS)

Huduma ya Usalama ya Tokeni ya AWS (STS) ni huduma ya wavuti inayorahisisha utoaji wa akreditif za muda mfupi, zenye ruhusa zilizopunguzwa. Imeandaliwa mahsusi kwa:

Akreditif za muda mfupi katika IAM

Akreditif za muda mfupi zinatumika hasa na majukumu ya IAM, lakini pia kuna matumizi mengine. Unaweza kuomba akreditif za muda mfupi ambazo zina seti ya ruhusa zilizopunguzwa zaidi kuliko mtumiaji wako wa kawaida wa IAM. Hii inaepuka wewe kufanya kazi ambazo haziruhusiwi na akreditif zilizopunguzwa zaidi. Faida ya akreditif za muda mfupi ni kwamba zinakoma moja kwa moja baada ya kipindi fulani. Una udhibiti juu ya muda ambao akreditif hizo ni halali.

Sera

Ruhusa za Sera

Zinatumiwa kutoa ruhusa. Kuna aina 2:

  • Sera zinazodhibitiwa na AWS (zilizopangwa na AWS)
  • Sera Zinazosimamiwa na Wateja: Zimepangwa na wewe. Unaweza kuunda sera kulingana na sera zinazodhibitiwa na AWS (ukibadilisha moja yao na kuunda yako mwenyewe), ukitumia jenereta ya sera (maoni ya GUI yanayokusaidia kutoa na kukataa ruhusa) au kuandika yako mwenyewe.

Kwa default ufikiaji unakataliwa, ufikiaji utawekwa ikiwa jukumu maalum limeainishwa.
Ikiwa "Deny" moja ipo, itazidi "Allow", isipokuwa kwa maombi yanayotumia akreditif za usalama za mizizi ya akaunti ya AWS (ambazo zinaruhusiwa kwa default).

javascript
{
"Version": "2012-10-17",  //Version of the policy
"Statement": [  //Main element, there can be more than 1 entry in this array
{
"Sid": "Stmt32894y234276923" //Unique identifier (optional)
"Effect": "Allow", //Allow or deny
"Action": [  //Actions that will be allowed or denied
"ec2:AttachVolume",
"ec2:DetachVolume"
],
"Resource": [ //Resource the action and effect will be applied to
"arn:aws:ec2:*:*:volume/*",
"arn:aws:ec2:*:*:instance/*"
],
"Condition": { //Optional element that allow to control when the permission will be effective
"ArnEquals": {"ec2:SourceInstanceARN": "arn:aws:ec2:*:*:instance/instance-id"}
}
}
]
}

The global fields that can be used for conditions in any service are documented here.
The specific fields that can be used for conditions per service are documented here.

Inline Policies

Aina hii ya sera ni zinazopewa moja kwa moja kwa mtumiaji, kundi au jukumu. Hivyo, hazionekani katika orodha ya Sera kama wengine wanaweza kuzitumia.
Sera za ndani ni muhimu ikiwa unataka kuhifadhi uhusiano mkali wa moja kwa moja kati ya sera na kitambulisho ambacho inatumika. Kwa mfano, unataka kuwa na uhakika kwamba ruhusa katika sera hazitapewa kwa bahati mbaya kwa kitambulisho kingine isipokuwa kile ambacho zimekusudiwa. Unapoitumia sera ya ndani, ruhusa katika sera haiwezi kuunganishwa kwa bahati mbaya na kitambulisho kibaya. Zaidi ya hayo, unapoitumia AWS Management Console kufuta kitambulisho hicho, sera zilizojumuishwa katika kitambulisho pia zitatolewa. Hiyo ni kwa sababu ni sehemu ya chombo kikuu.

Resource Bucket Policies

Hizi ni sera ambazo zinaweza kufafanuliwa katika rasilimali. Si rasilimali zote za AWS zinazozisadia.

Ikiwa chombo hakina kukataa wazi juu yao, na sera ya rasilimali inawapa ufikiaji, basi wanaruhusiwa.

IAM Boundaries

Mipaka ya IAM inaweza kutumika kudhibiti ruhusa ambazo mtumiaji au jukumu linapaswa kuwa na ufikiaji. Kwa njia hii, hata kama seti tofauti za ruhusa zinatolewa kwa mtumiaji na sera tofauti, operesheni itashindwa ikiwa atajaribu kuzitumia.

Mpaka ni sera tu iliyounganishwa na mtumiaji ambayo inaonyesha kiwango cha juu cha ruhusa ambacho mtumiaji au jukumu linaweza kuwa nacho. Hivyo, hata kama mtumiaji ana ufikiaji wa Msimamizi, ikiwa mpaka inaonyesha anaweza kusoma tu S· mabakuli, hiyo ndiyo kiwango cha juu anachoweza kufanya.

Hii, SCPs na kufuata kanuni ya ruhusa ndogo ndiyo njia za kudhibiti kwamba watumiaji hawana ruhusa zaidi ya zile anazohitaji.

Session Policies

Sera ya kikao ni sera inayowekwa wakati jukumu linachukuliwa kwa namna fulani. Hii itakuwa kama mpaka wa IAM kwa kikao hicho: Hii inamaanisha kwamba sera ya kikao haitoi ruhusa bali inaweka vizuizi kwa zile zilizoainishwa katika sera (ikiwa ruhusa za juu ni zile ambazo jukumu lina).

Hii ni muhimu kwa hatua za usalama: Wakati msimamizi anapokuwa na jukumu lenye mamlaka makubwa anaweza kuzuia ruhusa kuwa zile tu zilizoainishwa katika sera ya kikao endapo kikao kitaharibiwa.

bash
aws sts assume-role \
--role-arn <value> \
--role-session-name <value> \
[--policy-arns <arn_custom_policy1> <arn_custom_policy2>]
[--policy <file://policy.json>]

Note that by default AWS inaweza kuongeza sera za kikao kwa vikao ambavyo vitaundwa kwa sababu za tatu. Kwa mfano, katika roles za cognito zisizo na uthibitisho kwa default (kwa kutumia uthibitisho ulioimarishwa), AWS itaunda akiba za kikao zenye sera ya kikao ambayo inazuia huduma ambazo kikao kinaweza kufikia katika orodha ifuatayo.

Hivyo, ikiwa wakati fulani unakutana na kosa "... kwa sababu hakuna sera ya kikao inayoruhusu ...", na jukumu lina ufikiaji wa kutekeleza kitendo hicho, ni kwa sababu kuna sera ya kikao inayozuia.

Ushirikiano wa Utambulisho

Ushirikiano wa utambulisho unawaruhusu watumiaji kutoka kwa watoa huduma za utambulisho ambao ni nje ya AWS kufikia rasilimali za AWS kwa usalama bila ya kutoa akiba za mtumiaji wa AWS kutoka kwa akaunti halali ya IAM.
Mfano wa mtoa huduma wa utambulisho unaweza kuwa Microsoft Active Directory yako mwenyewe (kupitia SAML) au huduma za OpenID (kama Google). Ufikiaji wa ushirikiano utaweza kuwapa watumiaji ndani yake ufikiaji wa AWS.

Ili kuunda uaminifu huu, Mtoa Huduma wa Utambulisho wa IAM unaundwa (SAML au OAuth) ambao utakuwa na uaminifu kwa jukwaa lingine. Kisha, angalau jukumu moja linapewa (linaloamini) Mtoa Huduma wa Utambulisho. Ikiwa mtumiaji kutoka kwenye jukwaa lililoaminiwa anafikia AWS, atakuwa akifanya hivyo kama jukumu lililotajwa.

Hata hivyo, kwa kawaida unataka kutoa jukumu tofauti kulingana na kundi la mtumiaji katika jukwaa la upande wa tatu. Kisha, majukumu kadhaa ya IAM yanaweza kuamini Mtoa Huduma wa Utambulisho wa upande wa tatu na jukwaa la upande wa tatu litakuwa likiruhusu watumiaji kuchukua jukumu moja au jingine.

Kituo cha Utambulisho wa IAM

Kituo cha Utambulisho wa AWS IAM (mfuatano wa AWS Single Sign-On) kinapanua uwezo wa Usimamizi wa Utambulisho na Ufikiaji wa AWS (IAM) kutoa mahali pa kati ambalo linaunganisha usimamizi wa watumiaji na ufikiaji wao kwa akaunti za AWS na programu za wingu.

Domeni la kuingia litakuwa kitu kama <user_input>.awsapps.com.

Ili kuingia kwa watumiaji, kuna vyanzo 3 vya utambulisho ambavyo vinaweza kutumika:

  • Kituo cha Utambulisho: Watumiaji wa kawaida wa AWS
  • Active Directory: Inasaidia viunganishi tofauti
  • Mtoa Huduma wa Utambulisho wa Nje: Watumiaji wote na makundi yanatoka kwa Mtoa Huduma wa Utambulisho wa Nje (IdP)

Katika kesi rahisi ya kituo cha utambulisho, Kituo cha Utambulisho kitakuwa na orodha ya watumiaji na makundi na kitaweza kutoa sera kwao kwa akaunti zozote za shirika.

Ili kutoa ufikiaji kwa mtumiaji/kundi wa Kituo cha Utambulisho kwa akaunti, Mtoa Huduma wa Utambulisho wa SAML unaoamini Kituo cha Utambulisho utaundwa, na jukumu linaloamini Mtoa Huduma wa Utambulisho lenye sera zilizotajwa litaundwa katika akaunti ya marudio.

AwsSSOInlinePolicy

Inawezekana kutoa ruhusa kupitia sera za ndani kwa majukumu yaliyoandaliwa kupitia Kituo cha Utambulisho wa IAM. Majukumu yaliyoandaliwa katika akaunti zinazopatiwa sera za ndani katika Kituo cha Utambulisho wa AWS yatakuwa na ruhusa hizi katika sera ya ndani inayoitwa AwsSSOInlinePolicy.

Hivyo, hata kama unaona majukumu 2 yenye sera ya ndani inayoitwa AwsSSOInlinePolicy, haimaanishi ina ruhusa sawa.

Uaminifu na Majukumu ya Akaunti Mbalimbali

Mtumiaji (anayeamini) anaweza kuunda Jukumu la Akaunti Mbalimbali lenye sera fulani na kisha, kuruhusu mtumiaji mwingine (aliyeaminiwa) kuingia kwenye akaunti yake lakini tu akiwa na ufikiaji ulioonyeshwa katika sera za jukumu jipya. Ili kuunda hii, tengeneza Jukumu jipya na uchague Jukumu la Akaunti Mbalimbali. Majukumu ya Ufikiaji wa Akaunti Mbalimbali yanatoa chaguzi mbili. Kutoa ufikiaji kati ya akaunti za AWS ambazo unamiliki, na kutoa ufikiaji kati ya akaunti ambayo unamiliki na akaunti ya AWS ya upande wa tatu.
Inapendekezwa kueleza mtumiaji ambaye anaaminiwa na si kuweka kitu chochote cha jumla kwa sababu vinginevyo, watumiaji wengine walioidhinishwa kama watumiaji wa ushirikiano wataweza pia kutumia uaminifu huu.

AWS Simple AD

Haitambuliwi:

  • Mahusiano ya Uaminifu
  • Kituo cha Usimamizi wa AD
  • Msaada kamili wa PS API
  • Kihifadhi cha AD
  • Akaunti za Huduma za Kundi
  • Upanuzi wa Mpangilio
  • Hakuna ufikiaji wa moja kwa moja kwa OS au Mifano

Ushirikiano wa Mtandao au Uthibitishaji wa OpenID

Programu inatumia AssumeRoleWithWebIdentity kuunda akiba za muda. Hata hivyo, hii haitoi ufikiaji wa konsoli ya AWS, bali ufikiaji wa rasilimali ndani ya AWS.

Chaguzi Nyingine za IAM

  • Unaweza kufafanua mipangilio ya sera ya nywila kama urefu wa chini na mahitaji ya nywila.
  • Unaweza kupakua "Ripoti ya Akiba" yenye taarifa kuhusu akiba za sasa (kama wakati wa kuunda mtumiaji, ikiwa nywila imewezeshwa...). Unaweza kuunda ripoti ya akiba mara kwa mara kama mara moja kila saa nne.

Usimamizi wa Utambulisho na Ufikiaji wa AWS (IAM) unatoa udhibiti wa ufikiaji wa kina katika AWS yote. Pamoja na IAM, unaweza kufafanua nani anaweza kufikia huduma na rasilimali zipi, na chini ya hali zipi. Pamoja na sera za IAM, unasimamia ruhusa kwa wafanyakazi na mifumo yako ili kuhakikisha ruhusa za chini.

Viambatisho vya IAM ID

Katika ukurasa huu unaweza kupata viambatisho vya IAM ID vya funguo kulingana na asili yao:

Identifier CodeDescription
ABIAAWS STS service bearer token

| ACCA | Context-specific credential | | AGPA | User group | | AIDA | IAM user | | AIPA | Amazon EC2 instance profile | | AKIA | Access key | | ANPA | Managed policy | | ANVA | Version in a managed policy | | APKA | Public key | | AROA | Role | | ASCA | Certificate | | ASIA | Temporary (AWS STS) access key IDs use this prefix, but are unique only in combination with the secret access key and the session token. |

Ruhusa zinazopendekezwa kukagua akaunti

Ruhusa zifuatazo zinatoa ufikiaji wa kusoma wa metadata:

  • arn:aws:iam::aws:policy/SecurityAudit
  • arn:aws:iam::aws:policy/job-function/ViewOnlyAccess
  • codebuild:ListProjects
  • config:Describe*
  • cloudformation:ListStacks
  • logs:DescribeMetricFilters
  • directconnect:DescribeConnections
  • dynamodb:ListTables

Mambo Mengine

Uthibitishaji wa CLI

Ili mtumiaji wa kawaida aidhinishe kwa AWS kupitia CLI unahitaji kuwa na akiba za ndani. Kwa default unaweza kuziunda kwa mikono katika ~/.aws/credentials au kwa kukimbia aws configure.
Katika faili hiyo unaweza kuwa na zaidi ya profaili moja, ikiwa hakuna profaili iliyotajwa kwa kutumia aws cli, ile inayoitwa [default] katika faili hiyo itatumika.
Mfano wa faili la akiba lenye zaidi ya profaili 1:

[default]
aws_access_key_id = AKIA5ZDCUJHF83HDTYUT
aws_secret_access_key = uOcdhof683fbOUGFYEQug8fUGIf68greoihef

[Admin]
aws_access_key_id = AKIA8YDCu7TGTR356SHYT
aws_secret_access_key = uOcdhof683fbOUGFYEQuR2EIHG34UY987g6ff7
region = eu-west-2

Ikiwa unahitaji kufikia akaunti tofauti za AWS na wasifu wako umepatiwa ruhusa ya kuchukua jukumu ndani ya akaunti hizo, huwezi kuhitaji kuita STS kwa mikono kila wakati (aws sts assume-role --role-arn <role-arn> --role-session-name sessname) na kuunda akiba.

Unaweza kutumia faili ya ~/.aws/config kuonyesha ni majukumu gani ya kuchukua, na kisha tumia param ya --profile kama kawaida (kuchukua jukumu kutafanywa kwa njia ya uwazi kwa mtumiaji).
Mfano wa faili ya usanidi:

[profile acc2]
region=eu-west-2
role_arn=arn:aws:iam::<account-id>:role/<role-path>
role_session_name = <session_name>
source_profile = <profile_with_assume_role>
sts_regional_endpoints = regional

Na faili hii ya usanidi unaweza kutumia aws cli kama:

aws --profile acc2 ...

Ikiwa unatafuta kitu kama hiki lakini kwa browser unaweza kuangalia extension AWS Extend Switch Roles.

Kuandaa hati za muda

Ikiwa unatumia programu ambayo inazalisha hati za muda, inaweza kuwa ngumu kuziupdate kwenye terminal yako kila baada ya dakika chache zinapokwisha. Hii inaweza kutatuliwa kwa kutumia mwelekeo wa credential_process katika faili ya config. Kwa mfano, ikiwa una webapp fulani iliyo hatarini, unaweza kufanya:

toml
[victim]
credential_process = curl -d 'PAYLOAD' https://some-site.com

Kumbuka kwamba akreditivu lazima irejeshwe kwa STDOUT katika muundo ufuatao:

json
{
"Version": 1,
"AccessKeyId": "an AWS access key",
"SecretAccessKey": "your AWS secret access key",
"SessionToken": "the AWS session token for temporary credentials",
"Expiration": "ISO8601 timestamp when the credentials expire"
}

Marejeo

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