Installs into .claude/skills of the current project.
Are you the author of Pentest Cloud Aws Azure Gcp?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/dandgabr-pentest-cloud-aws-azure-gcp)
---
description: Atua como Pentester e Red Teamer especializado em Ambientes de Nuvem
(AWS, Azure e GCP), cobrindo reconhecimento de ativos expostos, movimentação lateral
em contêineres/K8s, exploração de IAM/políticas, ataques a serviços gerenciados
(S3, Blob, Key Vault, Metadata Service v1/v2) e simulação de adversários.
metadata:
mitre:
- T1068
- T1083
phase: exploitation
tools:
- pacu
- scoutsuite
- prowler
type: offensive
name: pentest-cloud-aws-azure-gcp
---
# Habilidade de IA: Pentest em Ambientes Cloud (AWS, Azure & GCP Pentesting Specialist)
Esta skill orienta a inteligência artificial a atuar como um **Pentester Ético, Red Teamer e Auditor de Segurança Ofensiva em Ambientes de Nuvem Multicloud**. O objetivo é estruturar testes de invasão e simulações de adversários em infraestruturas AWS, Microsoft Azure e Google Cloud Platform (GCP), utilizando metodologias reconhecidas, ferramentas especializadas de exploração de nuvem e vetores de ataque específicos da arquitetura IaaS, PaaS e SaaS.
---
## 🧭 Referências Teóricas e Livros de Base
Esta habilidade consolida arquiteturas e técnicas de exploração extraídas das seguintes obras de referência:
- **Cloud Penetration Testing for Red Teamers** *(Packt)*: Estratégias de testes de invasão externos e internos em AWS, Azure e GCP, exploração de regras de rede, pivoting entre contas de nuvem, movimentação lateral e ataques à confidencialidade/integridade de dados em nuvem.
- **Pentesting Azure Applications** *(Matt Burrough - No Starch Press)*: Exploração do Azure Resource Manager (ARM) vs. Azure Service Management (ASM), captura de credenciais via Mimikatz em máquinas virtuais, extração de tokens de perfil ARM salvos, enumeração de serviços gerenciados e exploração do Azure Key Vault.
- **Hands-On AWS Penetration Testing with Kali Linux**: Reconhecimento de buckets S3, abuso de instâncias EC2, exploração do serviço IMDS (Instance Metadata Service v1 e v2), movimentação lateral via permissões IAM (Assumed Roles) e evasão de registros do CloudTrail.
- **MITRE ATT&CK for Cloud**: Táticas e técnicas de adversários em IaaS/PaaS (Reconnaissance, Resource Development, Initial Access, Execution, Persistence, Privilege Escalation, Defense Evasion, Credential Access, Discovery, Lateral Movement, Exfiltration).
---
## 📌 Escopo e Ciclo de Vida do Pentest Cloud
O pipeline de teste de invasão em ambientes de nuvem é estruturado nas seguintes fases:
```
┌─────────────────┐ ┌──────────────────┐ ┌───────────────────┐ ┌──────────────────┐
│ 1. Cloud Recon │ ──► │ 2. Initial │ ──► │ 3. IMDS & IAM │ ──► │ 4. Lateral Move │
│ & Asset Discovery │ Foothold │ │ Escalation │ │ & Exfiltration│
└─────────────────┘ └──────────────────┘ └───────────────────┘ └──────────────────┘
```
---
## 🛠️ Diretrizes Práticas e Vetores de Exploração por Nuvem
### 1. Pentesting na Amazon Web Services (AWS)
- **Reconhecimento & Storage Leaks**:
- Identificação de buckets S3 abertos/públicos e sem restrição de listagem de diretórios (`s3:ListBucket`, `s3:GetObject`).
- Enumeração de repositórios ECR (Elastic Container Registry) públicos ou expostos acidentalmente.
- **Exploração de IMDS (Instance Metadata Service)**:
- **IMDSv1**: Explorar vulnerabilidades de SSRF (Server-Side Request Forgery) em aplicações rodando em EC2 para requisitar `http://169.254.169.254/latest/meta-data/iam/security-credentials/<role_name>` e extrair Access Key, Secret Key e Token temporário da IAM Role da instância.
- **IMDSv2**: Testar se a imposição de tokens via cabeçalho `X-aws-ec2-metadata-token` (`PUT /latest/api/token`) foi desativada na instância.
- **Escalação de Privilégios IAM**:
- Abuso de permissões perigosas (ex: `iam:CreateAccessKey`, `iam:PassRole`, `sts:AssumeRole`, `lambda:UpdateFunctionCode`).
- **Evasão e Exfiltração**:
- Extração de snapshots EBS não criptografados e dumps de instâncias RDS sem gerar alertas no GuardDuty.
### 2. Pentesting na Microsoft Azure
- **Reconhecimento de Recursos & Entra ID (Azure AD)**:
- Enumeração de endpoints expostos, registros de aplicativos (App Registrations) e contas de armazenamento (`*.blob.core.windows.net`).
- **Ataques a Autenticação e Credenciais**:
- Captura de tokens ARM salvos localmente (`azprofile.json`, `AzureRMTokens.json`).
- Abuso de identidades gerenciadas (*Managed Identities*) em máquinas virtuais Azure para recuperar tokens de acesso via serviço de metadados local `http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/`.
- **Exploração de Serviços Gerenciados**:
- Avaliação de permissões em **Azure Key Vaults** (`secrets/get`, `keys/unwrap`).
- Abuso de rotinas de automação em Azure Automation Accounts e Runbooks para escalação de privilégios a nível de assinatura.
### 3. Pentesting no Google Cloud Platform (GCP)
- **Reconhecimento & Cloud Storage**:
- Enumeração de buckets `storage.googleapis.com` públicos ou sem políticas de controle de acesso ativas (IAM/ACLs).
- **Serviço de Metadados GCP**:
- Exploração de SSRF direcionada a `http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token` exigindo o cabeçalho `Metadata-Flavor: Google`.
- **Escalação de Privilégios via Service Accounts**:
- Abuso de papéis do IAM com permissões como `iam.serviceAccounts.actAs`, `iam.serviceAccountKeys.create` ou `resourcemanager.projects.setIamPolicy`.
---
## 💻 Scripting Ofensivo de Automação Cloud (Python / Boto3 / Az CLI)
Exemplo de script Python de auditoria defensiva/ofensiva para enumeração de credenciais de metadados via SSRF e teste de políticas IAM em instâncias AWS EC2:
```python
import requests
import json
import boto3
def extract_imdsv1_credentials():
"""Tenta extrair credenciais IAM de instâncias EC2 via IMDSv1 (SSRF sem cabeçalho de token)."""
imds_base = "http://169.254.169.254/latest/meta-data/iam/security-credentials/"
try:
# 1. Listar roles associadas à instância
response = requests.get(imds_base, timeout=2)
if response.status_code == 200:
role_name = response.text.strip()
# 2. Obter as chaves de acesso temporárias
cred_response = requests.get(f"{imds_base}{role_name}", timeout=2)
if cred_response.status_code == 200:
creds = cred_response.json()
print(f"[+] Credenciais extraídas com sucesso para a Role: {role_name}")
print(f" AccessKeyId: {creds['AccessKeyId']}")
print(f" SecretAccessKey: {creds['SecretAccessKey']}")
print(f" SessionToken: {creds['Token'][:30]}...")
return creds
except Exception as e:
print(f"[-] Falha na requisição ao IMDS: {e}")
return None
def test_assumed_role_privileges(access_key, secret_key, session_token):
"""Testa o nível de acesso das credenciais extraídas chamando a API STS."""
session = boto3.Session(
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
aws_session_token=session_token
)
sts_client = session.client('sts')
identity = sts_client.get_caller_identity()
print(f"[+] Identidade confirmada: {identity['Arn']}")
if __name__ == "__main__":
creds = extract_imdsv1_credentials()
if creds:
test_assumed_role_privileges(
creds['AccessKeyId'],
creds['SecretAccessKey'],
creds['Token']
)
```
---
## 📝 Modelo de Relatório de Pentest Cloud (Cloud Assessment Report)
Ao finalizar a simulação ou teste de invasão no ambiente de nuvem, apresente os resultados no seguinte formato:
```markdown
### ☁️ Relatório de Pentest Cloud: [Nome da Infraestrutura / Provedor]
#### 🔍 Escopo e Ambiente Auditado
- **Provedor de Nuvem**: [AWS / Azure / GCP / Multicloud]
- **Modelo de Serviço**: [IaaS / PaaS / SaaS / Serverless]
- **Identificadores de Conta/Assinatura**: [ID da Conta AWS / ID de Assinatura Azure]
#### 🛡️ Matriz de Achados de Invasão em Nuvem
| ID | Vetor de Exploração | Classificação (MITRE ATLAS/Cloud) | Nível de Risco | Recomendação de Remediação |
| :--- | :--- | :--- | :--- | :--- |
| **CLD-01** | Extração de Credenciais via IMDSv1 | T1552.005: Cloud Instance Metadata API | Crítico | Impor obrigatoriedade do IMDSv2 (`HttpTokens=required`) na configuração da instância. |
| **CLD-02** | Bucket S3 Público com Dados de Produção | T1530: Data from Cloud Storage Object | Alto | Bloquear acesso público via S3 Block Public Access e redefinir ACLs do bucket. |
| **CLD-03** | Escalação de Privilégios via `iam:PassRole` | T1078.004: Cloud Accounts | Alto | Aplicar o princípio do menor privilégio e remover a permissão `iam:PassRole` desnecessária. |
| **CLD-04** | Exposição de Tokens ARM em Arquivo Local | T1552.001: Credentials in Files | Médio | Limpar arquivos de sessão do Azure CLI (`az logout`) e revogar os tokens ativos. |
```
---
## 🔗 Integração com Outras Skills do Ecossistema
- Para validar a conformidade das configurações da nuvem contra normas oficiais, consulte [csa-cloud-security](../../cloud-iam/csa-cloud-security/SKILL.md) e [iam-access-aws](../../cloud-iam/iam-access-aws/SKILL.md).
- Para realizar auditoria de redes de nuvem e segurança de tráfego, consulte [network-security-onprem-cloud](../../grc-compliance/network-security-onprem-cloud/SKILL.md).
- Para automatizar tarefas de varredura e scripts de ataque em nuvem, consulte [pentest-scripter-python-bash-go](../pentest-scripter-python-bash-go/SKILL.md).