AWS - RDS Privesc
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
RDS hakkında daha fazla bilgi için kontrol edin:
AWS - Relational Database (RDS) Enumrds:ModifyDBInstance
Bu izinle bir saldırgan ana kullanıcının şifresini değiştirebilir ve veritabanı içindeki oturumu değiştirebilir:
Veritabanına ulaşabilmeniz gerekecek (genellikle yalnızca iç ağlardan erişilebilirler).
Olası Etki: Veritabanlarında hassas bilgileri bulmak.
belgelere göre, bu izne sahip bir kullanıcı DB örneğine bağlanabilir.
SELECT datname FROM pg_database;
komutunu çalıştırdığınızda rdsadmin
adında bir veritabanı bulursanız, bir AWS postgresql veritabanası içinde olduğunuzu bilirsiniz.
Öncelikle bu veritabanının başka bir AWS hizmetine erişim için kullanılıp kullanılmadığını kontrol edebilirsiniz. Bunu, kurulu uzantılara bakarak kontrol edebilirsiniz:
Eğer aws_s3
gibi bir şey bulursanız, bu veritabanının S3 üzerinde bir tür erişime sahip olduğunu varsayabilirsiniz (diğer uzantılar aws_ml
ve aws_lambda
gibi uzantılar da vardır).
Ayrıca, aws rds describe-db-clusters
komutunu çalıştırma izinleriniz varsa, AssociatedRoles
alanında kümenin herhangi bir IAM Rolü ile ilişkilendirilip ilişkilendirilmediğini görebilirsiniz. Eğer varsa, veritabanının diğer AWS hizmetlerine erişim için hazırlandığını varsayabilirsiniz. Rolün adı (veya rolün izinlerini alabiliyorsanız) temelinde, veritabanının ne tür ek erişimlere sahip olduğunu tahmin edebilirsiniz.
Artık, bir bucket içindeki bir dosyayı okumak için tam yolu bilmeniz gerekiyor. Bunu şu şekilde okuyabilirsiniz:
Eğer ham AWS kimlik bilgilerine sahip olsaydınız, bunları S3 verilerine erişmek için de kullanabilirdiniz:
Postgresql S3'e erişebilmek için herhangi bir parametre grubu değişkenini değiştirmeye ihtiyaç duymaz.
Bir mysql içinde SELECT User, Host FROM mysql.user;
sorgusunu çalıştırdığınızda ve rdsadmin
adında bir kullanıcı varsa, AWS RDS mysql db içinde olduğunuzu varsayabilirsiniz.
Mysql içinde show variables;
komutunu çalıştırın ve aws_default_s3_role
, aurora_load_from_s3_role
, aurora_select_into_s3_role
gibi değişkenlerin değerleri varsa, veritabanasının S3 verilerine erişmeye hazır olduğunu varsayabilirsiniz.
Ayrıca, aws rds describe-db-clusters
komutunu çalıştırma izniniz varsa, kümenin herhangi bir ilişkili rolü olup olmadığını kontrol edebilirsiniz; bu genellikle AWS hizmetlerine erişim anlamına gelir.
Artık, bir bucket içindeki bir dosyayı okumak için tam yolu bilmeniz gerekiyor. Bunu şu şekilde okuyabilirsiniz:
rds:AddRoleToDBCluster
, iam:PassRole
rds:AddRoleToDBCluster
ve iam:PassRole
izinlerine sahip bir saldırgan, mevcut bir RDS örneğine belirli bir rol ekleyebilir. Bu, saldırgana hassas verilere erişim sağlama veya örnekteki verileri değiştirme imkanı verebilir.
Potansiyel Etki: RDS örneğindeki hassas verilere erişim veya verilere yetkisiz değişiklikler. Bazı DB'lerin, parametre gruplarında rol ARN'sinin belirtilmesi gibi ek yapılandırmalara ihtiyaç duyduğunu unutmayın.
rds:CreateDBInstance
Bu izinle bir saldırgan, zaten var olan ve bir IAM rolü eklenmiş bir küme içinde yeni bir örnek oluşturabilir. Ana kullanıcı şifresini değiştiremeyecek, ancak yeni veritabanı örneğini internete açma olanağına sahip olabilir:
rds:CreateDBInstance
, iam:PassRole
TODO: Test
rds:CreateDBInstance
ve iam:PassRole
izinlerine sahip bir saldırgan, belirtilen bir rol ile yeni bir RDS örneği oluşturabilir. Saldırgan daha sonra potansiyel olarak hassas verilere erişebilir veya örnekteki verileri değiştirebilir.
Eklemek için rol/örnek profili ile ilgili bazı gereksinimler ( buradan ):
Profil hesabınızda mevcut olmalıdır.
Profilin, Amazon EC2'nin üstlenme izinlerine sahip olduğu bir IAM rolü olmalıdır.
Örnek profil adı ve ilişkili IAM rol adı AWSRDSCustom
ön eki ile başlamalıdır.
Olası Etki: RDS örneğindeki hassas verilere erişim veya verilere yetkisiz değişiklikler.
rds:AddRoleToDBInstance
, iam:PassRole
rds:AddRoleToDBInstance
ve iam:PassRole
izinlerine sahip bir saldırgan, mevcut bir RDS örneğine belirli bir rol ekleyebilir. Bu, saldırgana hassas verilere erişim sağlama veya örnekteki verileri değiştirme imkanı verebilir.
DB örneği, bunun için bir kümenin dışında olmalıdır.
Potansiyel Etki: RDS örneğindeki hassas verilere erişim veya verilere yetkisiz değişiklikler.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)