AWS - S3 Post Exploitation
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
S3
For more information check:
AWS - S3, Athena & Glacier Enum
Informações Sensíveis
Às vezes você poderá encontrar informações sensíveis legíveis nos buckets. Por exemplo, terraform state secrets.
Pivoting
Different platforms could be using S3 to store sensitive assets.
Por exemplo, airflow poderia estar armazenando DAGs code ali, ou páginas web poderiam ser servidas diretamente do S3. Um atacante com permissões de escrita poderia modify the code a partir do bucket para pivot para outras plataformas, ou takeover accounts modificando arquivos JS.
S3 Ransomware
Nesse cenário, o atacante cria uma KMS (Key Management Service) key na sua própria conta AWS ou em outra conta comprometida. Em seguida, eles tornam essa key acessível a qualquer pessoa no mundo, permitindo que qualquer usuário, role ou conta AWS encripte objetos usando essa key. No entanto, os objetos não podem ser decriptados.
O atacante identifica um S3 bucket alvo e obtém acesso em nível de escrita a ele usando vários métodos. Isso pode ocorrer devido a uma configuração pobre do bucket que o expõe publicamente ou ao atacante obter acesso ao ambiente AWS em si. O atacante tipicamente mira em buckets que contêm informações sensíveis como personally identifiable information (PII), protected health information (PHI), logs, backups, e mais.
Para determinar se o bucket pode ser alvo de ransomware, o atacante verifica sua configuração. Isso inclui verificar se S3 Object Versioning está habilitado e se multi-factor authentication delete (MFA delete) está habilitado. Se o Object Versioning não estiver habilitado, o atacante pode prosseguir. Se o Object Versioning estiver habilitado mas o MFA delete estiver desabilitado, o atacante pode disable Object Versioning. Se ambos Object Versioning e MFA delete estiverem habilitados, fica mais difícil para o atacante realizar um ataque de ransomware nesse bucket específico.
Usando a AWS API, o atacante substitui cada objeto no bucket por uma cópia encriptada usando sua KMS key. Isso efetivamente encripta os dados no bucket, tornando-os inacessíveis sem a key.
Para aumentar a pressão, o atacante agenda a exclusão da KMS key usada no ataque. Isso dá ao alvo uma janela de 7 dias para recuperar seus dados antes que a key seja excluída e os dados se tornem permanentemente perdidos.
Finalmente, o atacante pode enviar um arquivo final, geralmente chamado “ransom-note.txt”, que contém instruções para o alvo sobre como recuperar seus arquivos. Esse arquivo é enviado sem encriptação, provavelmente para chamar a atenção do alvo e informá-lo sobre o ataque de ransomware.
s3:RestoreObject
Um atacante com a permissão s3:RestoreObject pode reativar objetos arquivados no Glacier ou Deep Archive, tornando-os temporariamente acessíveis. Isso permite a recuperação e exfiltration de dados historicamente arquivados (backups, snapshots, logs, certifications, old secrets) que normalmente estariam fora de alcance. Se o atacante combinar essa permissão com permissões de leitura (por exemplo, s3:GetObject), ele pode obter cópias completas de dados sensíveis.
aws s3api restore-object \
--bucket <BUCKET_NAME> \
--key <OBJECT_KEY> \
--restore-request '{
"Days": <NUMBER_OF_DAYS>,
"GlacierJobParameters": { "Tier": "Standard" }
}'
s3:Delete*
Um atacante com a permissão s3:Delete* pode deletar objetos, versões e buckets inteiros, interromper backups e causar perda de dados imediata e irreversível, destruição de evidências e comprometimento de artefatos de backup ou de recuperação.
# Delete an object from a bucket
aws s3api delete-object \
--bucket <BUCKET_NAME> \
--key <OBJECT_KEY>
# Delete a specific version
aws s3api delete-object \
--bucket <BUCKET_NAME> \
--key <OBJECT_KEY> \
--version-id <VERSION_ID>
# Delete a bucket
aws s3api delete-bucket \
--bucket <BUCKET_NAME>
Para mais informações consulte a pesquisa original.
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
HackTricks Cloud

