AWS - S3 Unauthenticated Enum
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
'n Emmer word beskou as “publiek” as enige gebruiker die inhoud van die emmer kan lys, en “privaat” as die emmer se inhoud slegs deur sekere gebruikers gelys of geskryf kan word.
Maatskappye mag emmer toestemmings verkeerd geconfigureer hê wat toegang gee ofwel tot alles of tot almal wat in AWS geverifieer is in enige rekening (dus vir enige iemand). Let daarop dat selfs met sulke misconfigurasies sommige aksies dalk nie uitgevoer kan word nie, aangesien emmers hul eie toegangbeheerlyste (ACLs) mag hê.
Leer oor AWS-S3 miskonfigurasie hier: http://flaws.cloud en http://flaws2.cloud/
Verskillende metodes om te vind wanneer 'n webblad AWS gebruik om sommige hulpbronne te stoor:
Gebruik wappalyzer blaaiertoevoeging
Gebruik burp (spidering die web) of deur handmatig deur die bladsy te navigeer, sal al die hulpbronne gelaai in die Geskiedenis gestoor word.
Kyk vir hulpbronne in domeine soos:
Kyk vir CNAMES soos resources.domain.com
mag die CNAME bucket.s3.amazonaws.com
hê
Kyk https://buckets.grayhatwarfare.com, 'n web met reeds ontdekke oop emmers.
Die emmer naam en die emmer domeinnaam moet dieselfde wees.
flaws.cloud is in IP 52.92.181.107 en as jy daarheen gaan, lei dit jou na https://aws.amazon.com/s3/. Ook, dig -x 52.92.181.107
gee s3-website-us-west-2.amazonaws.com
.
Om te kyk of dit 'n emmer is, kan jy ook besoek https://flaws.cloud.s3.amazonaws.com/.
Jy kan emmers vind deur brute-forcing name wat verband hou met die maatskappy wat jy pentest:
https://github.com/jordanpotti/AWSBucketDump (Bevat 'n lys met potensiële emmer name)
Gegewe S3 oop emmers, BucketLoot kan outomaties soek na interessante inligting.
Jy kan al die ondersteunende streke deur AWS vind in https://docs.aws.amazon.com/general/latest/gr/s3.html
Jy kan die streek van 'n emmer kry met 'n dig
en nslookup
deur 'n DNS versoek van die ontdekte IP te doen:
Kontroleer dat die opgeloste domein die woord "website" het.
Jy kan die statiese webwerf bereik deur te gaan na: flaws.cloud.s3-website-us-west-2.amazonaws.com
of jy kan die emmer bereik deur te besoek: flaws.cloud.s3-us-west-2.amazonaws.com
As jy probeer om toegang tot 'n emmer te verkry, maar in die domeinnaam spesifiseer jy 'n ander streek (byvoorbeeld die emmer is in bucket.s3.amazonaws.com
maar jy probeer om toegang te verkry tot bucket.s3-website-us-west-2.amazonaws.com
, dan sal jy na die korrekte ligging gewys word:
Om die oopheid van die emmer te toets, kan 'n gebruiker net die URL in hul webblaaier invoer. 'n Privaat emmer sal met "Toegang geweier" antwoordgee. 'n Publieke emmer sal die eerste 1,000 voorwerpe wat gestoor is, lys.
Oop vir almal:
Privaat:
Jy kan dit ook met die cli kontroleer:
As die emmer nie 'n domeinnaam het nie, wanneer jy probeer om dit te enumereer, sit net die emmernaam en nie die hele AWSs3-domein nie. Voorbeeld: s3://<BUCKETNAME>
Dit is moontlik om 'n AWS-rekening te bepaal deur voordeel te trek uit die nuwe S3:ResourceAccount
Beleidstoestand Sleutel. Hierdie toestand beperk toegang gebaseer op die S3-emmer waarin 'n rekening is (ander rekening-gebaseerde beleide beperk gebaseer op die rekening waarin die versoekende prinsiep is).
En omdat die beleid wildcards kan bevat, is dit moontlik om die rekeningnommer net een nommer op 'n slag te vind.
Hierdie hulpmiddel outomatiseer die proses:
Hierdie tegniek werk ook met API Gateway URL's, Lambda URL's, Data Exchange datastelle en selfs om die waarde van etikette te verkry (as jy die etiket sleutel ken). Jy kan meer inligting vind in die oorspronklike navorsing en die hulpmiddel conditional-love om hierdie uitbuiting te outomatiseer.
Soos verduidelik in hierdie blogpos, as jy toestemmings het om 'n emmer te lys is dit moontlik om 'n accountID te bevestig waaraan die emmer behoort deur 'n versoek soos:
If the error is an “Access Denied” it means that the account ID was wrong.
Soos verduidelik in hierdie blogpos, is dit moontlik om te kyk of 'n e-posadres verband hou met enige AWS-rekening deur te probeer om 'n e-pos toestemming te gee oor 'n S3-bucket via ACLs. As dit nie 'n fout veroorsaak nie, beteken dit dat die e-pos 'n wortelgebruiker van 'n AWS-rekening is:
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)