AWS - Osnovne informacije
Reading time: 20 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Hijerarhija organizacije
Računi
U AWS-u postoji root račun, koji je glavni kontejner za sve račune vaše organizacije. Međutim, ne morate koristiti taj račun za implementaciju resursa, možete kreirati druge račune kako biste odvojili različite AWS infrastrukture između njih.
To je veoma zanimljivo sa bezbednosnog stanovišta, jer jedan račun neće moći da pristupi resursima drugog računa (osim ako su mostovi posebno kreirani), tako da na ovaj način možete stvoriti granice između implementacija.
Stoga, postoje dva tipa računa u organizaciji (govorimo o AWS računima, a ne o korisničkim računima): jedan račun koji je označen kao račun za upravljanje, i jedan ili više članova računa.
-
Račun za upravljanje (root račun) je račun koji koristite za kreiranje organizacije. Iz računa za upravljanje organizacijom, možete uraditi sledeće:
-
Kreirati račune u organizaciji
-
Pozvati druge postojeće račune u organizaciju
-
Ukloniti račune iz organizacije
-
Upravljati pozivnicama
-
Primeni politike na entitete (root, OU ili račune) unutar organizacije
-
Omogućiti integraciju sa podržanim AWS uslugama kako bi se obezbedila funkcionalnost usluga širom svih računa u organizaciji.
-
Moguće je prijaviti se kao root korisnik koristeći email i lozinku korišćene za kreiranje ovog root računa/organizacije.
Račun za upravljanje ima odgovornosti računa za plaćanje i odgovoran je za plaćanje svih troškova koje generišu članovi računi. Ne možete promeniti račun za upravljanje organizacijom.
- Članovi računi čine sve ostale račune u organizaciji. Račun može biti član samo jedne organizacije u isto vreme. Možete prikačiti politiku na račun kako biste primenili kontrole samo na taj jedan račun.
- Članovi računi moraju koristiti važeću email adresu i mogu imati ime, generalno neće moći da upravljaju naplatom (ali im može biti dat pristup tome).
aws organizations create-account --account-name testingaccount --email testingaccount@lalala1233fr.com
Organizacione jedinice
Nalozi se mogu grupisati u Organizacione jedinice (OU). Na ovaj način, možete kreirati politike za Organizacionu jedinicu koje će biti primenjene na sve naloge dece. Imajte na umu da OU može imati druge OU kao decu.
# 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)
Service control policy (SCP) je politika koja specificira usluge i akcije koje korisnici i uloge mogu koristiti u nalozima na koje SCP utiče. SCP-ovi su slični IAM politikama dozvola osim što ne dodeljuju nikakve dozvole. Umesto toga, SCP-ovi specificiraju maksimalne dozvole za organizaciju, organizacionu jedinicu (OU) ili nalog. Kada prikačite SCP na koren vaše organizacije ili na OU, SCP ograničava dozvole za entitete u članicama naloga.
Ovo je JEDINI način da se čak i korisnik sa root privilegijama može sprečiti da nešto uradi. Na primer, može se koristiti da se spreči korisnike da onemoguće CloudTrail ili obrišu rezervne kopije.
Jedini način da se zaobiđe ovo je da se kompromituje i glavni nalog koji konfiguriše SCP-ove (glavni nalog ne može biti blokiran).
warning
Imajte na umu da SCP-ovi samo ograničavaju principe u nalogu, tako da drugi nalozi nisu pogođeni. To znači da imati SCP koji odbija s3:GetObject
neće sprečiti ljude da pristupaju javnom S3 bucket-u u vašem nalogu.
SCP primeri:
- Odbijanje root naloga u potpunosti
- Dozvoliti samo specifične regione
- Dozvoliti samo usluge sa bele liste
- Odbijanje GuardDuty, CloudTrail i S3 Public Block Access od
biti onemogućeni
- Odbijanje uloga za bezbednost/odgovor na incidente od
biti obrisani ili
modifikovani.
- Odbijanje rezervnih kopija od biti obrisane.
- Odbijanje kreiranja IAM korisnika i pristupnih ključeva
Pronađite JSON primere u https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html
Resource Control Policy (RCP)
Resource control policy (RCP) je politika koja definiše maksimalne dozvole za resurse unutar vaše AWS organizacije. RCP-ovi su slični IAM politikama u sintaksi, ali ne dodeljuju dozvole—samo ograničavaju dozvole koje se mogu primeniti na resurse od strane drugih politika. Kada prikačite RCP na koren vaše organizacije, organizacionu jedinicu (OU) ili nalog, RCP ograničava dozvole resursa na svim resursima u pogođenom opsegu.
Ovo je JEDINI način da se osigura da resursi ne mogu premašiti unapred definisane nivoe pristupa—čak i ako je politika zasnovana na identitetu ili resursu previše permisivna. Jedini način da se zaobiđu ova ograničenja je da se takođe modifikuje RCP koji je konfigurisao upravljački nalog vaše organizacije.
warning
RCP-ovi samo ograničavaju dozvole koje resursi mogu imati. Oni ne kontrolišu direktno šta principi mogu raditi. Na primer, ako RCP odbija spoljašnji pristup S3 bucket-u, osigurava da dozvole bucket-a nikada ne dozvole akcije izvan postavljenog limita—čak i ako je politika zasnovana na resursu pogrešno konfigurisana.
RCP primeri:
- Ograničiti S3 bucket-e tako da mogu biti pristupani samo od principa unutar vaše organizacije
- Ograničiti korišćenje KMS ključeva da dozvole operacije samo od poverljivih organizacionih naloga
- Ograničiti dozvole na SQS redovima da spreče neovlašćene modifikacije
- Sprovoditi granice pristupa na Secrets Manager tajnama da zaštite osetljive podatke
Pronađite primere u AWS Organizations Resource Control Policies documentation
ARN
Amazon Resource Name je jedinstveno ime koje svaki resurs unutar AWS-a ima, sastoji se ovako:
arn:partition:service:region:account-id:resource-type/resource-id
arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env
Napomena da postoje 4 particije u AWS-u, ali samo 3 načina da ih pozovete:
- AWS Standard:
aws
- AWS China:
aws-cn
- AWS US javni Internet (GovCloud):
aws-us-gov
- AWS Secret (US Classified):
aws
IAM - Upravljanje identitetom i pristupom
IAM je usluga koja će vam omogućiti da upravljate autentifikacijom, autorizacijom i kontrolom pristupa unutar vašeg AWS naloga.
- Autentifikacija - Proces definisanja identiteta i verifikacije tog identiteta. Ovaj proces se može podeliti na: Identifikaciju i verifikaciju.
- Autorizacija - Određuje šta identitet može da pristupi unutar sistema nakon što je autentifikovan.
- Kontrola pristupa - Metod i proces kako se pristup dodeljuje sigurnom resursu.
IAM se može definisati po svojoj sposobnosti da upravlja, kontroliše i reguliše mehanizme autentifikacije, autorizacije i kontrole pristupa identiteta vašim resursima unutar vašeg AWS naloga.
AWS account root user
Kada prvi put kreirate Amazon Web Services (AWS) nalog, počinjete sa jednim identitetom za prijavu koji ima potpun pristup svim AWS uslugama i resursima u nalogu. Ovo je root user AWS naloga i pristupa mu se prijavljivanjem sa email adresom i lozinkom koje ste koristili za kreiranje naloga.
Napomena da novi admin user ima manje dozvole od root user-a.
Sa bezbednosnog stanovišta, preporučuje se da kreirate druge korisnike i izbegavate korišćenje ovog.
IAM users
IAM korisnik je entitet koji kreirate u AWS-u da predstavlja osobu ili aplikaciju koja ga koristi za interakciju sa AWS-om. Korisnik u AWS-u se sastoji od imena i kredencijala (lozinka i do dva pristupna ključa).
Kada kreirate IAM korisnika, dodeljujete mu dozvole tako što ga činite članom korisničke grupe koja ima odgovarajuće politike dozvola (preporučeno), ili direktno povezivanjem politika sa korisnikom.
Korisnici mogu imati omogućen MFA za prijavu putem konzole. API tokeni korisnika sa omogućenim MFA nisu zaštićeni MFA. Ako želite da ograničite pristup API ključevima korisnika koristeći MFA, morate naznačiti u politici da je za izvršavanje određenih radnji MFA potrebno (primer ovde).
CLI
- ID pristupnog ključa: 20 nasumičnih velikih alfanumeričkih karaktera kao što su AKHDNAPO86BSHKDIRYT
- ID tajnog pristupnog ključa: 40 nasumičnih velikih i malih karaktera: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (Nije moguće povratiti izgubljene ID-ove tajnog pristupnog ključa).
Kada god trebate da promenite pristupni ključ, ovo je proces koji treba da pratite:
Kreirajte novi pristupni ključ -> Primijenite novi ključ na sistem/aplikaciju -> označite originalni kao neaktivan -> Testirajte i proverite da li novi pristupni ključ radi -> Obrišite stari pristupni ključ
MFA - Višefaktorska autentifikacija
Koristi se za kreiranje dodatnog faktora za autentifikaciju pored vaših postojećih metoda, kao što je lozinka, čime se stvara višefaktorski nivo autentifikacije.
Možete koristiti besplatnu virtuelnu aplikaciju ili fizički uređaj. Možete koristiti aplikacije poput google authentication besplatno za aktivaciju MFA u AWS-u.
Politike sa MFA uslovima mogu se povezati sa sledećim:
- IAM korisnikom ili grupom
- Resursom kao što je Amazon S3 bucket, Amazon SQS queue ili Amazon SNS topic
- Politika poverenja IAM uloge koja može biti preuzeta od strane korisnika
Ako želite da pristupite putem CLI resursu koji proverava MFA, morate pozvati GetSessionToken
. To će vam dati token sa informacijama o MFA.
Napomena da AssumeRole
kredencijali ne sadrže ove informacije.
aws sts get-session-token --serial-number <arn_device> --token-code <code>
Kao što je ovde navedeno, postoji mnogo različitih slučajeva gde MFA ne može biti korišćen.
IAM korisničke grupe
IAM korisnička grupa je način da se prikače politike više korisnika u isto vreme, što može olakšati upravljanje dozvolama za te korisnike. Uloge i grupe ne mogu biti deo grupe.
Možete prikačiti politiku zasnovanu na identitetu korisničkoj grupi tako da svi korisnici u korisničkoj grupi dobiju dozvole politike. Ne možete identifikovati korisničku grupu kao Principal
u politici (kao što je politika zasnovana na resursima) jer se grupe odnose na dozvole, a ne na autentifikaciju, a principi su autentifikovani IAM entiteti.
Evo nekih važnih karakteristika korisničkih grupa:
- Korisnička grupa može sadržati mnogo korisnika, a korisnik može pripadati više grupa.
- Korisničke grupe ne mogu biti ugnježdene; mogu sadržati samo korisnike, ne i druge korisničke grupe.
- Ne postoji podrazumevana korisnička grupa koja automatski uključuje sve korisnike u AWS nalogu. Ako želite da imate takvu korisničku grupu, morate je kreirati i dodeliti svakom novom korisniku.
- Broj i veličina IAM resursa u AWS nalogu, kao što su broj grupa i broj grupa kojima korisnik može pripadati, su ograničeni. Za više informacija, pogledajte IAM i AWS STS kvote.
IAM uloge
IAM uloga je veoma slična korisniku, jer je to identitet sa politikama dozvola koje određuju šta može i ne može da radi u AWS-u. Međutim, uloga nema nikakve akreditive (lozinku ili pristupne ključeve) povezane sa njom. Umesto da bude jedinstveno povezana sa jednom osobom, uloga je namenjena da bude preuzeta od strane bilo koga ko je treba (i ima dovoljno dozvola). IAM korisnik može preuzeti ulogu da privremeno preuzme različite dozvole za određeni zadatak. Uloga može biti dodeljena federisanom korisniku koji se prijavljuje koristeći eksternog provajdera identiteta umesto IAM-a.
IAM uloga se sastoji od dvaju tipova politika: politika poverenja, koja ne može biti prazna, definišući ko može preuzeti ulogu, i politika dozvola, koja ne može biti prazna, definišući šta može pristupiti.
AWS Security Token Service (STS)
AWS Security Token Service (STS) je veb servis koji olakšava izdavanje privremenih, ograničenih akreditiva. Posebno je prilagođen za:
Privremeni akreditivi u IAM
Privremeni akreditivi se prvenstveno koriste sa IAM ulogama, ali postoje i druge upotrebe. Možete zatražiti privremene akreditive koji imaju ograničeniji skup dozvola nego vaš standardni IAM korisnik. Ovo sprečava vas da slučajno izvršavate zadatke koji nisu dozvoljeni od strane ograničenih akreditiva. Prednost privremenih akreditiva je ta što automatski ističu nakon određenog vremenskog perioda. Imate kontrolu nad trajanjem tokom kojeg su akreditivi validni.
Politike
Dozvole politike
Koriste se za dodeljivanje dozvola. Postoje 2 tipa:
- AWS upravljane politike (prekonfigurisane od strane AWS-a)
- Politike koje upravlja korisnik: Konfigurišete ih vi. Možete kreirati politike na osnovu AWS upravljanih politika (modifikujući jednu od njih i kreirajući svoju), koristeći generator politika (GUI prikaz koji vam pomaže u dodeljivanju i odbijanju dozvola) ili pišući svoje.
Po podrazumevanju, pristup je odbijen, pristup će biti odobren ako je eksplicitna uloga navedena.
Ako jedna "Deny" postoji, ona će nadjačati "Allow", osim za zahteve koji koriste korenske bezbednosne akreditive AWS naloga (koji su podrazumevano dozvoljeni).
{
"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"}
}
}
]
}
Globalna polja koja se mogu koristiti za uslove u bilo kojoj usluzi su dokumentovana ovde.
Specifična polja koja se mogu koristiti za uslove po usluzi su dokumentovana ovde.
Inline Politike
Ova vrsta politika je direktno dodeljena korisniku, grupi ili ulozi. Tada se ne pojavljuju na listi politika jer ih može koristiti bilo ko drugi.
Inline politike su korisne ako želite da održite strogu jedan-na-jedan vezu između politike i identiteta na koji se primenjuju. Na primer, želite da budete sigurni da dozvole u politici nisu nenamerno dodeljene identitetu osim onom za koji su namenjene. Kada koristite inline politiku, dozvole u politici ne mogu biti nenamerno prikačene na pogrešan identitet. Pored toga, kada koristite AWS Management Console za brisanje tog identiteta, politike ugrađene u identitet se takođe brišu. To je zato što su deo glavne entiteta.
Politike Resursnog Kanta
Ovo su politike koje se mogu definisati u resursima. Nisu svi resursi AWS-a podržavaju njih.
Ako glavni entitet nema eksplicitnu zabranu na njih, a politika resursa im daje pristup, tada su im dozvoljeni.
IAM Granice
IAM granice se mogu koristiti za ograničavanje dozvola kojima korisnik ili uloga treba da imaju pristup. Na ovaj način, čak i ako se korisniku dodeli drugačiji skup dozvola od druge politike, operacija će neuspeti ako pokuša da ih koristi.
Granica je samo politika prikačena za korisnika koja ukazuje na maksimalni nivo dozvola koje korisnik ili uloga mogu imati. Dakle, čak i ako korisnik ima Administrator pristup, ako granica ukazuje da može samo da čita S· kante, to je maksimum što može da uradi.
Ovo, SCP-ovi i pridržavanje principa minimalnih privilegija su načini da se kontroliše da korisnici nemaju više dozvola nego što im je potrebno.
Politike Sesije
Politika sesije je politika postavljena kada se neka uloga preuzme na neki način. Ovo će biti kao IAM granica za tu sesiju: To znači da politika sesije ne dodeljuje dozvole, već ograničava ih na one koje su navedene u politici (maksimalne dozvole su one koje uloga ima).
Ovo je korisno za mere bezbednosti: Kada administrator preuzima veoma privilegovanu ulogu, može ograničiti dozvolu samo na one koje su navedene u politici sesije u slučaju da sesija bude kompromitovana.
aws sts assume-role \
--role-arn <value> \
--role-session-name <value> \
[--policy-arns <arn_custom_policy1> <arn_custom_policy2>]
[--policy <file://policy.json>]
Napomena da po defaultu AWS može dodati politike sesije sesijama koje će biti generisane zbog trećih razloga. Na primer, u neautentifikovanim cognito pretpostavljenim rolama po defaultu (koristeći poboljšanu autentifikaciju), AWS će generisati akreditiv sesije sa politikom sesije koja ograničava usluge kojima sesija može pristupiti na sledeću listu.
Stoga, ako se u nekom trenutku suočite sa greškom "... jer nijedna politika sesije ne dozvoljava ...", a uloga ima pristup za izvršenje akcije, to je zato što postoji politika sesije koja to sprečava.
Federacija identiteta
Federacija identiteta omogućava korisnicima iz provajdera identiteta koji su eksterni za AWS da sigurno pristupaju AWS resursima bez potrebe da dostavljaju AWS korisničke akreditive iz važećeg IAM korisničkog naloga.
Primer provajdera identiteta može biti vaša vlastita korporativna Microsoft Active Directory (putem SAML) ili OpenID usluga (kao što je Google). Federisani pristup će tada omogućiti korisnicima unutar njega da pristupaju AWS-u.
Da biste konfigurisali ovo poverenje, generiše se IAM provajder identiteta (SAML ili OAuth) koji će verovati drugoj platformi. Zatim, najmanje jedna IAM uloga se dodeljuje (verujući) provajderu identiteta. Ako korisnik iz poverene platforme pristupi AWS-u, on će pristupati kao pomenuta uloga.
Međutim, obično ćete želeti da dodelite različitu ulogu u zavisnosti od grupe korisnika na trećoj platformi. Tada, nekoliko IAM uloga može verovati trećem provajderu identiteta, a treća platforma će biti ta koja omogućava korisnicima da preuzmu jednu ili drugu ulogu.
.png)
IAM Identity Center
AWS IAM Identity Center (naslednik AWS Single Sign-On) proširuje mogućnosti AWS upravljanja identitetima i pristupom (IAM) kako bi pružio centralno mesto koje okuplja administraciju korisnika i njihov pristup AWS nalozima i cloud aplikacijama.
Domen za prijavu će biti nešto poput <user_input>.awsapps.com
.
Da bi se prijavili korisnici, mogu se koristiti 3 izvora identiteta:
- Identity Center Directory: Redovni AWS korisnici
- Active Directory: Podržava različite konektore
- Eksterni provajder identiteta: Svi korisnici i grupe dolaze iz eksternog provajdera identiteta (IdP)
.png)
U najjednostavnijem slučaju direktorijuma Identity Center, Identity Center će imati listu korisnika i grupa i moći će da dodeli politike njima za bilo koji od naloga organizacije.
Da biste dali pristup korisniku/grupi Identity Center-a nalogu, biće kreiran SAML provajder identiteta koji veruje Identity Center-u, a uloga koja veruje provajderu identiteta sa navedenim politikama biće kreirana u odredišnom nalogu.
AwsSSOInlinePolicy
Moguće je dati dozvole putem inline politika rolama kreiranim putem IAM Identity Center. Uloge kreirane u nalozima koje dobijaju inline politike u AWS Identity Center će imati te dozvole u inline politici pod nazivom AwsSSOInlinePolicy
.
Stoga, čak i ako vidite 2 uloge sa inline politikom pod nazivom AwsSSOInlinePolicy
, to ne znači da imaju iste dozvole.
Cross Account Trusts and Roles
Korisnik (verujući) može kreirati Cross Account Role sa nekim politikama i zatim, dozvoliti drugom korisniku (pouzdano) da pristupi njegovom nalogu ali samo imajući pristup naveden u novim politikama uloge. Da biste to kreirali, jednostavno kreirajte novu ulogu i izaberite Cross Account Role. Uloge za pristup između naloga nude dve opcije. Pružanje pristupa između AWS naloga koje posedujete, i pružanje pristupa između naloga koji posedujete i trećeg AWS naloga.
Preporučuje se da specificirate korisnika koji je poveren i ne stavljate nešto generičko jer u suprotnom, drugi autentifikovani korisnici poput federisanih korisnika će takođe moći da zloupotrebe ovo poverenje.
AWS Simple AD
Nije podržano:
- Odnos poverenja
- AD Admin Center
- Puna PS API podrška
- AD Recycle Bin
- Grupa upravljanih servisnih naloga
- Proširenja šeme
- Nema direktan pristup OS-u ili instancama
Web Federation or OpenID Authentication
Aplikacija koristi AssumeRoleWithWebIdentity za kreiranje privremenih akreditiva. Međutim, ovo ne daje pristup AWS konzoli, samo pristup resursima unutar AWS-a.
Other IAM options
- Možete postaviti podešavanje politike lozinke kao što su minimalna dužina i zahtevi za lozinkom.
- Možete preuzeti "Izveštaj o akreditivima" sa informacijama o trenutnim akreditivima (kao što su vreme kreiranja korisnika, da li je lozinka omogućena...). Možete generisati izveštaj o akreditivima koliko često želite, čak i svaka četiri sata.
AWS upravljanje identitetima i pristupom (IAM) pruža fino podešavanje kontrole pristupa širom celog AWS-a. Sa IAM-om, možete specificirati ko može pristupiti kojim uslugama i resursima, i pod kojim uslovima. Sa IAM politikama, upravljate dozvolama za vašu radnu snagu i sisteme kako biste osigurali dozvole sa najmanjim privilegijama.
IAM ID Prefixes
Na ovoj stranici možete pronaći IAM ID prefikse ključeva u zavisnosti od njihove prirode:
Identifier Code | Description |
---|---|
ABIA | AWS STS service bearer token |
| ACCA | Kontekst-specifični akreditiv | | AGPA | Grupa korisnika | | AIDA | IAM korisnik | | AIPA | Amazon EC2 profil instance | | AKIA | Pristupni ključ | | ANPA | Upravljana politika | | ANVA | Verzija u upravljanoj politici | | APKA | Javni ključ | | AROA | Uloga | | ASCA | Sertifikat | | ASIA | Privremeni (AWS STS) pristupni ključevi ID koriste ovaj prefiks, ali su jedinstveni samo u kombinaciji sa tajnim pristupnim ključem i tokenom sesije. |
Recommended permissions to audit accounts
Sledeće privilegije daju različit pristup metapodacima:
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
Misc
CLI Authentication
Da bi regularni korisnik autentifikovao na AWS putem CLI, potrebno je imati lokalne akreditive. Po defaultu, možete ih konfigurisati ručno u ~/.aws/credentials
ili pokretanjem aws configure
.
U toj datoteci možete imati više od jednog profila, ako nije specificiran profil koristeći aws cli, koristiće se onaj nazvan [default]
u toj datoteci.
Primer datoteke akreditiva sa više od 1 profila:
[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
Ako treba da pristupite različitim AWS nalozima i vašem profilu je dato pravo da pretpostavi ulogu unutar tih naloga, ne morate ručno pozivati STS svaki put (aws sts assume-role --role-arn <role-arn> --role-session-name sessname
) i konfigurisati akreditive.
Možete koristiti ~/.aws/config
datoteku da naznačite koje uloge da pretpostavite i zatim koristiti parametar --profile
kao i obično (pretpostavljanje uloge će se izvršiti na transparentan način za korisnika).
Primer konfiguracione datoteke:
[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
Sa ovom konfiguracionom datotekom možete koristiti aws cli kao:
aws --profile acc2 ...
Ako tražite nešto slično ovome, ali za pregledač, možete proveriti ekstenziju AWS Extend Switch Roles.
Automatizacija privremenih akreditiva
Ako eksploatišete aplikaciju koja generiše privremene akreditive, može biti zamorno ažurirati ih u vašem terminalu svake nekoliko minuta kada isteknu. Ovo se može rešiti korišćenjem credential_process
direktive u konfiguracionom fajlu. Na primer, ako imate neku ranjivu web aplikaciju, mogli biste uraditi:
[victim]
credential_process = curl -d 'PAYLOAD' https://some-site.com
Napomena da akreditivi moraju biti vraćeni na STDOUT u sledećem formatu:
{
"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"
}
Reference
- https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html
- https://aws.amazon.com/iam/
- https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html
- https://aws.amazon.com/blogs/aws/introducing-resource-control-policies-rcps-a-new-authorization-policy/
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.