AWS - WAF Enum

AWS - Enumerazione di AWS WAF

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

AWS WAF

AWS WAF è un firewall per applicazioni web progettato per proteggere le applicazioni web o le API da vari exploit che potrebbero comprometterne la disponibilità, la sicurezza o il consumo di risorse. Permette agli utenti di controllare il traffico in ingresso configurando regole di sicurezza che mitigano tipici vettori di attacco come l'iniezione SQL o lo scripting tra siti e definendo anche regole di filtraggio personalizzate.

Criteri di monitoraggio (Condizioni)

Le condizioni specificano gli elementi delle richieste HTTP/HTTPS in ingresso che AWS WAF monitora, tra cui XSS, posizione geografica (GEO), indirizzi IP, vincoli di dimensione, iniezione SQL e pattern (corrispondenza di stringhe e regex). È importante notare che le richieste limitate a livello di CloudFront in base al paese non raggiungeranno WAF.

Ogni account AWS può configurare:

  • 100 condizioni per ogni tipo (ad eccezione di Regex, dove sono consentite solo 10 condizioni, ma questo limite può essere aumentato).

  • 100 regole e 50 Web ACL.

  • Un massimo di 5 regole basate sul tasso.

  • Un throughput di 10.000 richieste al secondo quando WAF viene implementato con un bilanciamento del carico dell'applicazione.

Configurazione delle regole

Le regole vengono create utilizzando le condizioni specificate. Ad esempio, una regola potrebbe bloccare una richiesta se soddisfa 2 condizioni specifiche. Ci sono due tipi di regole:

  1. Regola normale: Regola standard basata su condizioni specificate.

  2. Regola basata sul tasso: Conta le richieste da un indirizzo IP specifico in un periodo di cinque minuti. Qui, gli utenti definiscono una soglia e se il numero di richieste da un IP supera questo limite entro cinque minuti, le richieste successive da quell'IP vengono bloccate fino a quando il tasso di richiesta non scende al di sotto della soglia. La soglia minima per le regole basate sul tasso è di 2000 richieste.

Azioni

Le azioni vengono assegnate a ciascuna regola, con le opzioni Consenti, Blocca o Conta:

  • Consenti: La richiesta viene inoltrata alla distribuzione CloudFront o al bilanciamento del carico dell'applicazione appropriato.

  • Blocca: La richiesta viene terminata immediatamente.

  • Conta: Conta le richieste che soddisfano le condizioni della regola. Questo è utile per il test delle regole, per confermare l'accuratezza della regola prima di impostarla su Consenti o Blocca.

Se una richiesta non corrisponde a nessuna regola all'interno del Web ACL, viene applicata l'azione predefinita (Consenti o Blocca). L'ordine di esecuzione delle regole, definito all'interno di un Web ACL, è cruciale e di solito segue questa sequenza:

  1. Consenti gli IP in whitelist.

  2. Blocca gli IP in blacklist.

  3. Blocca le richieste che corrispondono a eventuali firme dannose.

Integrazione con CloudWatch

AWS WAF si integra con CloudWatch per il monitoraggio, offrendo metriche come AllowedRequests, BlockedRequests, CountedRequests e PassedRequests. Queste metriche vengono riportate ogni minuto per impostazione predefinita e conservate per un periodo di due settimane.

Enumerazione

Lo scope può anche essere CLOUDFRONT, ma quando si verifica la presenza di un WAF non correlato a CloudFront, è necessario utilizzare 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 Esploitation / Bypass

Dal punto di vista di un attaccante, questo servizio può aiutare l'attaccante a identificare le protezioni WAF e le esposizioni di rete che potrebbero aiutarlo a compromettere altri siti web.

Tuttavia, un attaccante potrebbe anche essere interessato a interrompere questo servizio in modo che i siti web non siano protetti dal WAF.

TODO: I PR sono benvenuti

Riferimenti

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

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated