AWS - Redshift Enum

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Amazon Redshift

Redshift is 'n ten volle bestuurde diens wat kan opskale tot meer as 'n petabyte in grootte, wat gebruik word as 'n datawarehouse vir groot data-oplossings. Deur Redshift-klusters te gebruik, kan jy analise teen jou datastelle hardloop met behulp van vinnige, op SQL-gebaseerde navraaginstrumente en besigheidsintelligensietoepassings om 'n beter begrip van die visie vir jou besigheid te verkry.

Redshift bied versleuteling aan rus deur 'n vierlaag-hierargie van versleutelingssleutels te gebruik wat óf KMS óf CloudHSM gebruik om die boonste vlak van sleutels te bestuur. Wanneer versleuteling geaktiveer is vir jou kluster, kan dit nie gedeaktiveer word nie en andersom. As jy 'n onversleutelde kluster het, kan dit nie versleutel word nie.

Versleuteling vir jou kluster kan slegs tydens die skepping daarvan plaasvind, en sodra dit versleutel is, is die data, metadata, en enige afskrifte ook versleutel. Die vlak van versleutelingssleutels is as volg, vlak een is die hoofsleutel, vlak twee is die klusterversleutelingssleutel, die CEK, vlak drie, die databasisversleutelingssleutel, die DEK, en uiteindelik vlak vier, die data-versleutelingssleutels self.

KMS

Tydens die skepping van jou kluster, kan jy óf die standaard KMS-sleutel vir Redshift kies óf jou eie CMK kies, wat jou meer buigsaamheid gee oor die beheer van die sleutel, spesifiek vanuit 'n ouditeerbare perspektief.

Die standaard KMS-sleutel vir Redshift word outomaties deur Redshift geskep die eerste keer as die sleutelopsie gekies en gebruik word, en dit word ten volle bestuur deur AWS.

Hierdie KMS-sleutel word dan versleutel met die CMK-hoofslaelsleutel, vlak een. Hierdie versleutelde KMS-data sleutel word dan gebruik as die klusterversleutelingssleutel, die CEK, vlak twee. Hierdie CEK word dan deur KMS na Redshift gestuur waar dit apart van die kluster gestoor word. Redshift stuur dan hierdie versleutelde CEK na die kluster oor 'n veilige kanaal waar dit in geheue gestoor word.

Redshift versoek dan KMS om die CEK, vlak twee, te ontsluit. Hierdie ontslote CEK word dan ook in geheue gestoor. Redshift skep dan 'n ewekansige databasisversleutelingssleutel, die DEK, vlak drie, en laai dit in die geheue van die kluster. Die ontslote CEK in geheue versleutel dan die DEK, wat ook in geheue gestoor word.

Hierdie versleutelde DEK word dan oor 'n veilige kanaal gestuur en apart in Redshift gestoor van die kluster. Beide die CEK en die DEK word nou in die geheue van die kluster gestoor in beide 'n versleutelde en ontslote vorm. Die ontslote DEK word dan gebruik om data-sleutels, vlak vier, te versleutel wat ewekansig deur Redshift gegenereer word vir elke datablok in die databasis.

Jy kan AWS Trusted Advisor gebruik om die konfigurasie van jou Amazon S3-emmers te monitor en verseker dat emmerlogging geaktiveer is, wat nuttig kan wees vir die uitvoer van sekuriteitsoudits en die opsporing van gebruikspatrone in S3.

CloudHSM

Redshift gebruik met CloudHSM

Wanneer jy met CloudHSM werk om jou versleuteling uit te voer, moet jy eerstens 'n vertroude verbinding opstel tussen jou HSM-klient en Redshift terwyl jy klient- en bedienersertifikate gebruik.

Hierdie verbinding is nodig om veilige kommunikasie te voorsien, wat versleutelingssleutels toelaat om tussen jou HSM-klient en jou Redshift-klusters gestuur te word. Deur 'n ewekansig gegenereerde privaat- en publieke sleutelpaar te gebruik, skep Redshift 'n publieke klient-sertifikaat, wat deur Redshift versleutel en gestoor word. Dit moet afgelaai en geregistreer word na jou HSM-klient, en toegewys word aan die korrekte HSM-partisie.

Jy moet dan Redshift konfigureer met die volgende besonderhede van jou HSM-klient: die HSM IP-adres, die HSM-partisienaam, die HSM-partisiewagwoord, en die publieke HSM-bediener-sertifikaat, wat deur CloudHSM met 'n interne hoofslaelsleutel versleutel word. Sodra hierdie inligting voorsien is, sal Redshift bevestig en verifieer dat dit kan koppel en toegang tot die ontwikkelingspartisie.

As jou interne sekuriteitsbeleide of bestuursbeheer bepaal dat jy sleutelrotasie moet toepas, dan is dit moontlik met Redshift wat jou in staat stel om versleutelingssleutels vir versleutelde klusters te roteer, maar jy moet bewus wees dat tydens die sleutelrotasieproses, dit 'n kluster vir 'n baie kort tydperk onbeskikbaar sal maak, en dit is dus die beste om sleutels slegs te roteer as en wanneer jy dit nodig het, of as jy voel dat hulle moontlik gekompromitteer is.

Tydens die rotasie sal Redshift die CEK vir jou kluster en vir enige rugsteune van daardie kluster roteer. Dit sal 'n DEK vir die kluster roteer, maar dit is nie moontlik om 'n DEK vir die afskrifte wat in S3 gestoor is en met die DEK versleutel is, te roteer nie. Dit sal die kluster in 'n toestand van 'sleutels roteer' plaas totdat die proses voltooi is wanneer die status na 'beskikbaar' terugkeer.

Enumerasie

# Get clusters
aws redshift describe-clusters
## Get if publicly accessible
aws redshift describe-clusters | jq -r ".Clusters[].PubliclyAccessible"
## Get DB username to login
aws redshift describe-clusters | jq -r ".Clusters[].MasterUsername"
## Get endpoint
aws redshift describe-clusters | jq -r ".Clusters[].Endpoint"
## Public addresses of the nodes
aws redshift describe-clusters | jq -r ".Clusters[].ClusterNodes[].PublicIPAddress"
## Get IAM roles of the clusters
aws redshift describe-clusters | jq -r ".Clusters[].IamRoles"

# Endpoint access & authorization
aws redshift describe-endpoint-access
aws redshift describe-endpoint-authorization

# Get credentials
aws redshift get-cluster-credentials --db-user <username> --cluster-identifier <cluster-id>
## By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes).
aws redshift get-cluster-credentials-with-iam --cluster-identifier <cluster-id>
## Gives creds to access redshift with the IAM redshift permissions given to the current AWS account
## More in https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html

# Authentication profiles
aws redshift describe-authentication-profiles

# Snapshots
aws redshift describe-cluster-snapshots

# Scheduled actions
aws redshift describe-scheduled-actions

# Connect
# The redshift instance must be publicly available (not by default), the sg need to allow inbounds connections to the port and you need creds
psql -h redshift-cluster-1.sdflju3jdfkfg.us-east-1.redshift.amazonaws.com -U admin -d dev -p 5439

Privesc

pageAWS - Redshift Privesc

Volharding

Die volgende aksies maak dit moontlik om toegang tot ander AWS-rekeninge tot die groep te verleen:

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated