AWS - WAF Enum

AWS - Enumeração do WAF

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

AWS WAF

O AWS WAF é um firewall de aplicativos da web projetado para proteger aplicativos da web ou APIs contra vários exploits da web que podem afetar sua disponibilidade, segurança ou consumo de recursos. Ele capacita os usuários a controlar o tráfego de entrada configurando regras de segurança que mitigam vetores de ataque típicos como injeção de SQL ou scripts entre sites e também definindo regras de filtragem personalizadas.

Critérios de Monitoramento (Condições)

As condições especificam os elementos das solicitações HTTP/HTTPS de entrada que o AWS WAF monitora, que incluem XSS, localização geográfica (GEO), endereços IP, restrições de tamanho, injeção de SQL e padrões (correspondência de strings e regex). É importante observar que as solicitações restritas no nível do CloudFront com base no país não alcançarão o WAF.

Cada conta da AWS pode configurar:

  • 100 condições para cada tipo (exceto para Regex, onde apenas 10 condições são permitidas, mas esse limite pode ser aumentado).

  • 100 regras e 50 Web ACLs.

  • Um máximo de 5 regras baseadas em taxa.

  • Uma taxa de transferência de 10.000 solicitações por segundo quando o WAF é implementado com um balanceador de carga de aplicativo.

Configuração de Regras

As regras são elaboradas usando as condições especificadas. Por exemplo, uma regra pode bloquear uma solicitação se ela atender a 2 condições específicas. Existem dois tipos de regras:

  1. Regra Regular: Regra padrão baseada em condições especificadas.

  2. Regra Baseada em Taxa: Conta solicitações de um endereço IP específico ao longo de um período de cinco minutos. Aqui, os usuários definem um limite, e se o número de solicitações de um IP exceder esse limite dentro de cinco minutos, as solicitações subsequentes desse IP são bloqueadas até que a taxa de solicitação caia abaixo do limite. O limite mínimo para regras baseadas em taxa é de 2000 solicitações.

Ações

As ações são atribuídas a cada regra, com opções sendo Permitir, Bloquear ou Contar:

  • Permitir: A solicitação é encaminhada para a distribuição CloudFront apropriada ou Balanceador de Carga de Aplicativos.

  • Bloquear: A solicitação é encerrada imediatamente.

  • Contar: Contabiliza as solicitações que atendem às condições da regra. Isso é útil para testar a regra, confirmando a precisão da regra antes de defini-la como Permitir ou Bloquear.

Se uma solicitação não corresponder a nenhuma regra dentro do Web ACL, ela passará pela ação padrão (Permitir ou Bloquear). A ordem de execução das regras, definida dentro de um Web ACL, é crucial e geralmente segue esta sequência:

  1. Permitir IPs na lista branca.

  2. Bloquear IPs na lista negra.

  3. Bloquear solicitações que correspondam a quaisquer assinaturas prejudiciais.

Integração com o CloudWatch

O AWS WAF se integra ao CloudWatch para monitoramento, oferecendo métricas como Solicitações Permitidas, Solicitações Bloqueadas, Solicitações Contadas e Solicitações Passadas. Essas métricas são relatadas a cada minuto por padrão e retidas por um período de duas semanas.

Enumeração

O escopo também pode ser CLOUDFRONT, mas ao verificar um WAF não relacionado ao Cloudfront, é necessário usar REGIONAL.

# Get web acls
aws wafv2 list-web-acls --scope REGIONAL
aws wafv2 get-web-acl --scope REGIONAL --name <name> --id <id>
aws wafv2 list-resources-for-web-acl --web-acl-arn <web-acl-arn> #Resources associated with the ACL
aws wafv2 get-web-acl-for-resource --resource-arn <arn> # Get web acl of the resource

# Rule groups
aws wafv2 list-rule-groups --scope REGIONAL
aws wafv2 get-rule-group --scope REGIONAL --name <name> --id <id>

# Get IP sets
aws wafv2 list-ip-sets --scope=REGIONAL
aws wafv2 get-ip-set --scope=REGIONAL --name <name> --id <id>

# Get regex patterns
aws wafv2 list-regex-pattern-sets --scope REGIONAL

# Get logging config (buckets storing the logs)
aws wafv2 list-logging-configurations --scope=REGIONAL

Pós-Exploração / Bypass

Do ponto de vista de um atacante, este serviço pode ajudar o atacante a identificar proteções do WAF e exposições de rede que poderiam ajudá-lo a comprometer outros sites.

No entanto, um atacante também pode estar interessado em interromper este serviço para que os sites não sejam protegidos pelo WAF.

TODO: Pull Requests são bem-vindos

Referências

  • https://www.citrusconsulting.com/aws-web-application-firewall-waf/#:~:text=Conditions%20allow%20you%20to%20specify,user%20via%20a%20web%20application.

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Última actualización