AWS - WAF Enum

AWS - WAF Enum

Lernen Sie AWS-Hacking von Null auf Heldenniveau mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

AWS WAF

AWS WAF ist eine Web Application Firewall, die entwickelt wurde, um Webanwendungen oder APIs vor verschiedenen Web-Exploits zu schützen, die sich auf deren Verfügbarkeit, Sicherheit oder Ressourcenverbrauch auswirken können. Es ermöglicht Benutzern, den eingehenden Datenverkehr zu kontrollieren, indem sie Sicherheitsregeln festlegen, die typische Angriffsvektoren wie SQL-Injektion oder Cross-Site-Scripting abwehren, und auch benutzerdefinierte Filterregeln definieren.

Überwachungskriterien (Bedingungen)

Bedingungen legen die Elemente der eingehenden HTTP/HTTPS-Anfragen fest, die von AWS WAF überwacht werden, darunter XSS, geografischer Standort (GEO), IP-Adressen, Größenbeschränkungen, SQL-Injektion und Muster (Zeichenfolgen und Regex-Übereinstimmungen). Es ist wichtig zu beachten, dass Anfragen, die auf CloudFront-Ebene auf Länderbasis eingeschränkt sind, WAF nicht erreichen.

Jedes AWS-Konto kann konfigurieren:

  • 100 Bedingungen für jeden Typ (außer für Regex, wo nur 10 Bedingungen erlaubt sind, aber dieses Limit kann erhöht werden).

  • 100 Regeln und 50 Web ACLs.

  • Maximal 5 ratebasierte Regeln.

  • Eine Durchsatzrate von 10.000 Anfragen pro Sekunde, wenn WAF mit einem Application Load Balancer implementiert ist.

Regelkonfiguration

Regeln werden unter Verwendung der spezifizierten Bedingungen erstellt. Zum Beispiel könnte eine Regel eine Anfrage blockieren, wenn sie 2 spezifische Bedingungen erfüllt. Es gibt zwei Arten von Regeln:

  1. Reguläre Regel: Standardregel basierend auf spezifizierten Bedingungen.

  2. Ratebasierte Regel: Zählt Anfragen von einer bestimmten IP-Adresse über einen Zeitraum von fünf Minuten. Hier definieren Benutzer einen Schwellenwert, und wenn die Anzahl der Anfragen von einer IP-Adresse innerhalb von fünf Minuten diesen Grenzwert überschreitet, werden nachfolgende Anfragen von dieser IP-Adresse blockiert, bis die Anfragehäufigkeit unter den Schwellenwert fällt. Der Mindestschwellenwert für ratebasierte Regeln beträgt 2000 Anfragen.

Aktionen

Aktionen werden jeder Regel zugewiesen, wobei die Optionen Erlauben, Blockieren oder Zählen sind:

  • Erlauben: Die Anfrage wird an die entsprechende CloudFront-Verteilung oder den Application Load Balancer weitergeleitet.

  • Blockieren: Die Anfrage wird sofort beendet.

  • Zählen: Zählt die Bedingungen der Regel erfüllenden Anfragen. Dies ist nützlich für die Regelprüfung, um die Genauigkeit der Regel vor der Einstellung auf Erlauben oder Blockieren zu bestätigen.

Wenn eine Anfrage keiner Regel innerhalb der Web ACL entspricht, durchläuft sie die Standardaktion (Erlauben oder Blockieren). Die Reihenfolge der Regelausführung, die innerhalb einer Web ACL definiert ist, ist entscheidend und folgt in der Regel dieser Sequenz:

  1. Erlauben von IP-Adressen in der Whitelist.

  2. Blockieren von IP-Adressen in der Blacklist.

  3. Blockieren von Anfragen, die mit schädlichen Signaturen übereinstimmen.

CloudWatch-Integration

AWS WAF integriert sich mit CloudWatch zur Überwachung und bietet Metriken wie Erlaubte Anfragen, Blockierte Anfragen, Gezählte Anfragen und Bestandene Anfragen. Diese Metriken werden standardmäßig alle Minute gemeldet und für einen Zeitraum von zwei Wochen gespeichert.

Enumeration

Der Bereich kann auch CLOUDFRONT sein, aber wenn Sie nach einem WAF suchen, der nicht mit Cloudfront zusammenhängt, müssen Sie REGIONAL verwenden.

# 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 / Umgehung

Aus der Sicht eines Angreifers kann dieser Dienst dem Angreifer helfen, WAF-Schutzmaßnahmen und Netzwerkexpositionen zu identifizieren, die ihm helfen könnten, andere Websites zu kompromittieren.

Ein Angreifer könnte jedoch auch daran interessiert sein, diesen Dienst zu stören, damit die Websites nicht durch die WAF geschützt sind.

TODO: PRs sind willkommen

Referenzen

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

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated