AWS - S3 Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
s3:PutBucketNotification
, s3:PutObject
, s3:GetObject
Un atacante con esos permisos sobre buckets interesantes podría ser capaz de secuestrar recursos y escalar privilegios.
Por ejemplo, un atacante con esos permisos sobre un bucket de cloudformation llamado "cf-templates-nohnwfax6a6i-us-east-1" podrá secuestrar la implementación. El acceso puede ser otorgado con la siguiente política:
Y el secuestro es posible porque hay una pequeña ventana de tiempo desde el momento en que se sube la plantilla al bucket hasta el momento en que la plantilla se despliega. Un atacante podría simplemente crear una función lambda en su cuenta que se active cuando se envíe una notificación del bucket, y secuestra el contenido de ese bucket.
El módulo de Pacu cfn__resouce_injection
se puede utilizar para automatizar este ataque.
Para más información, consulta la investigación original: https://rhinosecuritylabs.com/aws/cloud-malware-cloudformation-injection/
s3:PutObject
, s3:GetObject
Estos son los permisos para obtener y subir objetos a S3. Varios servicios dentro de AWS (y fuera de él) utilizan almacenamiento S3 para guardar archivos de configuración. Un atacante con acceso de lectura a ellos podría encontrar información sensible en ellos. Un atacante con acceso de escritura a ellos podría modificar los datos para abusar de algún servicio e intentar escalar privilegios. Estos son algunos ejemplos:
Si una instancia de EC2 está almacenando los datos del usuario en un bucket S3, un atacante podría modificarlo para ejecutar código arbitrario dentro de la instancia EC2.
s3:PutBucketPolicy
Un atacante, que necesita ser de la misma cuenta, si no, se activará el error The specified method is not allowed
, con este permiso podrá otorgarse más permisos sobre el/los bucket(s) permitiéndole leer, escribir, modificar, eliminar y exponer buckets.
s3:GetBucketAcl
, s3:PutBucketAcl
Un atacante podría abusar de estos permisos para otorgarse más acceso sobre buckets específicos. Tenga en cuenta que el atacante no necesita ser de la misma cuenta. Además, el acceso de escritura
s3:GetObjectAcl
, s3:PutObjectAcl
Un atacante podría abusar de estos permisos para otorgarse más acceso sobre objetos específicos dentro de los buckets.
s3:GetObjectAcl
, s3:PutObjectVersionAcl
Se espera que un atacante con estos privilegios pueda poner un Acl a una versión específica del objeto.
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)