AWS - RDS Privesc
RDS - Relational Database Service
Kwa maelezo zaidi kuhusu RDS angalia:
AWS - Relational Database (RDS) Enumrds:ModifyDBInstance
rds:ModifyDBInstance
Kwa ruhusa hiyo mshambuliaji anaweza kubadilisha nenosiri la mtumiaji mkuu, na kuingia ndani ya hifadhidata:
Utahitaji kuwa na uwezo wa kuwasiliana na database (kawaida zinapatikana tu kutoka ndani ya mitandao).
Athari Zingine: Pata taarifa nyeti ndani ya databases.
rds-db:connect
Kulingana na docs mtumiaji mwenye ruhusa hii anaweza kuungana na DB instance.
Kudhalilisha RDS Role IAM ruhusa
Postgresql (Aurora)
Ikiwa unaendesha SELECT datname FROM pg_database;
na unapata database inayoitwa rdsadmin
unajua uko ndani ya AWS postgresql database.
Kwanza unaweza kuangalia kama database hii imetumika kufikia huduma nyingine yoyote ya AWS. Unaweza kuangalia hili kwa kuangalia extensions zilizowekwa:
Ikiwa utapata kitu kama aws_s3
unaweza kudhani kuwa hifadhidata hii ina aina fulani ya ufikiaji juu ya S3 (kuna viendelezi vingine kama aws_ml
na aws_lambda
).
Pia, ikiwa una ruhusa za kuendesha aws rds describe-db-clusters
unaweza kuona pale kama klasta ina IAM Role yoyote iliyounganishwa katika sehemu ya AssociatedRoles
. Ikiwa ipo, unaweza kudhani kuwa hifadhidata ilitayarishwa kupata huduma zingine za AWS. Kulingana na jina la role (au ikiwa unaweza kupata ruhusa za role) unaweza kudhani ni ufikiaji gani wa ziada hifadhidata inayo.
Sasa, ili kusoma faili ndani ya ndoo unahitaji kujua njia kamili. Unaweza kuisoma na:
Ikiwa ulikuwa na raw AWS credentials ungeweza pia kuzitumia kufikia data za S3 na:
Postgresql haitaji kubadilisha kigezo chochote cha kundi ili kuweza kufikia S3.
Mysql (Aurora)
Ndani ya mysql, ukikimbia swali SELECT User, Host FROM mysql.user;
na kuna mtumiaji anayeitwa rdsadmin
, unaweza kudhani uko ndani ya AWS RDS mysql db.
Ndani ya mysql kimbia show variables;
na kama vigezo kama aws_default_s3_role
, aurora_load_from_s3_role
, aurora_select_into_s3_role
, vina thamani, unaweza kudhani database imeandaliwa kufikia data za S3.
Pia, kama una ruhusa za kukimbia aws rds describe-db-clusters
unaweza kuangalia kama cluster ina associated role, ambayo kawaida inamaanisha kufikia huduma za AWS).
Sasa, ili kusoma faili ndani ya bucket unahitaji kujua njia kamili. Unaweza kuisoma na:
rds:AddRoleToDBCluster
, iam:PassRole
rds:AddRoleToDBCluster
, iam:PassRole
Mshambuliaji mwenye ruhusa za rds:AddRoleToDBCluster
na iam:PassRole
anaweza kuongeza jukumu maalum kwenye RDS instance iliyopo. Hii inaweza kumruhusu mshambuliaji kupata data nyeti au kubadilisha data ndani ya instance.
Potential Impact: Upatikanaji wa data nyeti au marekebisho yasiyoidhinishwa ya data katika RDS instance. Kumbuka kuwa baadhi ya DBs zinahitaji mipangilio ya ziada kama Mysql, ambayo inahitaji kubainisha role ARN katika aprameter groups pia.
rds:CreateDBInstance
rds:CreateDBInstance
Kwa ruhusa hii tu, mshambuliaji anaweza kuunda instance mpya ndani ya cluster ambayo tayari ipo na ina IAM role iliyounganishwa. Hataweza kubadilisha nenosiri la mtumiaji mkuu, lakini anaweza kufichua instance mpya ya database kwa mtandao:
rds:CreateDBInstance
, iam:PassRole
rds:CreateDBInstance
, iam:PassRole
TODO: Test
Mshambuliaji mwenye ruhusa za rds:CreateDBInstance
na iam:PassRole
anaweza kuunda RDS instance mpya na jukumu maalum lililounganishwa. Mshambuliaji anaweza kisha kupata data nyeti au kubadilisha data ndani ya instance.
Baadhi ya mahitaji ya jukumu/instance-profile ya kuunganisha (kutoka hapa):
Profaili lazima iwepo kwenye akaunti yako.
Profaili lazima iwe na jukumu la IAM ambalo Amazon EC2 ina ruhusa za kuchukua.
Jina la instance profile na jina la jukumu la IAM linalohusiana lazima lianze na kiambishi
AWSRDSCustom
.
Potential Impact: Upatikanaji wa data nyeti au marekebisho yasiyoidhinishwa ya data katika RDS instance.
rds:AddRoleToDBInstance
, iam:PassRole
rds:AddRoleToDBInstance
, iam:PassRole
Mshambuliaji mwenye ruhusa za rds:AddRoleToDBInstance
na iam:PassRole
anaweza kuongeza jukumu maalum kwenye RDS instance iliyopo. Hii inaweza kumruhusu mshambuliaji kupata data nyeti au kurekebisha data ndani ya instance.
DB instance lazima iwe nje ya cluster kwa hili
Potential Impact: Upatikanaji wa data nyeti au marekebisho yasiyoidhinishwa ya data katika RDS instance.
Last updated