AWS - RDS Privesc
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)
Vir meer inligting oor RDS, kyk:
rds:ModifyDBInstance
Met daardie toestemming kan 'n aanvaller die wagwoord van die meester gebruiker verander, en die aanmelding binne die databasis:
Jy sal in staat moet wees om die databasis te kontak (hulle is gewoonlik net vanaf binne-netwerke toeganklik).
Potensiële Impak: Vind sensitiewe inligting binne die databasisse.
Volgens die dokumentasie kan 'n gebruiker met hierdie toestemming aan die DB-instantie koppel.
As jy SELECT datname FROM pg_database;
uitvoer en 'n databasis met die naam rdsadmin
vind, weet jy jy is binne 'n AWS postgresql databasis.
Eerstens kan jy kyk of hierdie databasis gebruik is om toegang tot enige ander AWS-diens te verkry. Jy kan dit nagaan deur na die geïnstalleerde uitbreidings te kyk:
As jy iets soos aws_s3
vind, kan jy aanneem dat hierdie databasis 'n soort toegang oor S3 het (daar is ander uitbreidings soos aws_ml
en aws_lambda
).
As jy ook toestemmings het om aws rds describe-db-clusters
uit te voer, kan jy daar sien of die kluster enige IAM Rol aangeheg het in die veld AssociatedRoles
. As daar enige is, kan jy aanneem dat die databasis voorberei was om toegang tot ander AWS dienste te hê. Gebaseer op die naam van die rol (of as jy die toestemmings van die rol kan kry) kan jy raai watter ekstra toegang die databasis het.
Nou, om 'n lêer binne 'n emmer te lees, moet jy die volle pad weet. Jy kan dit lees met:
As jy raw AWS credentials gehad het, kon jy dit ook gebruik om toegang tot S3-data te verkry met:
Postgresql hoef nie enige parameter groep veranderlike te verander om toegang tot S3 te verkry nie.
Binne 'n mysql, as jy die navraag SELECT User, Host FROM mysql.user;
uitvoer en daar is 'n gebruiker genaamd rdsadmin
, kan jy aanneem jy is binne 'n AWS RDS mysql db.
Binne die mysql voer show variables;
uit en as die veranderlikes soos aws_default_s3_role
, aurora_load_from_s3_role
, aurora_select_into_s3_role
, waardes het, kan jy aanneem die databasis is voorberei om toegang tot S3 data te verkry.
Ook, as jy toestemmings het om aws rds describe-db-clusters
uit te voer, kan jy nagaan of die kluster enige geassosieerde rol het, wat gewoonlik toegang tot AWS dienste beteken).
Nou, om 'n lêer binne 'n emmer te lees, moet jy die volle pad weet. Jy kan dit lees met:
rds:AddRoleToDBCluster
, iam:PassRole
'n Aanvaller met die toestemmings rds:AddRoleToDBCluster
en iam:PassRole
kan 'n gespesifiseerde rol aan 'n bestaande RDS-instansie voeg. Dit kan die aanvaller in staat stel om toegang tot sensitiewe data te verkry of die data binne die instansie te wysig.
Potensiële Impak: Toegang tot sensitiewe data of ongeoorloofde wysigings aan die data in die RDS-instantie. Let daarop dat sommige DB's addisionele konfigurasies vereis soos Mysql, wat die rol ARN in die parameter groepe moet spesifiseer.
rds:CreateDBInstance
Net met hierdie toestemming kan 'n aanvaller 'n nuwe instantie binne 'n kluster wat reeds bestaan en 'n IAM rol aangeheg het, skep. Hy sal nie in staat wees om die meester gebruikerswagwoord te verander nie, maar hy mag in staat wees om die nuwe databasisinstantie aan die internet bloot te stel:
rds:CreateDBInstance
, iam:PassRole
TODO: Toets
'n Aanvaller met die toestemmings rds:CreateDBInstance
en iam:PassRole
kan 'n nuwe RDS-instansie met 'n spesifieke rol aangeheg skep. Die aanvaller kan dan moontlik toegang tot sensitiewe data verkry of die data binne die instansie wysig.
Sommige vereistes van die rol/instansie-profiel om aan te heg (van hier):
Die profiel moet in jou rekening bestaan.
Die profiel moet 'n IAM-rol hê wat Amazon EC2 toestemming het om aan te neem.
Die instansie-profielnaam en die geassosieerde IAM-rolnaam moet begin met die voorvoegsel AWSRDSCustom
.
Potensiële Impak: Toegang tot sensitiewe data of ongeoorloofde wysigings aan die data in die RDS-instantie.
rds:AddRoleToDBInstance
, iam:PassRole
'n Aanvaller met die toestemmings rds:AddRoleToDBInstance
en iam:PassRole
kan 'n gespesifiseerde rol aan 'n bestaande RDS-instantie voeg. Dit kan die aanvaller in staat stel om toegang tot sensitiewe data te verkry of die data binne die instantie te wysig.
Die DB-instantie moet buite 'n kluster wees vir dit
Potensiële Impak: Toegang tot sensitiewe data of ongeoorloofde wysigings aan die data in die RDS-instantie.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)