AWS - Redshift Enum

Reading time: 7 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Amazon Redshift

Redshift ni huduma inayosimamiwa kikamilifu ambayo inaweza kupanuka hadi zaidi ya petabyte kwa ukubwa, ambayo inatumika kama ghala la data kwa suluhisho za big data. Kwa kutumia klasta za Redshift, unaweza kufanya uchambuzi dhidi ya seti zako za data kwa kutumia zana za maswali za SQL na programu za akili ya biashara ili kupata ufahamu mkubwa wa maono ya biashara yako.

Redshift inatoa usimbuaji wakati wa kupumzika kwa kutumia ngazi nne za funguo za usimbuaji kwa kutumia KMS au CloudHSM kusimamia ngazi ya juu ya funguo. Wakati usimbuaji umewezeshwa kwa klasta yako, hauwezi kuzuiliwa na kinyume chake. Wakati una klasta isiyo na usimbuaji, haiwezi kusimbwa.

Usimbuaji kwa klasta yako unaweza kutokea tu wakati wa uundaji wake, na mara tu inaposimbwa, data, metadata, na picha zozote pia zimewekwa usimbuaji. Ngazi za funguo za usimbuaji ni kama ifuatavyo, ngazi moja ni funguo kuu, ngazi mbili ni funguo za usimbuaji wa klasta, CEK, ngazi tatu, funguo za usimbuaji wa hifadhidata, DEK, na hatimaye ngazi nne, funguo za usimbuaji wa data wenyewe.

KMS

Wakati wa uundaji wa klasta yako, unaweza kuchagua funguo za KMS za default kwa Redshift au kuchagua CMK yako mwenyewe, ambayo inakupa uwezo zaidi juu ya udhibiti wa funguo, hasa kutoka mtazamo wa kuweza kukaguliwa.

Funguo za KMS za default kwa Redshift zinaundwa kiotomatiki na Redshift wakati wa mara ya kwanza chaguo la funguo linapochaguliwa na kutumika, na inasimamiwa kikamilifu na AWS.

Funguo hii ya KMS kisha inasimbwa kwa funguo kuu ya CMK, ngazi moja. Funguo hii ya data ya KMS iliyosimbwa kisha inatumika kama funguo za usimbuaji wa klasta, CEK, ngazi mbili. CEK hii kisha inatumwa na KMS kwa Redshift ambapo inahifadhiwa tofauti na klasta. Redshift kisha inatuma CEK hii iliyosimbwa kwa klasta kupitia njia salama ambapo inahifadhiwa kwenye kumbukumbu.

Redshift kisha inaomba KMS kusimbua CEK, ngazi mbili. CEK hii iliyosimbwa kisha inahifadhiwa pia kwenye kumbukumbu. Redshift kisha inaunda funguo za usimbuaji wa hifadhidata, DEK, ngazi tatu, na kuipakia kwenye kumbukumbu ya klasta. CEK iliyosimbwa kwenye kumbukumbu kisha inasimbua DEK, ambayo pia inahifadhiwa kwenye kumbukumbu.

DEK hii iliyosimbwa kisha inatumwa kupitia njia salama na kuhifadhiwa katika Redshift tofauti na klasta. CEK na DEK sasa zimehifadhiwa kwenye kumbukumbu ya klasta zote kwa njia ya usimbaji na usimbuaji. DEK iliyosimbwa kisha inatumika kusimbua funguo za data, ngazi nne, ambazo zinaundwa kwa bahati nasibu na Redshift kwa kila block ya data katika hifadhidata.

Unaweza kutumia AWS Trusted Advisor kufuatilia usanidi wa ndoo zako za Amazon S3 na kuhakikisha kuwa uandishi wa ndoo umewezeshwa, ambayo inaweza kuwa muhimu kwa kufanya ukaguzi wa usalama na kufuatilia mifumo ya matumizi katika S3.

CloudHSM

Using Redshift with CloudHSM

Wakati unafanya kazi na CloudHSM ili kutekeleza usimbuaji wako, kwanza lazima uanzishe muunganisho wa kuaminika kati ya mteja wako wa HSM na Redshift huku ukitumia vyeti vya mteja na seva.

Muunganisho huu unahitajika kutoa mawasiliano salama, kuruhusu funguo za usimbuaji kutumwa kati ya mteja wako wa HSM na klasta zako za Redshift. Kwa kutumia jozi ya funguo za kibinafsi na za umma zilizoundwa kwa bahati nasibu, Redshift inaunda cheti cha mteja wa umma, ambacho kinasimbwa na kuhifadhiwa na Redshift. Hii lazima ipakuliwe na kuandikishwa kwa mteja wako wa HSM, na kutolewa kwa sehemu sahihi ya HSM.

Lazima kisha uweke Redshift na maelezo yafuatayo ya mteja wako wa HSM: anwani ya IP ya HSM, jina la sehemu ya HSM, nenosiri la sehemu ya HSM, na cheti cha seva ya umma ya HSM, ambacho kinasimbwa na CloudHSM kwa kutumia funguo kuu za ndani. Mara tu habari hii itakapopewa, Redshift itathibitisha na kuthibitisha kwamba inaweza kuungana na kufikia sehemu ya maendeleo.

Ikiwa sera zako za usalama za ndani au udhibiti wa utawala zinataka kwamba lazima uweke mzunguko wa funguo, basi hii inawezekana na Redshift ikikuruhusu kubadilisha funguo za usimbuaji kwa klasta zilizowekwa usimbuaji, hata hivyo, unahitaji kuwa makini kwamba wakati wa mchakato wa kubadilisha funguo, itafanya klasta kuwa haipatikani kwa muda mfupi sana, na hivyo ni bora kubadilisha funguo tu unapohitaji, au ikiwa unahisi zinaweza kuwa zimeathiriwa.

Wakati wa mzunguko, Redshift itabadilisha CEK kwa klasta yako na kwa nakala zozote za klasta hiyo. Itabadilisha DEK kwa klasta lakini haiwezekani kubadilisha DEK kwa picha zilizohifadhiwa katika S3 ambazo zimewekwa usimbuaji kwa kutumia DEK. Itaiweka klasta katika hali ya 'kubadilisha funguo' hadi mchakato ukamilike wakati hali itarudi kuwa 'inapatikana'.

Enumeration

bash
# 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

AWS - Redshift Privesc

Persistence

Hatua zifuatazo zinaruhusu kutoa ufikiaji kwa akaunti nyingine za AWS kwa klasta:

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks