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
Um atacante com essas permissões sobre buckets interessantes pode ser capaz de sequestrar recursos e escalar privilégios.
Por exemplo, um atacante com essas permissões sobre um bucket de cloudformation chamado "cf-templates-nohnwfax6a6i-us-east-1" poderá sequestrar a implantação. O acesso pode ser concedido com a seguinte política:
E o sequestro é possível porque há uma pequena janela de tempo desde o momento em que o template é enviado para o bucket até o momento em que o template é implantado. Um atacante pode simplesmente criar uma função lambda em sua conta que será ativada quando uma notificação de bucket for enviada, e sequestrar o conteúdo desse bucket.
O módulo Pacu cfn__resouce_injection
pode ser usado para automatizar esse ataque.
Para mais informações, consulte a pesquisa original: https://rhinosecuritylabs.com/aws/cloud-malware-cloudformation-injection/
s3:PutObject
, s3:GetObject
Estas são as permissões para obter e enviar objetos para o S3. Vários serviços dentro da AWS (e fora dela) usam armazenamento S3 para armazenar arquivos de configuração. Um atacante com acesso de leitura a eles pode encontrar informações sensíveis neles. Um atacante com acesso de gravação a eles poderia modificar os dados para abusar de algum serviço e tentar escalar privilégios. Aqui estão alguns exemplos:
Se uma instância EC2 estiver armazenando os dados do usuário em um bucket S3, um atacante poderia modificá-los para executar código arbitrário dentro da instância EC2.
s3:PutBucketPolicy
Um atacante, que precisa ser da mesma conta, caso contrário, o erro The specified method is not allowed will trigger
, com essa permissão poderá conceder a si mesmo mais permissões sobre o(s) bucket(s), permitindo-lhe ler, escrever, modificar, excluir e expor buckets.
s3:GetBucketAcl
, s3:PutBucketAcl
Um atacante poderia abusar dessas permissões para conceder a si mesmo mais acesso a buckets específicos. Observe que o atacante não precisa ser da mesma conta. Além disso, o acesso de gravação
s3:GetObjectAcl
, s3:PutObjectAcl
Um atacante poderia abusar dessas permissões para conceder a si mesmo mais acesso a objetos específicos dentro de buckets.
s3:GetObjectAcl
, s3:PutObjectVersionAcl
Um atacante com esses privilégios deve ser capaz de definir um Acl para uma versão específica do objeto.
Aprenda e pratique Hacking AWS:HackTricks Treinamento Especialista em Red Team AWS (ARTE) Aprenda e pratique Hacking GCP: HackTricks Treinamento Especialista em Red Team GCP (GRTE)