AWS - WAF Enum
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
AWS WAF
AWS WAF, web uygulamalarını veya API’leri çeşitli web saldırılarına karşı korumak için tasarlanmış bir web uygulama güvenlik duvarıdır. Kullanıcıların, SQL enjeksiyonu veya çapraz site betikleme gibi tipik saldırı vektörlerini azaltan güvenlik kuralları oluşturarak gelen trafiği kontrol etmelerini sağlar ve ayrıca özel filtreleme kuralları tanımlayarak bunu yapar.
Temel kavramlar
Web ACL (Erişim Kontrol Listesi)
Web ACL, web uygulamalarınıza veya API’lerinize uygulayabileceğiniz bir kural koleksiyonudur. Bir Web ACL’yi bir kaynakla ilişkilendirdiğinizde, AWS WAF, Web ACL’de tanımlanan kurallara göre gelen istekleri inceler ve belirtilen eylemleri gerçekleştirir.
Kural Grubu
Kural Grubu, birden fazla Web ACL’ye uygulayabileceğiniz yeniden kullanılabilir bir kural koleksiyonudur. Kural grupları, farklı web uygulamaları veya API’ler arasında tutarlı kural setlerini yönetmeye ve sürdürmeye yardımcı olur.
Her kural grubunun ilişkili bir kapasitesi vardır; bu, kurallarınızı, kural gruplarınızı ve web ACL’lerinizi çalıştırmak için kullanılan işletim kaynaklarını hesaplamaya ve kontrol etmeye yardımcı olur. Oluşturma sırasında değeri belirlendikten sonra, değiştirilmesi mümkün değildir.
Kural
Bir kural, AWS WAF’nin gelen web isteklerini incelemek için kullandığı bir dizi koşulu tanımlar. İki ana kural türü vardır:
- Düzenli Kural: Bu kural türü, web isteklerini kabul etmek, engellemek veya saymak için belirli koşulları kullanır.
- Oran Tabanlı Kural: Belirli bir IP adresinden gelen istekleri beş dakikalık bir süre içinde sayar. Burada, kullanıcılar bir eşik tanımlar ve bir IP’den gelen istek sayısı bu limiti beş dakika içinde aşarsa, o IP’den gelen sonraki istekler, istek oranı eşik altına düşene kadar engellenir. Oran tabanlı kurallar için minimum eşik 2000 istektir.
Yönetilen Kurallar
AWS WAF, AWS ve AWS Marketplace satıcıları tarafından yönetilen önceden yapılandırılmış kural setleri sunar. Bu kural setleri, yaygın tehditlere karşı koruma sağlar ve yeni güvenlik açıklarını ele almak için düzenli olarak güncellenir.
IP Seti
IP Seti, izin vermek veya engellemek istediğiniz IP adresleri veya IP adresi aralıklarının bir listesidir. IP setleri, IP tabanlı kuralları yönetmeyi kolaylaştırır.
Regex Desen Seti
Regex Desen Seti, web isteklerinde aramak için desenleri tanımlayan bir veya daha fazla düzenli ifade (regex) içerir. Bu, belirli karakter dizilerini filtrelemek gibi daha karmaşık eşleştirme senaryoları için yararlıdır.
Kilit Tokeni
Kilit Tokeni, WAF kaynaklarını güncellerken eşzamanlılık kontrolü için kullanılır. Bu, değişikliklerin birden fazla kullanıcı veya işlemin aynı kaynağı güncellemeye çalışırken kazara üzerine yazılmadığından emin olmasını sağlar.
API Anahtarları
AWS WAF’deki API Anahtarları, belirli API işlemlerine yapılan istekleri kimlik doğrulamak için kullanılır. Bu anahtarlar şifrelenir ve güvenli bir şekilde yönetilir, böylece yalnızca yetkili kullanıcıların WAF yapılandırmalarında değişiklik yapabilmesi sağlanır.
- Örnek: CAPTCHA API’sinin entegrasyonu.
İzin Politikası
İzin Politikası, AWS WAF kaynakları üzerinde hangi eylemlerin gerçekleştirilebileceğini belirten bir IAM politikasını ifade eder. İzinleri tanımlayarak, WAF kaynaklarına erişimi kontrol edebilir ve yalnızca yetkili kullanıcıların yapılandırmaları oluşturmasını, güncellemesini veya silmesini sağlayabilirsiniz.
Kapsam
AWS WAF’deki kapsam parametresi, WAF kurallarının ve yapılandırmalarının bölgesel bir uygulamaya veya bir Amazon CloudFront dağıtımına uygulanıp uygulanmadığını belirtir.
- BÖLGESEL: Uygulama Yük Dengeleyicileri (ALB), Amazon API Gateway REST API, AWS AppSync GraphQL API, Amazon Cognito kullanıcı havuzu, AWS App Runner hizmeti ve AWS Doğrulanmış Erişim örneği gibi bölgesel hizmetlere uygulanır. Bu kaynakların bulunduğu AWS bölgesini belirtirsiniz.
- CLOUDFRONT: Amazon CloudFront dağıtımlarına uygulanır, bu dağıtımlar küreseldir. CloudFront için WAF yapılandırmaları, içeriğin nerede sunulduğuna bakılmaksızın
us-east-1bölgesi üzerinden yönetilir.
Temel özellikler
İzleme Kriterleri (Koşullar)
Koşullar, AWS WAF’nin izlediği gelen HTTP/HTTPS isteklerinin unsurlarını belirtir; bunlar arasında XSS, coğrafi konum (GEO), IP adresleri, Boyut kısıtlamaları, SQL Enjeksiyonu ve desenler (dizeler ve regex eşleştirme) bulunur. Ülkeye dayalı olarak CloudFront seviyesinde kısıtlanan isteklerin WAF’ye ulaşmayacağını belirtmek önemlidir.
Her AWS hesabı şunları yapılandırabilir:
- Her tür için 100 koşul (Regex için yalnızca 10 koşul izin verilir, ancak bu limit artırılabilir).
- 100 kural ve 50 Web ACL.
- Maksimum 5 oran tabanlı kural.
- Uygulama yük dengeleyicisi ile WAF uygulandığında saniyede 10,000 istek.
Kural eylemleri
Her kural için eylemler atanır ve seçenekler şunlardır:
- İzin Ver: İstek, uygun CloudFront dağıtımına veya Uygulama Yük Dengeleyicisine iletilir.
- Engelle: İstek hemen sonlandırılır.
- Say: Kuralın koşullarını karşılayan istekleri sayar. Bu, kural testleri için yararlıdır, kuralın doğruluğunu onaylamak için İzin Ver veya Engelle olarak ayarlamadan önce.
- CAPTCHA ve Challenge: İsteğin bir bot tarafından gelmediği, CAPTCHA bulmacaları ve sessiz zorluklar kullanılarak doğrulanır.
Web ACL içindeki hiçbir kuralla eşleşmeyen bir istek, varsayılan eylem (İzin Ver veya Engelle) ile işlenir. Bir Web ACL içinde tanımlanan kural yürütme sırası kritik öneme sahiptir ve genellikle şu sırayı izler:
- Beyaz listeye alınmış IP’leri izin ver.
- Kara listeye alınmış IP’leri engelle.
- Zararlı imzalara uyan istekleri engelle.
CloudWatch Entegrasyonu
AWS WAF, izleme için CloudWatch ile entegre olur ve AllowedRequests, BlockedRequests, CountedRequests ve PassedRequests gibi metrikler sunar. Bu metrikler varsayılan olarak her dakika raporlanır ve iki hafta boyunca saklanır.
Sayım
CloudFront dağıtımlarıyla etkileşimde bulunmak için, US East (N. Virginia) Bölgesini belirtmelisiniz:
- CLI - CloudFront kapsamını kullanırken US East Bölgesini belirtin:
--scope CLOUDFRONT --region=us-east-1. - API ve SDK’lar - Tüm çağrılar için, us-east-1 Bölge uç noktasını kullanın.
Bölgesel hizmetlerle etkileşimde bulunmak için, bölgeyi belirtmelisiniz:
- Bölge Avrupa (İspanya) ile örnek:
--scope REGIONAL --region=eu-south-2
# 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
Bir saldırganın perspektifinden, bu hizmet saldırgana WAF korumalarını ve diğer web sitelerini tehlikeye atmasına yardımcı olabilecek ağ açıklarını tanımlamasında yardımcı olabilir.
Ancak, bir saldırgan bu hizmeti kesintiye uğratmakla da ilgilenebilir, böylece web siteleri WAF tarafından korunmaz.
Çoğu Silme ve Güncelleme işlemlerinde lock token sağlamak gerekli olacaktır. Bu token, kaynaklar üzerinde eşzamanlılık kontrolü için kullanılır ve değişikliklerin birden fazla kullanıcı veya işlemin aynı kaynağı güncellemeye çalışırken kazara üzerine yazılmasını önler. Bu token’ı elde etmek için, belirli kaynak üzerinde ilgili list veya get işlemlerini gerçekleştirebilirsiniz.
wafv2:CreateRuleGroup, wafv2:UpdateRuleGroup, wafv2:DeleteRuleGroup
Bir saldırgan, etkilenen kaynağın güvenliğini tehlikeye atabilir:
- Örneğin, meşru IP adreslerinden gelen meşru trafiği engelleyebilecek kural grupları oluşturarak, hizmet reddine neden olabilir.
- Kural gruplarını güncelleyerek, örneğin eylemlerini Block’tan Allow’a değiştirebilir.
- Kritik güvenlik önlemleri sağlayan kural gruplarını silerek.
# 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>
Aşağıdaki örnekler, belirli IP adreslerinden gelen meşru trafiği engelleyecek bir kural grubunu göstermektedir:
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
rule.json dosyası şöyle görünecektir:
[
{
"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"
}
}
]
Potansiyel Etki: Yetkisiz erişim, veri ihlalleri ve potansiyel DoS saldırıları.
wafv2:CreateWebACL, wafv2:UpdateWebACL, wafv2:DeleteWebACL
Bu izinlerle, bir saldırgan şunları yapabilir:
- Kötü niyetli trafiği geçiren veya meşru trafiği engelleyen kurallar ekleyerek yeni bir Web ACL oluşturmak, bu da WAF’ı işe yaramaz hale getirir veya hizmet reddine neden olur.
- Mevcut Web ACL’leri güncelleyerek, daha önce engellenmiş SQL enjeksiyonu veya çapraz site betikleme gibi saldırılara izin verecek şekilde kuralları değiştirmek veya geçerli istekleri engelleyerek normal trafik akışını bozmak.
- Bir Web ACL’yi silmek, etkilenen kaynakları tamamen korumasız bırakmak ve geniş bir web saldırısı yelpazesine maruz bırakmak.
Note
Belirtilen WebACL’yi yalnızca ManagedByFirewallManager false ise silebilirsiniz.
# 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>
Aşağıdaki örnekler, belirli bir IP kümesinden gelen meşru trafiği engellemek için bir Web ACL’sini nasıl güncelleyeceğinizi göstermektedir. Eğer kaynak IP bu IP’lerden hiçbiriyle eşleşmiyorsa, varsayılan eylem de onu engellemek olacaktır ve bu bir DoS’a neden olabilir.
Orijinal Web ACL:
{
"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"
}
Web ACL’yi güncellemek için komut:
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
rule.json dosyası şöyle görünecektir:
[
{
"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"
}
}
]
Potansiyel Etki: Yetkisiz erişim, veri ihlalleri ve potansiyel DoS saldırıları.
wafv2:AssociateWebACL, wafv2:DisassociateWebACL
wafv2:AssociateWebACL izni, bir saldırganın web ACL’lerini (Erişim Kontrol Listeleri) kaynaklarla ilişkilendirmesine olanak tanır, böylece güvenlik kontrollerini atlayarak yetkisiz trafiğin uygulamaya ulaşmasına izin verir ve bu da SQL enjeksiyonu veya cross-site scripting (XSS) gibi istismarlarla sonuçlanabilir. Tersine, wafv2:DisassociateWebACL izni ile saldırgan, güvenlik korumalarını geçici olarak devre dışı bırakabilir ve kaynakları tespit edilmeden zafiyetlere maruz bırakabilir.
Korunan kaynak türüne bağlı olarak ek izinler gerekecektir:
- İlişkilendir
- apigateway:SetWebACL
- apprunner:AssociateWebAcl
- appsync:SetWebACL
- cognito-idp:AssociateWebACL
- ec2:AssociateVerifiedAccessInstanceWebAcl
- elasticloadbalancing:SetWebAcl
- Ayrıştır
- apigateway:SetWebACL
- apprunner:DisassociateWebAcl
- appsync:SetWebACL
- cognito-idp:DisassociateWebACL
- ec2:DisassociateVerifiedAccessInstanceWebAcl
- elasticloadbalancing:SetWebAcl
# Associate
aws wafv2 associate-web-acl --web-acl-arn <value> --resource-arn <value>
# Disassociate
aws wafv2 disassociate-web-acl --resource-arn <value>
Potansiyel Etki: Kompromize olmuş kaynak güvenliği, istismar riski artışı ve AWS WAF ile korunan AWS ortamlarında potansiyel hizmet kesintileri.
wafv2:CreateIPSet , wafv2:UpdateIPSet, wafv2:DeleteIPSet
Bir saldırgan, AWS WAF tarafından yönetilen IP setlerini oluşturma, güncelleme ve silme yeteneğine sahip olacaktır. Bu tehlikeli olabilir çünkü kötü niyetli trafiğe izin vermek için yeni IP setleri oluşturabilir, meşru trafiği engellemek amacıyla IP setlerini değiştirebilir, kötü niyetli IP adreslerini içerecek şekilde mevcut IP setlerini güncelleyebilir, güvenilir IP adreslerini kaldırabilir veya kritik kaynakları korumak için tasarlanmış önemli IP setlerini silebilir.
# 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>
Aşağıdaki örnek, istenen IP seti ile mevcut IP setini nasıl geçersiz kılacağınızı göstermektedir:
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
Potansiyel Etki: Yetkisiz erişim ve meşru trafiğin engellenmesi.
wafv2:CreateRegexPatternSet , wafv2:UpdateRegexPatternSet, wafv2:DeleteRegexPatternSet
Bu izinlere sahip bir saldırgan, AWS WAF tarafından kullanılan düzenli ifade desen setlerini manipüle ederek gelen trafiği belirli desenlere göre kontrol etme ve filtreleme yeteneğine sahip olacaktır.
- Yeni regex desenleri oluşturmak, bir saldırgana zararlı içeriği kabul ettirme konusunda yardımcı olur.
- Mevcut desenleri güncelleyerek, bir saldırgan güvenlik kurallarını atlatabilir.
- Kötü niyetli faaliyetleri engellemek için tasarlanmış desenleri silmek, bir saldırganın zararlı yükler göndermesine ve güvenlik önlemlerini atlatmasına yol açabilir.
# 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>
Potansiyel Etki: Güvenlik kontrollerini aşmak, kötü niyetli içeriğe izin vermek ve potansiyel olarak hassas verileri açığa çıkarmak veya AWS WAF tarafından korunan hizmetleri ve kaynakları kesintiye uğratmak.
(wavf2:PutLoggingConfiguration & iam:CreateServiceLinkedRole), wafv2:DeleteLoggingConfiguration
wafv2:DeleteLoggingConfiguration iznine sahip bir saldırgan, belirtilen Web ACL’den günlükleme yapılandırmasını kaldırabilir. Ardından, wavf2:PutLoggingConfiguration ve iam:CreateServiceLinkedRole izinleri ile bir saldırgan, günlükleme yapılandırmalarını oluşturabilir veya değiştirebilir (silindikten sonra) ya günlüklemeyi tamamen engellemek ya da günlükleri yetkisiz hedeflere, örneğin Amazon S3 bucket’larına, Amazon CloudWatch Logs günlük grubuna veya kontrol altındaki bir Amazon Kinesis Data Firehose’a yönlendirmek için.
Oluşturma süreci sırasında, hizmet, belirtilen günlükleme hedefine günlüklerin yazılmasına izin vermek için gerekli izinleri otomatik olarak ayarlar:
- Amazon CloudWatch Logs: AWS WAF, belirlenen CloudWatch Logs günlük grubunda bir kaynak politikası oluşturur. Bu politika, AWS WAF’ın günlükleri günlük grubuna yazmak için gerekli izinlere sahip olmasını sağlar.
- Amazon S3 Bucket: AWS WAF, belirlenen S3 bucket’ında bir bucket politikası oluşturur. Bu politika, AWS WAF’a belirtilen bucket’a günlük yüklemek için gerekli izinleri verir.
- Amazon Kinesis Data Firehose: AWS WAF, Kinesis Data Firehose ile etkileşimde bulunmak için özel olarak bir hizmet bağlantılı rol oluşturur. Bu rol, AWS WAF’ın yapılandırılmış Firehose akışına günlükleri iletmesine olanak tanır.
Note
Her web ACL için yalnızca bir günlükleme hedefi tanımlamak mümkündür.
# 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>]
Potansiyel Etki: Güvenlik olaylarına dair görünürlüğü belirsizleştirir, olay yanıt sürecini zorlaştırır ve AWS WAF ile korunan ortamlarda gizli kötü niyetli faaliyetleri kolaylaştırır.
wafv2:DeleteAPIKey
Bu izinlere sahip bir saldırgan, mevcut API anahtarlarını silebilir, bu da CAPTCHA’nın etkisiz hale gelmesine ve form gönderimleri ve erişim kontrolleri gibi buna bağlı işlevlerin kesintiye uğramasına neden olur. Bu CAPTCHA’nın uygulanmasına bağlı olarak, bu ya bir CAPTCHA atlatmasına ya da kaynakta hata yönetimi düzgün ayarlanmamışsa bir DoS’a yol açabilir.
# Delete API key
aws wafv2 delete-api-key --api-key <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
Potansiyel Etki: CAPTCHA korumalarını devre dışı bırakma veya uygulama işlevselliğini bozma, güvenlik ihlallerine ve potansiyel veri hırsızlığına yol açabilir.
wafv2:TagResource, wafv2:UntagResource
Bir saldırgan, AWS WAFv2 kaynaklarından, örneğin Web ACL’leri, kural grupları, IP setleri, regex desen setleri ve günlükleme yapılandırmalarından etiket ekleyebilir, değiştirebilir veya kaldırabilir.
# Tag
aws wafv2 tag-resource --resource-arn <value> --tags <value>
# Untag
aws wafv2 untag-resource --resource-arn <value> --tag-keys <value>
Olası Etki: Kaynak manipülasyonu, bilgi sızıntısı, maliyet manipülasyonu ve operasyonel kesinti.
Referanslar
- https://www.citrusconsulting.com/aws-web-application-firewall-waf/#:~:text=Conditions%20allow%20you%20to%20specify,user%20via%20a%20web%20application
- https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

