AWS - WAF Enum

AWS - Enumeración de WAF

Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

AWS WAF

AWS WAF es un firewall de aplicaciones web diseñado para proteger aplicaciones web o APIs contra diversos exploits web que pueden afectar su disponibilidad, seguridad o consumo de recursos. Permite a los usuarios controlar el tráfico entrante configurando reglas de seguridad que mitigan vectores de ataque típicos como la inyección SQL o scripting entre sitios, y también definiendo reglas de filtrado personalizadas.

Criterios de Monitoreo (Condiciones)

Las condiciones especifican los elementos de las solicitudes HTTP/HTTPS entrantes que AWS WAF monitorea, que incluyen XSS, ubicación geográfica (GEO), direcciones IP, restricciones de tamaño, inyección SQL y patrones (coincidencia de cadenas y regex). Es importante tener en cuenta que las solicitudes restringidas a nivel de CloudFront basadas en el país no llegarán a WAF.

Cada cuenta de AWS puede configurar:

  • 100 condiciones para cada tipo (excepto para Regex, donde solo se permiten 10 condiciones, pero este límite se puede aumentar).

  • 100 reglas y 50 Web ACLs.

  • Un máximo de 5 reglas basadas en la tasa.

  • Un rendimiento de 10,000 solicitudes por segundo cuando WAF se implementa con un balanceador de carga de aplicaciones.

Configuración de Reglas

Las reglas se crean utilizando las condiciones especificadas. Por ejemplo, una regla podría bloquear una solicitud si cumple con 2 condiciones específicas. Hay dos tipos de reglas:

  1. Regla Regular: Regla estándar basada en condiciones especificadas.

  2. Regla Basada en Tasa: Cuenta las solicitudes de una dirección IP específica durante un período de cinco minutos. Aquí, los usuarios definen un umbral, y si el número de solicitudes de una IP supera este límite en cinco minutos, las solicitudes posteriores de esa IP se bloquean hasta que la tasa de solicitudes caiga por debajo del umbral. El umbral mínimo para las reglas basadas en la tasa es de 2000 solicitudes.

Acciones

Se asignan acciones a cada regla, con opciones de Permitir, Bloquear o Contar:

  • Permitir: La solicitud se reenvía a la distribución de CloudFront o al balanceador de carga de aplicaciones correspondiente.

  • Bloquear: La solicitud se termina inmediatamente.

  • Contar: Contabiliza las solicitudes que cumplen las condiciones de la regla. Esto es útil para probar la regla, confirmar la precisión antes de establecerla en Permitir o Bloquear.

Si una solicitud no coincide con ninguna regla dentro del Web ACL, se somete a la acción predeterminada (Permitir o Bloquear). El orden de ejecución de las reglas, definido dentro de un Web ACL, es crucial y típicamente sigue esta secuencia:

  1. Permitir IPs en lista blanca.

  2. Bloquear IPs en lista negra.

  3. Bloquear solicitudes que coincidan con cualquier firma perjudicial.

Integración con CloudWatch

AWS WAF se integra con CloudWatch para monitoreo, ofreciendo métricas como Solicitudes Permitidas, Solicitudes Bloqueadas, Solicitudes Contadas y Solicitudes Pasadas. Estas métricas se informan cada minuto de forma predeterminada y se retienen durante un período de dos semanas.

Enumeración

El alcance también puede ser CLOUDFRONT, pero al verificar un WAF no relacionado con CloudFront, es necesario utilizar 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

Post Explotación / Bypass

Desde la perspectiva de un atacante, este servicio puede ayudar al atacante a identificar protecciones de WAF y exposiciones de red que podrían ayudarlo a comprometer otros sitios web.

Sin embargo, un atacante también podría estar interesado en interrumpir este servicio para que los sitios web no estén protegidos por el WAF.

TODO: Se agradecen las solicitudes de extracción

Referencias

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

Aprende a hackear AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización