# AWS - WAF Enum

{{#include ../../../../banners/hacktricks-training.md}}

## AWS WAF

AWS WAF is 'n **webtoepassing vuurmuur** wat ontwerp is om **webtoepassings of API's** te beskerm teen verskeie webaanvalle wat hul beskikbaarheid, sekuriteit of hulpbronverbruik kan beïnvloed. Dit stel gebruikers in staat om inkomende verkeer te beheer deur **sekuriteitsreëls** op te stel wat tipiese aanvalsvektore soos SQL-inspuiting of kruis-webskripting verminder en ook deur pasgemaakte filtrasie-reëls te definieer.

### Sleutelkonsepte

#### Web ACL (Toegang Beheerlys)

'n Web ACL is 'n versameling reëls wat jy op jou webtoepassings of API's kan toepas. Wanneer jy 'n Web ACL met 'n hulpbron assosieer, ondersoek AWS WAF inkomende versoeke gebaseer op die reëls wat in die Web ACL gedefinieer is en neem die gespesifiseerde aksies.

#### Reëlgroep

'n Reëlgroep is 'n herbruikbare versameling reëls wat jy op verskeie Web ACLs kan toepas. Reëlgroepe help om konsekwente reëlstelle oor verskillende webtoepassings of API's te bestuur en te onderhou.

Elke reëlgroep het sy eie **kapasiteit**, wat help om die bedryfsbronne wat gebruik word om jou reëls, reëlgroepe en web ACLs te bestuur, te bereken en te beheer. Sodra die waarde tydens die skepping gestel is, is dit nie moontlik om dit te wysig nie.

#### Reël

'n Reël definieer 'n stel voorwaardes wat AWS WAF gebruik om inkomende webversoeke te ondersoek. Daar is twee hoofsoorte reëls:

1. **Reguliere Reël**: Hierdie reël tipe gebruik gespesifiseerde voorwaardes om te bepaal of webversoeke toegelaat, geblokkeer of getel moet word.
2. **Tarief-gebaseerde Reël**: Tel versoeke van 'n spesifieke IP-adres oor 'n vyf-minuut periode. Hier definieer gebruikers 'n drempel, en as die aantal versoeke van 'n IP hierdie limiet binne vyf minute oorskry, word daaropvolgende versoeke van daardie IP geblokkeer totdat die versoektarief onder die drempel daal. Die minimum drempel vir tarief-gebaseerde reëls is **2000 versoeke**.

#### Geverifieerde Reëls

AWS WAF bied vooraf-gekonfigureerde, geverifieerde reëlstelle wat deur AWS en AWS Marketplace verkopers onderhou word. Hierdie reëlstelle bied beskerming teen algemene bedreigings en word gereeld opgedateer om nuwe kwesbaarhede aan te spreek.

#### IP Stel

'n IP Stel is 'n lys van IP-adresse of IP-adresreekse wat jy wil toelaat of blokkeer. IP stelle vereenvoudig die proses om IP-gebaseerde reëls te bestuur.

#### Regex Patroon Stel

'n Regex Patroon Stel bevat een of meer regulêre uitdrukkings (regex) wat patrone definieer om in webversoeke te soek. Dit is nuttig vir meer komplekse ooreenkoms scenario's, soos om spesifieke volgordes van karakters te filtreer.

#### Lock Token

'n Lock Token word gebruik vir mededingingsbeheer wanneer opdaterings aan WAF-hulpbronne gemaak word. Dit verseker dat veranderinge nie per ongeluk deur verskeie gebruikers of prosesse wat probeer om dieselfde hulpbron gelyktydig op te dateer, oorgeskryf word nie.

#### API Sleutels

API Sleutels in AWS WAF word gebruik om versoeke na sekere API operasies te verifieer. Hierdie sleutels is versleuteld en veilig bestuur om toegang te beheer en te verseker dat slegs gemagtigde gebruikers veranderinge aan WAF-konfigurasies kan aanbring.

- **Voorbeeld**: Integrasie van die CAPTCHA API.

#### Toestemming Beleid

'n Toestemming Beleid is 'n IAM beleid wat spesifiseer wie aksies op AWS WAF-hulpbronne kan uitvoer. Deur toestemmings te definieer, kan jy toegang tot WAF-hulpbronne beheer en verseker dat slegs gemagtigde gebruikers konfigurasies kan skep, opdateer of verwyder.

#### Bereik

Die bereik parameter in AWS WAF spesifiseer of die WAF reëls en konfigurasies van toepassing is op 'n streeks toepassing of 'n Amazon CloudFront verspreiding.

- **REGIONAL**: Geld vir streeksdienste soos Toepassing Laai Balancers (ALB), Amazon API Gateway REST API, AWS AppSync GraphQL API, Amazon Cognito gebruikerspoel, AWS App Runner diens en AWS Verified Access instansie. Jy spesifiseer die AWS streek waar hierdie hulpbronne geleë is.
- **CLOUDFRONT**: Geld vir Amazon CloudFront verspreidings, wat globaal is. WAF konfigurasies vir CloudFront word bestuur deur die `us-east-1` streek ongeag waar die inhoud bedien word.

### Sleutelkenmerke

#### Monitering Kriteria (Voorwaardes)

**Voorwaardes** spesifiseer die elemente van inkomende HTTP/HTTPS versoeke wat AWS WAF monitor, wat XSS, geografiese ligging (GEO), IP-adresse, Grootte beperkings, SQL-inspuiting, en patrone (stringe en regex ooreenkomste) insluit. Dit is belangrik om te noem dat **versoeke wat op die CloudFront vlak op grond van land beperk is, nie WAF sal bereik nie**.

Elke AWS rekening kan konfigureer:

- **100 voorwaardes** vir elke tipe (behalwe vir Regex, waar slegs **10 voorwaardes** toegelaat word, maar hierdie limiet kan verhoog word).
- **100 reëls** en **50 Web ACLs**.
- 'n maksimum van **5 tarief-gebaseerde reëls**.
- 'n deurset van **10,000 versoeke per sekonde** wanneer WAF geïmplementeer word met 'n toepassing laai balancer.

#### Reël aksies

Aksies word aan elke reël toegeken, met opsies soos:

- **Toelaat**: Die versoek word na die toepaslike CloudFront verspreiding of Toepassing Laai Balancer gestuur.
- **Blokkeer**: Die versoek word onmiddellik beëindig.
- **Tel**: Tel die versoeke wat aan die reël se voorwaardes voldoen. Dit is nuttig vir reëltoetsing, om die akkuraatheid van die reël te bevestig voordat dit op Toelaat of Blokkeer gestel word.
- **CAPTCHA en Uitdaging:** Dit word geverifieer dat die versoek nie van 'n bot kom nie deur CAPTCHA legkaarte en stille uitdagings.

As 'n versoek nie aan enige reël binne die Web ACL voldoen nie, ondergaan dit die **standaard aksie** (Toelaat of Blokkeer). Die volgorde van reël uitvoering, wat binne 'n Web ACL gedefinieer is, is belangrik en volg tipies hierdie volgorde:

1. Toelaat Witlys IP's.
2. Blokkeer Swartlys IP's.
3. Blokkeer versoeke wat enige nadelige handtekeninge ooreenstem.

#### CloudWatch Integrasie

AWS WAF integreer met CloudWatch vir monitering, wat metrieke soos AllowedRequests, BlockedRequests, CountedRequests, en PassedRequests bied. Hierdie metrieke word elke minuut standaard gerapporteer en vir 'n periode van twee weke behou.

### Enumerasie

Om met CloudFront verspreidings te kommunikeer, moet jy die Streek US East (N. Virginia) spesifiseer:

- CLI - Spesifiseer die Streek US East wanneer jy die CloudFront bereik gebruik: `--scope CLOUDFRONT --region=us-east-1`.
- API en SDK's - Vir alle oproepe, gebruik die Streek eindpunt us-east-1.

Om met streeksdienste te kommunikeer, moet jy die streek spesifiseer:

- Voorbeeld met die streek Europa (Spanje): `--scope REGIONAL --region=eu-south-2`
```bash
# Web ACLs #

## Retrieve a list of web access control lists (Web ACLs) available in your AWS account
aws wafv2 list-web-acls --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve details about the specified Web ACL
aws wafv2 get-web-acl --name <value> --id <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>

## Retrieve a list of resources associated with a specific web access control list (Web ACL)
aws wafv2 list-resources-for-web-acl --web-acl-arn <value> # Additional permissions needed depending on the protected resource type: cognito-idp:ListResourcesForWebACL, ec2:DescribeVerifiedAccessInstanceWebAclAssociations or apprunner:ListAssociatedServicesForWebAcl
## Retrieve the Web ACL associated with the specified AWS resource
aws wafv2 get-web-acl-for-resource --resource-arn <arn> # Additional permissions needed depending on the protected resource type: cognito-idp:GetWebACLForResource, ec2:GetVerifiedAccessInstanceWebAcl, wafv2:GetWebACL or apprunner:DescribeWebAclForService

# Rule groups #

## List of the rule groups available in your AWS account
aws wafv2 list-rule-groups --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve the details of a specific rule group
aws wafv2 get-rule-group [--name <value>] [--id <value>] [--arn <value>] [--scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>]
## Retrieve the IAM policy attached to the specified rule group
aws wafv2 get-permission-policy --resource-arn <rule-group-arn> # Just the owner of the Rule Group can do this operation

# Managed rule groups (by AWS or by a third-party) #

## List the managed rule groups that are available
aws wafv2 list-available-managed-rule-groups --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## List the available versions of the specified managed rule group
aws wafv2 list-available-managed-rule-group-versions --vendor-name <value> --name <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve high-level information about a specific managed rule group
aws wafv2 describe-managed-rule-group --vendor-name <value> --name <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--version-name <value>]
## Retrieve high-level information about all managed rule groups
aws wafv2 describe-all-managed-products --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve high-level information about all managed rule groups from a specific vendor
aws wafv2 describe-managed-products-by-vendor --vendor-name <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>

# IP sets #

## List the IP sets that are available in your AWS account
aws wafv2 list-ip-sets --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve the specific IP set
aws wafv2 get-ip-set --name <value> --id <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve the keys that are currently being managed by a rate-based rule.
aws wafv2 get-rate-based-statement-managed-keys --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>\
--web-acl-name <value> --web-acl-id <value> --rule-name <value> [--rule-group-rule-name <value>]

# Regex pattern sets #

## List all the regex pattern sets that you manage
aws wafv2 list-regex-pattern-sets --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieves the specified regex pattern sets
aws wafv2 get-regex-pattern-set --name <value> --id <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>

# API Keys #

## List API keys for the specified scope
aws wafv2 list-api-keys --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve decrypted API key
aws wafv2 get-decrypted-api-key --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> --api-key <value>

# Logs #

## List of logging configurations (storage location of the logs)
aws wafv2 list-logging-configurations --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--log-scope <value>]
## Retrieve the logging configuration settings associated with a specific web ACL
aws wafv2 get-logging-configuration --resource-arn <value> [--log-scope <CUSTOMER | SECURITY_LAKE>] [--log-type <value>]

# Miscelaneous #

## Retrieve a list of the tags associated to the specified resource
aws wafv2 list-tags-for-resource resource-arn <value>

## Retrieve a sample of web requests that match a specified rule within a WebACL during a specified time range
aws wafv2 get-sampled-requests --web-acl-arn <value> --rule-metric-name <value> --time-window <value> --max-items <1-500> --scope <value>

## Obtains the web ACL capacity unit (WCU) requirements for a specified scope and ruleset
aws wafv2 check-capacity --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> --rules <value>

## List of available releases for the AWS WAFv2 mobile SDK
aws wafv2 list-mobile-sdk-releases --platform <IOS | ANDROID>
## Retrieves information for the specified mobile SDK release
aws wafv2 get-mobile-sdk-release --platform <value> --release-version <value>

```
### Post Exploitation / Bypass

> [!TIP]
> Vanuit 'n aanvaller se perspektief kan hierdie diens die aanvaller help om WAF beskermings en netwerk blootstellings te identifiseer wat hom kan help om ander webwerwe te kompromitteer.
>
> egter, 'n aanvaller kan ook belangstel om hierdie diens te ontwrig sodat die webwerwe nie deur die WAF beskerm word nie.

In baie van die Verwyder en Opdateer operasies sal dit nodig wees om die **lock token** te verskaf. Hierdie token word gebruik vir mededingingsbeheer oor die hulpbronne, wat verseker dat veranderinge nie per ongeluk deur verskeie gebruikers of prosesse wat probeer om dieselfde hulpbron gelyktydig op te dateer, oorgeskryf word nie. Om hierdie token te verkry, kan jy die ooreenstemmende **lys** of **kry** operasies oor die spesifieke hulpbron uitvoer.

#### **`wafv2:CreateRuleGroup`, `wafv2:UpdateRuleGroup`, `wafv2:DeleteRuleGroup`**

'n Aanvaller sal in staat wees om die sekuriteit van die geraakte hulpbron te kompromitteer deur:

- Reëlgroepe te skep wat byvoorbeeld legitieme verkeer van legitieme IP adresse kan blokkeer, wat 'n ontkenning van diens veroorsaak.
- Reëlgroepe op te dateer, wat in staat is om sy aksies te verander byvoorbeeld van **Block** na **Allow**.
- Reëlgroepe te verwyder wat kritieke sekuriteitsmaatreëls bied.
```bash
# Create Rule Group
aws wafv2 create-rule-group --name <value> --capacity <value> --visibility-config <value> \
--scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--rules <value>] [--description <value>]
# Update Rule Group
aws wafv2 update-rule-group --name <value> --id <value> --visibility-config <value> --lock-token <value>\
--scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--rules <value>] [--description <value>]
# Delete Rule Group
aws wafv2 delete-rule-group --name <value> --id <value> --lock-token <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
```
Die volgende voorbeelde toon 'n reëlgroep wat wettige verkeer van spesifieke IP-adresse sou blokkeer:
```bash
aws wafv2 create-rule-group --name BlockLegitimateIPsRuleGroup --capacity 1 --visibility-config SampledRequestsEnabled=false,CloudWatchMetricsEnabled=false,MetricName=BlockLegitimateIPsRuleGroup --scope CLOUDFRONT --region us-east-1 --rules file://rule.json
```
Die **rule.json** lêer sal soos volg lyk:
```json
[
{
"Name": "BlockLegitimateIPsRule",
"Priority": 0,
"Statement": {
"IPSetReferenceStatement": {
"ARN": "arn:aws:wafv2:us-east-1:123456789012:global/ipset/legitIPv4/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f"
}
},
"Action": {
"Block": {}
},
"VisibilityConfig": {
"SampledRequestsEnabled": false,
"CloudWatchMetricsEnabled": false,
"MetricName": "BlockLegitimateIPsRule"
}
}
]
```
**Potensiële Impak**: Onbevoegde toegang, datalekke, en potensiële DoS-aanvalle.

#### **`wafv2:CreateWebACL`, `wafv2:UpdateWebACL`, `wafv2:DeleteWebACL`**

Met hierdie toestemmings kan 'n aanvaller:

- 'n Nuwe Web ACL skep, wat reëls bekendstel wat of kwaadwillige verkeer toelaat of legitieme verkeer blokkeer, wat die WAF effektief nutteloos maak of 'n diensontkenning veroorsaak.
- Bestaande Web ACLs opdateer, in staat om reëls te wysig om aanvalle soos SQL-inspuiting of kruis-web scripting toe te laat, wat voorheen geblokkeer was, of normale verkeersvloei te ontwrig deur geldige versoeke te blokkeer.
- 'n Web ACL verwyder, wat die betrokke hulpbronne heeltemal onbeskermd laat, en dit blootstel aan 'n wye reeks webaanvalle.

> [!NOTE]
> Jy kan slegs die gespesifiseerde **WebACL** verwyder as **ManagedByFirewallManager** vals is.
```bash
# Create Web ACL
aws wafv2 create-web-acl --name <value> --default-action <value> --visibility-config <value> \
--scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--rules <value>] [--captcha-config <value>] [--description <value>]
# Update Web ACL
aws wafv2 update-web-acl --name <value> --id <value> --default-action <value> --visibility-config <value> --lock-token <value>\
--scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--rules <value>] [--captcha-config <value>] [--description <value>]
# Delete Web ACL
aws wafv2 delete-web-acl --name <value> --id <value> --lock-token <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
```
Die volgende voorbeelde toon hoe om 'n Web ACL op te dateer om die legitieme verkeer van 'n spesifieke IP-stel te blokkeer. As die oorspronklike IP nie met enige van daardie IP's ooreenstem nie, sal die standaardaksie ook wees om dit te blokkeer, wat 'n DoS veroorsaak.

**Originele Web ACL**:
```json
{
"WebACL": {
"Name": "AllowLegitimateIPsWebACL",
"Id": "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f",
"ARN": "arn:aws:wafv2:us-east-1:123456789012:regional/webacl/AllowLegitimateIPsWebACL/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f",
"DefaultAction": {
"Allow": {}
},
"Description": "",
"Rules": [
{
"Name": "AllowLegitimateIPsRule",
"Priority": 0,
"Statement": {
"IPSetReferenceStatement": {
"ARN": "arn:aws:wafv2:us-east-1:123456789012:regional/ipset/LegitimateIPv4/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f"
}
},
"Action": {
"Allow": {}
},
"VisibilityConfig": {
"SampledRequestsEnabled": false,
"CloudWatchMetricsEnabled": false,
"MetricName": "AllowLegitimateIPsRule"
}
}
],
"VisibilityConfig": {
"SampledRequestsEnabled": false,
"CloudWatchMetricsEnabled": false,
"MetricName": "AllowLegitimateIPsWebACL"
},
"Capacity": 1,
"ManagedByFirewallManager": false,
"LabelNamespace": "awswaf:123456789012:webacl:AllowLegitimateIPsWebACL:"
},
"LockToken": "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f"
}
```
Opdrag om die Web ACL op te dateer:
```json
aws wafv2 update-web-acl --name AllowLegitimateIPsWebACL --scope REGIONAL --id 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --lock-token 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --default-action Block={} --visibility-config SampledRequestsEnabled=false,CloudWatchMetricsEnabled=false,MetricName=AllowLegitimateIPsWebACL --rules file://rule.json --region us-east-1
```
Die **rule.json** lêer sal soos volg lyk:
```json
[
{
"Name": "BlockLegitimateIPsRule",
"Priority": 0,
"Statement": {
"IPSetReferenceStatement": {
"ARN": "arn:aws:wafv2:us-east-1:123456789012:regional/ipset/LegitimateIPv4/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f"
}
},
"Action": {
"Block": {}
},
"VisibilityConfig": {
"SampledRequestsEnabled": false,
"CloudWatchMetricsEnabled": false,
"MetricName": "BlockLegitimateIPRule"
}
}
]
```
**Potensiële Impak**: Onbevoegde toegang, datalekke, en potensiële DoS-aanvalle.

#### **`wafv2:AssociateWebACL`, `wafv2:DisassociateWebACL`**

Die **`wafv2:AssociateWebACL`** toestemming sal 'n aanvaller in staat stel om web ACLs (Toegang Beheer Lyste) met hulpbronne te assosieer, wat dit moontlik maak om sekuriteitsbeheermaatreëls te omseil, wat onbevoegde verkeer toelaat om die aansoek te bereik, wat potensieel kan lei tot ontploffings soos SQL-inspuiting of kruis-web scripting (XSS). Omgekeerd, met die **`wafv2:DisassociateWebACL`** toestemming, kan die aanvaller tydelik sekuriteitsbeskermings deaktiveer, wat die hulpbronne aan kwesbaarhede blootstel sonder opsporing.

Die addisionele toestemmings sal benodig word, afhangende van die tipe beskermde hulpbron:

- **Assosieer**
- apigateway:SetWebACL
- apprunner:AssociateWebAcl
- appsync:SetWebACL
- cognito-idp:AssociateWebACL
- ec2:AssociateVerifiedAccessInstanceWebAcl
- elasticloadbalancing:SetWebAcl
- **Dissosieer**
- apigateway:SetWebACL
- apprunner:DisassociateWebAcl
- appsync:SetWebACL
- cognito-idp:DisassociateWebACL
- ec2:DisassociateVerifiedAccessInstanceWebAcl
- elasticloadbalancing:SetWebAcl
```bash
# Associate
aws wafv2 associate-web-acl --web-acl-arn <value> --resource-arn <value>
# Disassociate
aws wafv2 disassociate-web-acl --resource-arn <value>
```
**Potensiële Impak**: Gecompromitteerde hulpbronne sekuriteit, verhoogde risiko van eksploitatie, en potensiële diensonderbrekings binne AWS omgewings wat deur AWS WAF beskerm word.

#### **`wafv2:CreateIPSet` , `wafv2:UpdateIPSet`, `wafv2:DeleteIPSet`**

'n Aanvaller sal in staat wees om die IP stelle wat deur AWS WAF bestuur word, te skep, op te dateer en te verwyder. Dit kan gevaarlik wees aangesien dit nuwe IP stelle kan skep om kwaadwillige verkeer toe te laat, IP stelle kan wysig om wettige verkeer te blokkeer, bestaande IP stelle kan opdateer om kwaadwillige IP adresse in te sluit, vertroude IP adresse kan verwyder of kritieke IP stelle kan verwyder wat bedoel is om kritieke hulpbronne te beskerm.
```bash
# Create IP set
aws wafv2 create-ip-set --name <value> --ip-address-version <IPV4 | IPV6> --addresses <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
# Update IP set
aws wafv2 update-ip-set --name <value> --id <value> --addresses <value> --lock-token <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
# Delete IP set
aws wafv2 delete-ip-set --name <value> --id <value> --lock-token <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
```
Die volgende voorbeeld toon hoe om **die bestaande IP stel te oorskryf met die gewenste IP stel**:
```bash
aws wafv2 update-ip-set --name LegitimateIPv4Set --id 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --addresses 99.99.99.99/32 --lock-token 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --scope CLOUDFRONT --region us-east-1
```
**Potensiële Impak**: Onbevoegde toegang en blokkering van legitieme verkeer.

#### **`wafv2:CreateRegexPatternSet`** , **`wafv2:UpdateRegexPatternSet`**, **`wafv2:DeleteRegexPatternSet`**

'n Aanvaller met hierdie toestemmings sou in staat wees om die regulêre uitdrukking patroonstelle wat deur AWS WAF gebruik word, te manipuleer om inkomende verkeer op grond van spesifieke patrone te beheer en te filtreer.

- Die skep van nuwe regex patrone sou 'n aanvaller help om skadelike inhoud toe te laat
- Deur die bestaande patrone op te dateer, sou 'n aanvaller die sekuriteitsreëls kon omseil
- Die verwydering van patrone wat ontwerp is om kwaadwillige aktiwiteite te blokkeer, kan 'n aanvaller in staat stel om kwaadwillige payloads te stuur en die sekuriteitsmaatreëls te omseil.
```bash
# Create regex pattern set
aws wafv2 create-regex-pattern-set --name <value> --regular-expression-list <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--description <value>]
# Update regex pattern set
aws wafv2 update-regex-pattern-set --name <value> --id <value> --regular-expression-list <value> --lock-token <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
# Delete regex pattern set
aws wafv2 delete-regex-pattern-set --name <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> --id <value> --lock-token <value>
```
**Potensiële Impak**: Oorskry van sekuriteitsbeheer, wat kwaadwillige inhoud toelaat en moontlik sensitiewe data blootstel of dienste en hulpbronne wat deur AWS WAF beskerm word, ontwrig.

#### **(`wavf2:PutLoggingConfiguration` &** `iam:CreateServiceLinkedRole`), **`wafv2:DeleteLoggingConfiguration`**

'n Aanvaller met die **`wafv2:DeleteLoggingConfiguration`** sou in staat wees om die logging-konfigurasie van die gespesifiseerde Web ACL te verwyder. Vervolgens, met die **`wavf2:PutLoggingConfiguration`** en **`iam:CreateServiceLinkedRole`** toestemmings, kan 'n aanvaller logging-konfigurasies skep of vervang (nadat dit verwyder is) om of logging heeltemal te voorkom of logs na ongemagtigde bestemmings te herlei, soos Amazon S3-buckets, Amazon CloudWatch Logs loggroep of 'n Amazon Kinesis Data Firehose onder beheer.

Tydens die skepproses stel die diens outomaties die nodige toestemmings op om te verseker dat logs na die gespesifiseerde logging-bestemming geskryf kan word:

- **Amazon CloudWatch Logs:** AWS WAF skep 'n hulpbronbeleid op die aangewese CloudWatch Logs loggroep. Hierdie beleid verseker dat AWS WAF die toestemmings het wat nodig is om logs na die loggroep te skryf.
- **Amazon S3 Bucket:** AWS WAF skep 'n emmerbeleid op die aangewese S3-bucket. Hierdie beleid verleen AWS WAF die nodige toestemmings om logs na die gespesifiseerde emmer op te laai.
- **Amazon Kinesis Data Firehose:** AWS WAF skep 'n diens-gekoppelde rol spesifiek vir interaksie met Kinesis Data Firehose. Hierdie rol laat AWS WAF toe om logs na die geconfigureerde Firehose-stroom te lewer.

> [!NOTE]
> Dit is moontlik om slegs een logging-bestemming per web ACL te definieer.
```bash
# Put logging configuration
aws wafv2 put-logging-configuration --logging-configuration <value>
# Delete logging configuration
aws wafv2 delete-logging-configuration --resource-arn <value> [--log-scope <CUSTOMER | SECURITY_LAKE>] [--log-type <value>]
```
**Potensiële Impak:** Obskure sigbaarheid in sekuriteitsevents, moeilikheid in die insidentresponsproses, en fasiliteer oorgenoeg kwaadwillige aktiwiteite binne AWS WAF-beskermde omgewings.

#### **`wafv2:DeleteAPIKey`**

'n Aanvaller met hierdie toestemmings sal in staat wees om bestaande API-sleutels te verwyder, wat die CAPTCHA ondoeltreffend maak en die funksionaliteit wat daarop staatmaak, soos vormindienings en toegangbeheer, ontwrig. Afhangende van die implementering van hierdie CAPTCHA, kan dit lei tot 'n CAPTCHA-omseiling of 'n DoS as die foutbestuur nie behoorlik in die hulpbron ingestel is nie.
```bash
# Delete API key
aws wafv2 delete-api-key --api-key <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
```
**Potensiële Impak**: Deaktiveer CAPTCHA beskermings of onderbreek toepassingsfunksionaliteit, wat lei tot sekuriteitsbreuke en potensiële datadiefstal.

#### **`wafv2:TagResource`, `wafv2:UntagResource`**

'n Aanvaller sal in staat wees om etikette by te voeg, te wysig of te verwyder van AWS WAFv2 hulpbronne, soos Web ACLs, reëlgroepe, IP stelle, regex patroon stelle, en log konfigurasies.
```bash
# Tag
aws wafv2 tag-resource --resource-arn <value> --tags <value>
# Untag
aws wafv2 untag-resource --resource-arn <value> --tag-keys <value>
```
**Potensiële Impak**: Hulpbron manipulasie, inligting lekkasie, koste manipulasie en operasionele onderbreking.

## Verwysings

- [https://www.citrusconsulting.com/aws-web-application-firewall-waf/#:\~:text=Conditions%20allow%20you%20to%20specify,user%20via%20a%20web%20application](https://www.citrusconsulting.com/aws-web-application-firewall-waf/)
- [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html)

{{#include ../../../../banners/hacktricks-training.md}}
