AWS - RDS Unauthenticated Enum

Підтримайте HackTricks

RDS

Для отримання додаткової інформації перевірте:

AWS - Relational Database (RDS) Enum

Публічний порт

Можливо надати публічний доступ до бази даних з інтернету. Зловмиснику все одно потрібно буде знати ім'я користувача та пароль, IAM доступ або експлойт, щоб увійти в базу даних.

Публічні RDS знімки

AWS дозволяє надавати доступ будь-кому для завантаження RDS знімків. Ви можете дуже легко перелічити ці публічні RDS знімки зі свого облікового запису:

# Public RDS snapshots
aws rds describe-db-snapshots --include-public

## Search by account ID
aws rds describe-db-snapshots --include-public --query 'DBSnapshots[?contains(DBSnapshotIdentifier, `284546856933:`) == `true`]'
## To share a RDS snapshot with everybody the RDS DB cannot be encrypted (so the snapshot won't be encryted)
## To share a RDS encrypted snapshot you need to share the KMS key also with the account


# From the own account you can check if there is any public snapshot with:
aws rds describe-db-snapshots --snapshot-type public [--region us-west-2]
## Even if in the console appear as there are public snapshot it might be public
## snapshots from other accounts used by the current account

Public URL template

Публічний шаблон URL

https://rds.amazonaws.com/

Параметри запиту

/?Action=DescribeDBInstances
&Version=2014-10-31

Приклад запиту

https://rds.amazonaws.com/?Action=DescribeDBInstances&Version=2014-10-31

Відповідь

<DescribeDBInstancesResponse xmlns="http://rds.amazonaws.com/doc/2014-10-31/">
  <DescribeDBInstancesResult>
    <DBInstances>
      <DBInstance>
        <DBInstanceIdentifier>mydbinstance</DBInstanceIdentifier>
        <DBInstanceClass>db.t2.micro</DBInstanceClass>
        <Engine>mysql</Engine>
        <DBInstanceStatus>available</DBInstanceStatus>
        <MasterUsername>admin</MasterUsername>
        <Endpoint>
          <Address>mydbinstance.123456789012.us-east-1.rds.amazonaws.com</Address>
          <Port>3306</Port>
        </Endpoint>
        <AllocatedStorage>20</AllocatedStorage>
        <InstanceCreateTime>2021-01-01T12:00:00Z</InstanceCreateTime>
        <PreferredBackupWindow>07:00-09:00</PreferredBackupWindow>
        <BackupRetentionPeriod>7</BackupRetentionPeriod>
        <DBSecurityGroups/>
        <VpcSecurityGroups>
          <VpcSecurityGroupMembership>
            <VpcSecurityGroupId>sg-12345678</VpcSecurityGroupId>
            <Status>active</Status>
          </VpcSecurityGroupMembership>
        </VpcSecurityGroups>
        <DBParameterGroups>
          <DBParameterGroup>
            <DBParameterGroupName>default.mysql5.7</DBParameterGroupName>
            <ParameterApplyStatus>in-sync</ParameterApplyStatus>
          </DBParameterGroup>
        </DBParameterGroups>
        <AvailabilityZone>us-east-1a</AvailabilityZone>
        <DBSubnetGroup>
          <DBSubnetGroupName>default</DBSubnetGroupName>
          <DBSubnetGroupDescription>default</DBSubnetGroupDescription>
          <VpcId>vpc-12345678</VpcId>
          <SubnetGroupStatus>Complete</SubnetGroupStatus>
          <Subnets>
            <Subnet>
              <SubnetIdentifier>subnet-12345678</SubnetIdentifier>
              <SubnetAvailabilityZone>
                <Name>us-east-1a</Name>
              </SubnetAvailabilityZone>
              <SubnetStatus>Active</SubnetStatus>
            </Subnet>
          </Subnets>
        </DBSubnetGroup>
        <PreferredMaintenanceWindow>mon:03:00-mon:03:30</PreferredMaintenanceWindow>
        <PendingModifiedValues/>
        <MultiAZ>false</MultiAZ>
        <EngineVersion>5.7.22</EngineVersion>
        <AutoMinorVersionUpgrade>true</AutoMinorVersionUpgrade>
        <ReadReplicaDBInstanceIdentifiers/>
        <LicenseModel>general-public-license</LicenseModel>
        <OptionGroupMemberships>
          <OptionGroupMembership>
            <OptionGroupName>default:mysql-5-7</OptionGroupName>
            <Status>in-sync</Status>
          </OptionGroupMembership>
        </OptionGroupMemberships>
        <PubliclyAccessible>true</PubliclyAccessible>
        <StorageType>gp2</StorageType>
        <StorageEncrypted>false</StorageEncrypted>
        <DbiResourceId>db-ABCDEFGHIJKLMNOPQRSTU1VWZ</DbiResourceId>
        <CACertificateIdentifier>rds-ca-2019</CACertificateIdentifier>
        <DomainMemberships/>
        <CopyTagsToSnapshot>false</CopyTagsToSnapshot>
        <MonitoringInterval>0</MonitoringInterval>
        <DBInstanceArn>arn:aws:rds:us-east-1:123456789012:db:mydbinstance</DBInstanceArn>
        <IAMDatabaseAuthenticationEnabled>false</IAMDatabaseAuthenticationEnabled>
        <PerformanceInsightsEnabled>false</PerformanceInsightsEnabled>
        <DeletionProtection>false</DeletionProtection>
        <AssociatedRoles/>
        <TagList/>
        <CustomerOwnedIpEnabled>false</CustomerOwnedIpEnabled>
        <AwsBackupRecoveryPointArn>arn:aws:backup:us-east-1:123456789012:recovery-point:12345678-1234-1234-1234-123456789012</AwsBackupRecoveryPointArn>
      </DBInstance>
    </DBInstances>
  </DescribeDBInstancesResult>
  <ResponseMetadata>
    <RequestId>12345678-1234-1234-1234-123456789012</RequestId>
  </ResponseMetadata>
</DescribeDBInstancesResponse>
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432
Підтримайте HackTricks

Last updated