AWS - Relational Database (RDS) Enum

htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile AWS hackleme hakkında sıfırdan kahramana kadar öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Temel Bilgiler

AWS tarafından sunulan İlişkisel Veritabanı Hizmeti (RDS), bir ilişkisel veritabanının bulut üzerindeki dağıtımını, işletimini ve ölçeklendirmesini kolaylaştırmak için tasarlanmıştır. Bu hizmet, donanım sağlama, veritabanı yapılandırması, yamalama ve yedekleme gibi işgücü yoğun görevleri otomatikleştirirken maliyet verimliliği ve ölçeklenebilirlik avantajlarını sunar.

AWS RDS, MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server ve Amazon Aurora gibi yaygın olarak kullanılan ilişkisel veritabanı motorlarını destekler ve hem MySQL hem de PostgreSQL için uyumluluk sağlar.

RDS'nin temel özellikleri şunlardır:

  • Veritabanı örneklerinin yönetimi basitleştirilmiştir.

  • Okuma performansını artırmak için okuma kopyaları oluşturma.

  • Yüksek kullanılabilirlik ve otomatik geçiş mekanizmalarını sağlamak için çoklu Erişilebilirlik Bölgesi (AZ) dağıtımlarını yapılandırma.

  • Diğer AWS hizmetleriyle entegrasyon, örneğin:

  • Sağlam erişim kontrolü için AWS Kimlik ve Erişim Yönetimi (IAM).

  • Kapsamlı izleme ve metrikler için AWS CloudWatch.

  • Dinlenme sırasında şifreleme sağlamak için AWS Anahtar Yönetimi Hizmeti (KMS).

Kimlik Bilgileri

DB kümesi oluşturulurken ana kullanıcı adı yapılandırılabilir (varsayılan olarak admin). Bu kullanıcının şifresini oluşturmak için şunları yapabilirsiniz:

  • Kendiniz bir şifre belirtin

  • RDS'ye otomatik olarak oluşturmasını söyleyin

  • RDS'nin bunu bir KMS anahtarıyla şifrelenmiş olarak AWS Secret Manager'da yönetmesini söyleyin

Kimlik Doğrulama

3 tür kimlik doğrulama seçeneği vardır, ancak ana şifre her zaman kullanılabilir:

Genel Erişim ve VPC

Varsayılan olarak veritabanlarına genel erişim izni verilmez, ancak verilebilir. Bu nedenle, varsayılan olarak yalnızca aynı VPC'den gelen makineler erişebilir, seçilen güvenlik grubu (EC2 SG'de depolanır) buna izin veriyorsa.

Bir DB örneğini açığa çıkarmak yerine, DB kümesinin ölçeklenebilirliğini ve yetenekliliğini artıran bir RDS Proxy oluşturmak mümkündür.

Ayrıca, veritabanı bağlantı noktası da değiştirilebilir.

Şifreleme

AWS yönetilen bir anahtar kullanarak şifreleme varsayılan olarak etkinleştirilir (bir CMK seçilebilir).

Şifrelemeyi etkinleştirerek, depolama, anlık görüntüler, okuma kopyaları ve yedeklemeleriniz için dinlenme sırasında şifreleme etkinleştirirsiniz. Bu şifrelemenin yönetimi için KMS kullanılarak bu şifrelemeyi yönetmek için anahtarlar oluşturulabilir. Bu düzeyde şifrelemeyi veritabanınız oluşturulduktan sonra eklemek mümkün değildir. Oluşturulma sırasında yapılması gerekmektedir.

Ancak, aşağıdaki gibi şifrelenmemiş bir veritabanını şifrelemek için bir çalışma yöntemi vardır. Şifrelenmemiş veritabanınızın bir anlık görüntüsünü oluşturabilir, bu anlık görüntünün şifrelenmiş bir kopyasını oluşturabilir, bu şifrelenmiş anlık görüntüyü kullanarak yeni bir veritabanı oluşturabilir ve ardından veritabanınız şifrelenmiş olur.

Şeffaf Veri Şifreleme (TDE)

