AWS - WAF Enum

AWS - WAF Enum

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)!

Autres façons de soutenir HackTricks:

AWS WAF

AWS WAF est un pare-feu d'application Web conçu pour protéger les applications Web ou les API contre diverses attaques Web qui pourraient affecter leur disponibilité, leur sécurité ou leur consommation de ressources. Il permet aux utilisateurs de contrôler le trafic entrant en configurant des règles de sécurité qui atténuent les vecteurs d'attaque courants tels que les injections SQL ou les scripts entre sites, ainsi qu'en définissant des règles de filtrage personnalisées.

Critères de surveillance (Conditions)

Les conditions spécifient les éléments des requêtes HTTP/HTTPS entrantes que AWS WAF surveille, notamment XSS, la localisation géographique (GEO), les adresses IP, les contraintes de taille, les injections SQL et les motifs (correspondance de chaînes et regex). Il est important de noter que les requêtes restreintes au niveau de CloudFront en fonction du pays n'atteindront pas WAF.

Chaque compte AWS peut configurer :

  • 100 conditions pour chaque type (sauf pour Regex, où seules 10 conditions sont autorisées, mais cette limite peut être augmentée).

  • 100 règles et 50 Web ACL.

  • Un maximum de 5 règles basées sur le taux.

  • Un débit de 10 000 requêtes par seconde lorsque WAF est implémenté avec un répartiteur de charge d'application.

Configuration des règles

Les règles sont élaborées en utilisant les conditions spécifiées. Par exemple, une règle pourrait bloquer une requête si elle répond à 2 conditions spécifiques. Il existe deux types de règles :

  1. Règle régulière : Règle standard basée sur des conditions spécifiées.

  2. Règle basée sur le taux : Compte les requêtes à partir d'une adresse IP spécifique sur une période de cinq minutes. Ici, les utilisateurs définissent un seuil, et si le nombre de requêtes à partir d'une IP dépasse cette limite dans les cinq minutes, les requêtes ultérieures à partir de cette IP sont bloquées jusqu'à ce que le taux de requêtes redescende en dessous du seuil. Le seuil minimum pour les règles basées sur le taux est de 2000 requêtes.

Actions

Des actions sont attribuées à chaque règle, avec les options Autoriser, Bloquer ou Compter :

  • Autoriser : La requête est transmise à la distribution CloudFront ou au répartiteur de charge d'application approprié.

  • Bloquer : La requête est immédiatement terminée.

  • Compter : Compte les requêtes répondant aux conditions de la règle. Cela est utile pour tester la règle, confirmer l'exactitude de la règle avant de la définir sur Autoriser ou Bloquer.

Si une requête ne correspond à aucune règle dans le Web ACL, elle subit l'action par défaut (Autoriser ou Bloquer). L'ordre d'exécution des règles, défini dans un Web ACL, est crucial et suit généralement cette séquence :

  1. Autoriser les adresses IP en liste blanche.

  2. Bloquer les adresses IP en liste noire.

  3. Bloquer les requêtes correspondant à des signatures préjudiciables.

Intégration CloudWatch

AWS WAF s'intègre à CloudWatch pour la surveillance, offrant des métriques telles que AllowedRequests, BlockedRequests, CountedRequests et PassedRequests. Ces métriques sont rapportées toutes les minutes par défaut et conservées pendant une période de deux semaines.

Énumération

La portée peut également être CLOUDFRONT, mais lors de la vérification d'un WAF non lié à CloudFront, vous devez utiliser 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 Exploitation / Contournement

D'un point de vue de l'attaquant, ce service peut aider l'attaquant à identifier les protections WAF et les expositions réseau qui pourraient l'aider à compromettre d'autres sites web.

Cependant, un attaquant pourrait également être intéressé à perturber ce service pour que les sites ne soient pas protégés par le WAF.

TODO: Les PR sont les bienvenues

Références

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

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks:

Dernière mise à jour