AWS - RDS Privesc
RDS - Relational Database Service
Vir meer inligting oor RDS, kyk:
AWS - Relational Database (RDS) Enumrds:ModifyDBInstance
rds:ModifyDBInstance
Met daardie toestemming kan 'n aanvaller die wagwoord van die hoofgebruiker wysig, en die aanmelding binne die databasis:
Jy sal in staat moet wees om kontak te maak met die databasis (hulle is gewoonlik slegs toeganklik van binne netwerke).
Potensiële Impak: Vind sensitiewe inligting binne die databasisse.
rds-db:connect
Volgens die dokumentasie kan 'n gebruiker met hierdie toestemming aan die DB-instantie koppel.
Misbruik RDS Rol IAM-toestemmings
Postgresql (Aurora)
As jy SELECT datname FROM pg_database;
hardloop en 'n databasis genaamd rdsadmin
vind, weet jy dat jy binne 'n AWS postgresql databasis is.
Eerstens kan jy nagaan 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:
Indien 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
).
Verder, as jy toestemmings het om aws rds describe-db-clusters
uit te voer, kan jy sien of die klaster enige IAM Rol aangeheg het in die veld AssociatedRoles
. Indien wel, kan jy aanneem dat die databasis voorberei is om ander AWS-diens te benader. 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 volledige pad weet. Jy kan dit lees met:
Indien jy rou AWS-legitimasie gehad het, kon jy dit ook gebruik om toegang tot S3-data te verkry met:
Postgresql hoef nie enige parametergroepveranderlike te verander om toegang tot S3 te verkry nie.
Mysql (Aurora)
Binne 'n mysql, as jy die navraag SELECT User, Host FROM mysql.user;
hardloop en daar is 'n gebruiker genaamd rdsadmin
, kan jy aanneem dat jy binne 'n AWS RDS mysql db is.
Voer show variables;
binne die mysql uit en as die veranderlikes soos aws_default_s3_role
, aurora_load_from_s3_role
, aurora_select_into_s3_role
waardes het, kan jy aanvaar dat die databasis gereed is om S3-data te benader.
Ook, as jy toestemming het om aws rds describe-db-clusters
uit te voer, kan jy nagaan of die groep enige geassosieerde rol het, wat gewoonlik toegang tot AWS-diens beteken.
Nou, om 'n lêer binne 'n emmer te lees moet jy die volledige pad weet. Jy kan dit lees met:
rds:AddRoleToDBCluster
, iam:PassRole
rds:AddRoleToDBCluster
, iam:PassRole
'n Aanvaller met die regte rds:AddRoleToDBCluster
en iam:PassRole
kan 'n spesifieke rol by '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.
Potensiële Impak: Toegang tot sensitiewe data of ongemagtigde wysigings aan die data in die RDS-instantie. Merk op dat sommige DB's addisionele konfigurasies vereis soos Mysql, wat die rol ARN moet spesifiseer in die parametergroepe ook.
rds:CreateDBInstance
rds:CreateDBInstance
Net met hierdie toestemming kan 'n aanvaller 'n nuwe instansie binne 'n bestaande groep skep wat reeds 'n IAM-rol aangeheg het. Hy sal nie die hoofgebruiker se wagwoord kan verander nie, maar hy mag die nuwe databasisinstansie moontlik aan die internet blootstel:
rds:CreateDBInstance
, iam:PassRole
rds:CreateDBInstance
, iam:PassRole
TODO: Toets
'n Aanvaller met die regte rds:CreateDBInstance
en iam:PassRole
kan 'n nuwe RDS-instantie skep met 'n gespesifiseerde rol aangeheg. Die aanvaller kan dan moontlik toegang verkry tot sensitiewe data of die data binne die instantie wysig.
Sommige vereistes van die rol/instantie-profiel om aan te heg (vanaf 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 instantie-profielnaam en die geassosieerde IAM-rolnaam moet begin met die voorvoegsel
AWSRDSCustom
.
Potensiële Impak: Toegang tot sensitiewe data of ongemagtigde wysigings aan die data in die RDS-instantie.
rds:AddRoleToDBInstance
, iam:PassRole
rds:AddRoleToDBInstance
, iam:PassRole
'n Aanvaller met die regte rds:AddRoleToDBInstance
en iam:PassRole
kan 'n spesifieke rol by 'n bestaande RDS-instantie voeg. Dit kan die aanvaller toelaat om toegang tot sensitiewe data te verkry of die data binne die instantie te wysig.
Die DB-instantie moet buite 'n groep wees vir hierdie
Potensiële Impak: Toegang tot sensitiewe data of ongemagtigde wysigings aan die data in die RDS-instansie.
Last updated