RDS'nin uygulama düzeyindeki şifreleme yeteneklerinin yanı sıra, RDS ayrıca verileri dinlenme sırasında korumak için ek platform düzeyi şifreleme mekanizmalarını destekler. Bu, Oracle ve SQL Server için Şeffaf Veri Şifrelemesi (TDE)'yi içerir. Bununla birlikte, TDE, verileri dinlenme sırasında şifreleyerek güvenliği artırırken, veritabanı performansını da etkileyebilir. Bu performans etkisi, özellikle MySQL şifreleme işlevleri veya Microsoft Transact-SQL şifreleme işlevleriyle birlikte kullanıldığında fark edilir.

TDE'yi kullanmak için belirli ön adımlar gereklidir:

  1. Seçenek Grubu İlişkilendirme:

  • Veritabanı bir seçenek grubuyla ilişkilendirilmelidir. Seçenek grupları, ayarları ve özellikleri içeren konteynerler olarak hizmet verir, veritabanı yönetimini, güvenlik geliştirmelerini de içeren şekilde kolaylaştırır.

  • Bununla birlikte, seçenek gruplarının yalnızca belirli veritabanı motorları ve sürümleri için mevcut olduğunu unutmak önemlidir.

  1. TDE'nin Seçenek Grubuna Dahil Edilmesi:

  • Bir seçenek grubuyla ilişkilendirildikten sonra, Oracle Şeffaf Veri Şifreleme seçeneği bu gruba dahil edilmelidir.

  • TDE seçeneği bir seçenek grubuna eklendikten sonra, kalıcı bir öğe haline gelir ve kaldırılamaz.

  1. TDE Şifreleme Modları:

  • TDE, iki farklı şifreleme modu sunar:

  • TDE Tablespace Şifrelemesi: Bu mod, tüm tabloları şifreler ve daha geniş bir veri koruma kapsamı sağlar.

  • TDE Sütun Şifrelemesi: Bu mod, veritabanı içindeki belirli, bireysel öğeleri şifrelemeye odaklanır ve hangi verilerin şifrelendiği konusunda daha ayrıntılı kontrol sağlar.

Bu önkoşulları ve TDE'nin işletimsel karmaşıklıklarını anlamak, RDS içinde şifreleme etkin bir şekilde uygulamak ve yönetmek için önemlidir, böylece hem veri güvenliği hem de gerekli standartlara uyum sağlanır.

Numaralandırma

# Clusters info
## Get Endpoints, username, port, iam auth enabled, attached roles, SG
aws rds describe-db-clusters
aws rds describe-db-cluster-endpoints #Cluster URLs
aws rds describe-db-cluster-backtracks --db-cluster-identifier <cluster-name>

## Cluster snapshots
aws rds describe-db-cluster-snapshots

# Get DB instances info
aws rds describe-db-instances #username, url, port, vpc, SG, is public?
aws rds describe-db-security-groups

## Find automated backups
aws rds describe-db-instance-automated-backups

## Find snapshots
aws rds describe-db-snapshots
aws rds describe-db-snapshots --include-public --snapshot-type public
## Restore snapshot as new instance
aws rds restore-db-instance-from-db-snapshot --db-instance-identifier <ID> --db-snapshot-identifier <ID> --availability-zone us-west-2a

# Any public snapshot in the account
aws rds describe-db-snapshots --snapshot-type public

# Proxies
aws rds describe-db-proxy-endpoints
aws rds describe-db-proxy-target-groups
aws rds describe-db-proxy-targets

## reset credentials of MasterUsername
aws rds modify-db-instance --db-instance-identifier <ID> --master-user-password <NewPassword> --apply-immediately

Kimlik Doğrulama Gerektirmeyen Erişim

AWS - RDS Unauthenticated Enum

İstek Yükseltme

AWS - RDS Privesc

Saldırı Sonrası

AWS - RDS Post Exploitation

Kalıcılık

AWS - RDS Persistence

SQL Enjeksiyonu

DynamoDB verilerine SQL sözdizimi ile erişmenin yolları vardır, bu nedenle tipik SQL enjeksiyonları da mümkündür.

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated