AWS - WAF Enum
Reading time: 22 minutes
AWS - WAF Enum
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
AWS WAF
AWS WAF एक वेब एप्लिकेशन फ़ायरवॉल है जिसे वेब एप्लिकेशन या APIs को विभिन्न वेब हमलों से सुरक्षित रखने के लिए डिज़ाइन किया गया है जो उनकी उपलब्धता, सुरक्षा या संसाधन खपत को प्रभावित कर सकते हैं। यह उपयोगकर्ताओं को सुरक्षा नियम स्थापित करके आने वाले ट्रैफ़िक को नियंत्रित करने की शक्ति देता है जो SQL इंजेक्शन या क्रॉस-साइट स्क्रिप्टिंग जैसे सामान्य हमले के वेक्टर को कम करता है और कस्टम फ़िल्टरिंग नियमों को परिभाषित करके भी।
Key concepts
Web ACL (Access Control List)
Web ACL नियमों का एक संग्रह है जिसे आप अपने वेब एप्लिकेशन या APIs पर लागू कर सकते हैं। जब आप एक Web ACL को एक संसाधन के साथ जोड़ते हैं, तो AWS WAF आने वाले अनुरोधों का निरीक्षण करता है जो Web ACL में परिभाषित नियमों के आधार पर होते हैं और निर्दिष्ट क्रियाएँ करता है।
Rule Group
Rule Group नियमों का एक पुन: प्रयोज्य संग्रह है जिसे आप कई Web ACLs पर लागू कर सकते हैं। नियम समूह विभिन्न वेब एप्लिकेशन या APIs के बीच लगातार नियम सेट को प्रबंधित और बनाए रखने में मदद करते हैं।
प्रत्येक नियम समूह का अपना संबंधित क्षमता होती है, जो आपके नियमों, नियम समूहों और वेब ACLs को चलाने के लिए उपयोग किए जाने वाले संचालन संसाधनों की गणना और नियंत्रण में मदद करती है। एक बार जब इसका मान निर्माण के दौरान सेट किया जाता है, तो इसे संशोधित करना संभव नहीं होता।
Rule
एक नियम उन शर्तों का एक सेट परिभाषित करता है जिसका उपयोग AWS WAF आने वाले वेब अनुरोधों का निरीक्षण करने के लिए करता है। नियमों के दो मुख्य प्रकार हैं:
- Regular Rule: यह नियम प्रकार निर्दिष्ट शर्तों का उपयोग करता है यह निर्धारित करने के लिए कि वेब अनुरोधों को अनुमति दी जाए, अवरुद्ध किया जाए, या गिना जाए।
- Rate-Based Rule: एक विशेष IP पते से पांच मिनट की अवधि में अनुरोधों की गिनती करता है। यहां, उपयोगकर्ता एक सीमा परिभाषित करते हैं, और यदि किसी IP से अनुरोधों की संख्या इस सीमा को पांच मिनट के भीतर पार कर जाती है, तो उस IP से आने वाले अगले अनुरोधों को अवरुद्ध कर दिया जाता है जब तक कि अनुरोध दर सीमा के नीचे नहीं गिरती। दर-आधारित नियमों के लिए न्यूनतम सीमा 2000 अनुरोध है।
Managed Rules
AWS WAF पूर्व-निर्धारित, प्रबंधित नियम सेट प्रदान करता है जो AWS और AWS Marketplace विक्रेताओं द्वारा बनाए रखे जाते हैं। ये नियम सेट सामान्य खतरों के खिलाफ सुरक्षा प्रदान करते हैं और नए कमजोरियों को संबोधित करने के लिए नियमित रूप से अपडेट किए जाते हैं।
IP Set
IP Set उन IP पतों या IP पते की रेंज की एक सूची है जिन्हें आप अनुमति देना या अवरुद्ध करना चाहते हैं। IP सेट IP-आधारित नियमों को प्रबंधित करने की प्रक्रिया को सरल बनाते हैं।
Regex Pattern Set
एक Regex Pattern Set में एक या एक से अधिक नियमित अभिव्यक्तियाँ (regex) होती हैं जो वेब अनुरोधों में खोजने के लिए पैटर्न को परिभाषित करती हैं। यह अधिक जटिल मिलान परिदृश्यों के लिए उपयोगी है, जैसे कि विशेष वर्णों के अनुक्रम को फ़िल्टर करना।
Lock Token
Lock Token का उपयोग WAF संसाधनों को अपडेट करते समय समवर्ती नियंत्रण के लिए किया जाता है। यह सुनिश्चित करता है कि परिवर्तन गलती से कई उपयोगकर्ताओं या प्रक्रियाओं द्वारा एक ही संसाधन को एक साथ अपडेट करने के प्रयास में अधिलेखित नहीं होते हैं।
API Keys
AWS WAF में API Keys का उपयोग कुछ API संचालन के लिए अनुरोधों को प्रमाणित करने के लिए किया जाता है। ये कुंजी एन्क्रिप्टेड होती हैं और सुरक्षित रूप से प्रबंधित की जाती हैं ताकि पहुंच को नियंत्रित किया जा सके और यह सुनिश्चित किया जा सके कि केवल अधिकृत उपयोगकर्ता WAF कॉन्फ़िगरेशन में परिवर्तन कर सकें।
- Example: CAPTCHA API का एकीकरण।
Permission Policy
एक Permission Policy एक IAM नीति है जो यह निर्दिष्ट करती है कि कौन AWS WAF संसाधनों पर क्रियाएँ कर सकता है। अनुमतियों को परिभाषित करके, आप WAF संसाधनों तक पहुंच को नियंत्रित कर सकते हैं और यह सुनिश्चित कर सकते हैं कि केवल अधिकृत उपयोगकर्ता कॉन्फ़िगरेशन बना, अपडेट या हटा सकें।
Scope
AWS WAF में स्कोप पैरामीटर यह निर्दिष्ट करता है कि क्या WAF नियम और कॉन्फ़िगरेशन क्षेत्रीय एप्लिकेशन या Amazon CloudFront वितरण पर लागू होते हैं।
- REGIONAL: क्षेत्रीय सेवाओं पर लागू होता है जैसे कि एप्लिकेशन लोड बैलेंसर (ALB), Amazon API गेटवे REST API, AWS AppSync GraphQL API, Amazon Cognito उपयोगकर्ता पूल, AWS App Runner सेवा और AWS Verified Access उदाहरण। आप उस AWS क्षेत्र को निर्दिष्ट करते हैं जहां ये संसाधन स्थित हैं।
- CLOUDFRONT: Amazon CloudFront वितरण पर लागू होता है, जो वैश्विक होते हैं। CloudFront के लिए WAF कॉन्फ़िगरेशन
us-east-1
क्षेत्र के माध्यम से प्रबंधित होते हैं चाहे सामग्री कहीं भी सेवा दी जाए।
Key features
Monitoring Criteria (Conditions)
Conditions उन तत्वों को निर्दिष्ट करते हैं जिनका AWS WAF निरीक्षण करता है, जिसमें XSS, भौगोलिक स्थान (GEO), IP पते, आकार की सीमाएँ, SQL इंजेक्शन, और पैटर्न (स्ट्रिंग और regex मिलान) शामिल हैं। यह ध्यान रखना महत्वपूर्ण है कि देश के आधार पर CloudFront स्तर पर प्रतिबंधित अनुरोध WAF तक नहीं पहुँचेंगे।
प्रत्येक AWS खाता कॉन्फ़िगर कर सकता है:
- 100 शर्तें प्रत्येक प्रकार के लिए (Regex के लिए, जहां केवल 10 शर्तें अनुमति दी जाती हैं, लेकिन इस सीमा को बढ़ाया जा सकता है)।
- 100 नियम और 50 Web ACLs।
- अधिकतम 5 दर-आधारित नियम।
- जब WAF को एक एप्लिकेशन लोड बैलेंसर के साथ लागू किया जाता है, तो 10,000 अनुरोध प्रति सेकंड की थ्रूपुट।
Rule actions
प्रत्येक नियम को क्रियाएँ असाइन की जाती हैं, विकल्प होते हैं:
- Allow: अनुरोध को उचित CloudFront वितरण या एप्लिकेशन लोड बैलेंसर पर अग्रेषित किया जाता है।
- Block: अनुरोध को तुरंत समाप्त कर दिया जाता है।
- Count: नियम की शर्तों को पूरा करने वाले अनुरोधों की गिनती करता है। यह नियम परीक्षण के लिए उपयोगी है, नियम की सटीकता की पुष्टि करने के लिए इससे पहले कि इसे Allow या Block पर सेट किया जाए।
- CAPTCHA and Challenge: यह सत्यापित किया जाता है कि अनुरोध बॉट से नहीं आता है, CAPTCHA पहेलियों और चुपचाप चुनौतियों का उपयोग करके।
यदि कोई अनुरोध Web ACL के भीतर किसी भी नियम से मेल नहीं खाता है, तो यह डिफ़ॉल्ट क्रिया (Allow या Block) के अधीन होता है। नियम निष्पादन का क्रम, जो Web ACL के भीतर परिभाषित होता है, महत्वपूर्ण है और आमतौर पर इस अनुक्रम का पालन करता है:
- Whitelisted IPs को अनुमति दें।
- Blacklisted IPs को अवरुद्ध करें।
- किसी भी हानिकारक हस्ताक्षरों से मेल खाने वाले अनुरोधों को अवरुद्ध करें।
CloudWatch Integration
AWS WAF CloudWatch के साथ एकीकृत होता है, निगरानी के लिए, जैसे AllowedRequests, BlockedRequests, CountedRequests, और PassedRequests जैसे मैट्रिक्स प्रदान करता है। ये मैट्रिक्स डिफ़ॉल्ट रूप से हर मिनट रिपोर्ट किए जाते हैं और दो सप्ताह की अवधि के लिए बनाए रखे जाते हैं।
Enumeration
CloudFront वितरण के साथ बातचीत करने के लिए, आपको क्षेत्र US East (N. Virginia) निर्दिष्ट करना होगा:
- CLI - जब आप CloudFront स्कोप का उपयोग करते हैं तो क्षेत्र US East निर्दिष्ट करें:
--scope CLOUDFRONT --region=us-east-1
। - API और SDKs - सभी कॉल के लिए, क्षेत्र अंत बिंदु us-east-1 का उपयोग करें।
क्षेत्रीय सेवाओं के साथ बातचीत करने के लिए, आपको क्षेत्र निर्दिष्ट करना चाहिए:
- क्षेत्र यूरोप (स्पेन) के साथ उदाहरण:
--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>
पोस्ट एक्सप्लोइटेशन / बायपास
tip
हमलावर के दृष्टिकोण से, यह सेवा हमलावर को WAF सुरक्षा और नेटवर्क एक्सपोजर की पहचान करने में मदद कर सकती है जो उसे अन्य वेब को समझौता करने में मदद कर सकती है।
हालाँकि, एक हमलावर इस सेवा को बाधित करने में भी रुचि रख सकता है ताकि वेब WAF द्वारा सुरक्षित न हों।
Delete और Update ऑपरेशनों में लॉक टोकन प्रदान करना आवश्यक होगा। यह टोकन संसाधनों पर समवर्ती नियंत्रण के लिए उपयोग किया जाता है, यह सुनिश्चित करते हुए कि परिवर्तन कई उपयोगकर्ताओं या प्रक्रियाओं द्वारा एक ही संसाधन को एक साथ अपडेट करने के प्रयास में गलती से अधिलेखित नहीं होते हैं। इस टोकन को प्राप्त करने के लिए आप विशिष्ट संसाधन पर संबंधित सूची या प्राप्त ऑपरेशनों को कर सकते हैं।
wafv2:CreateRuleGroup
, wafv2:UpdateRuleGroup
, wafv2:DeleteRuleGroup
एक हमलावर प्रभावित संसाधन की सुरक्षा को समझौता करने में सक्षम होगा:
- नियम समूह बनाना जो, उदाहरण के लिए, वैध IP पते से वैध ट्रैफ़िक को ब्लॉक कर सकता है, जिससे सेवा का इनकार होता है।
- नियम समूहों को अपडेट करना, इसके कार्यों को ब्लॉक से अनुमति में संशोधित करने में सक्षम होना।
- उन नियम समूहों को हटाना जो महत्वपूर्ण सुरक्षा उपाय प्रदान करते हैं।
# 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>
निम्नलिखित उदाहरण एक नियम समूह को दिखाता है जो विशिष्ट IP पतों से वैध ट्रैफ़िक को ब्लॉक करेगा:
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 फ़ाइल इस तरह दिखेगी:
[
{
"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"
}
}
]
संभावित प्रभाव: अनधिकृत पहुंच, डेटा उल्लंघन, और संभावित DoS हमले।
wafv2:CreateWebACL
, wafv2:UpdateWebACL
, wafv2:DeleteWebACL
इन अनुमतियों के साथ, एक हमलावर सक्षम होगा:
- एक नया Web ACL बनाना, नियमों को पेश करना जो या तो दुर्भावनापूर्ण ट्रैफ़िक को अनुमति देते हैं या वैध ट्रैफ़िक को ब्लॉक करते हैं, प्रभावी रूप से WAF को बेकार बना देते हैं या सेवा का इनकार करते हैं।
- मौजूदा Web ACLs को अपडेट करना, हमलों की अनुमति देने के लिए नियमों को संशोधित करने में सक्षम होना जैसे SQL इंजेक्शन या क्रॉस-साइट स्क्रिप्टिंग, जिन्हें पहले ब्लॉक किया गया था, या वैध अनुरोधों को ब्लॉक करके सामान्य ट्रैफ़िक प्रवाह को बाधित करना।
- एक Web ACL को हटाना, प्रभावित संसाधनों को पूरी तरह से असुरक्षित छोड़ना, इसे वेब हमलों की एक विस्तृत श्रृंखला के लिए उजागर करना।
note
आप केवल निर्दिष्ट WebACL को हटा सकते हैं यदि ManagedByFirewallManager गलत है।
# 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>
निम्नलिखित उदाहरण दिखाता है कि कैसे एक Web ACL को एक विशिष्ट IP सेट से वैध ट्रैफ़िक को ब्लॉक करने के लिए अपडेट किया जाए। यदि मूल IP उन IPs में से किसी से मेल नहीं खाता है, तो डिफ़ॉल्ट क्रिया भी इसे ब्लॉक करना होगा, जिससे DoS होगा।
मूल 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 को अपडेट करने के लिए कमांड:
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 फ़ाइल इस तरह दिखेगी:
[
{
"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"
}
}
]
संभावित प्रभाव: अनधिकृत पहुंच, डेटा उल्लंघन, और संभावित DoS हमले।
wafv2:AssociateWebACL
, wafv2:DisassociateWebACL
wafv2:AssociateWebACL
अनुमति एक हमलावर को वेब ACLs (एक्सेस कंट्रोल लिस्ट) को संसाधनों के साथ जोड़ने की अनुमति देगी, जिससे सुरक्षा नियंत्रणों को बायपास किया जा सकेगा, अनधिकृत ट्रैफ़िक को एप्लिकेशन तक पहुँचने की अनुमति मिलेगी, जो संभावित रूप से SQL इंजेक्शन या क्रॉस-साइट स्क्रिप्टिंग (XSS) जैसे शोषणों की ओर ले जा सकता है। इसके विपरीत, wafv2:DisassociateWebACL
अनुमति के साथ, हमलावर अस्थायी रूप से सुरक्षा सुरक्षा को निष्क्रिय कर सकता है, संसाधनों को बिना पहचान के कमजोरियों के लिए उजागर कर सकता है।
संरक्षित संसाधन प्रकार के आधार पर अतिरिक्त अनुमतियों की आवश्यकता होगी:
- Associate
- apigateway:SetWebACL
- apprunner:AssociateWebAcl
- appsync:SetWebACL
- cognito-idp:AssociateWebACL
- ec2:AssociateVerifiedAccessInstanceWebAcl
- elasticloadbalancing:SetWebAcl
- Disassociate
- 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>
संभावित प्रभाव: संसाधनों की सुरक्षा का समझौता, शोषण का बढ़ा हुआ जोखिम, और AWS WAF द्वारा संरक्षित AWS वातावरण में संभावित सेवा व्यवधान।
wafv2:CreateIPSet
, wafv2:UpdateIPSet
, wafv2:DeleteIPSet
एक हमलावर AWS WAF द्वारा प्रबंधित IP सेट बनाने, अपडेट करने और हटाने में सक्षम होगा। यह खतरनाक हो सकता है क्योंकि यह दुर्भावनापूर्ण ट्रैफ़िक की अनुमति देने के लिए नए IP सेट बना सकता है, वैध ट्रैफ़िक को ब्लॉक करने के लिए IP सेट को संशोधित कर सकता है, दुर्भावनापूर्ण IP पतों को शामिल करने के लिए मौजूदा IP सेट को अपडेट कर सकता है, विश्वसनीय IP पतों को हटा सकता है या महत्वपूर्ण संसाधनों की सुरक्षा के लिए बनाए गए महत्वपूर्ण IP सेट को हटा सकता है।
# 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>
निम्नलिखित उदाहरण दिखाता है कि इच्छित IP सेट द्वारा मौजूदा IP सेट को कैसे ओवरराइट करें:
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
संभावित प्रभाव: अनधिकृत पहुंच और वैध ट्रैफ़िक का अवरोध।
wafv2:CreateRegexPatternSet
, wafv2:UpdateRegexPatternSet
, wafv2:DeleteRegexPatternSet
इन अनुमतियों के साथ एक हमलावर AWS WAF द्वारा उपयोग किए जाने वाले नियमित अभिव्यक्ति पैटर्न सेट को नियंत्रित और फ़िल्टर करने के लिए हेरफेर कर सकेगा, जो विशिष्ट पैटर्न के आधार पर आने वाले ट्रैफ़िक को नियंत्रित करता है।
- नए regex पैटर्न बनाना एक हमलावर को हानिकारक सामग्री की अनुमति देने में मदद करेगा
- मौजूदा पैटर्न को अपडेट करने पर, एक हमलावर सुरक्षा नियमों को बायपास कर सकेगा
- उन पैटर्न को हटाना जो दुर्भावनापूर्ण गतिविधियों को अवरुद्ध करने के लिए डिज़ाइन किए गए हैं, एक हमलावर को दुर्भावनापूर्ण पेलोड भेजने और सुरक्षा उपायों को बायपास करने की अनुमति दे सकता है।
# 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>
संभावित प्रभाव: सुरक्षा नियंत्रणों को बायपास करना, दुर्भावनापूर्ण सामग्री की अनुमति देना और संभावित रूप से संवेदनशील डेटा को उजागर करना या AWS WAF द्वारा संरक्षित सेवाओं और संसाधनों को बाधित करना।
(wavf2:PutLoggingConfiguration
& iam:CreateServiceLinkedRole
), wafv2:DeleteLoggingConfiguration
एक हमलावर के पास wafv2:DeleteLoggingConfiguration
होने पर वह निर्दिष्ट वेब ACL से लॉगिंग कॉन्फ़िगरेशन को हटा सकता है। इसके बाद, wavf2:PutLoggingConfiguration
और iam:CreateServiceLinkedRole
अनुमतियों के साथ, एक हमलावर लॉगिंग कॉन्फ़िगरेशन बना या बदल सकता है (इसे हटाने के बाद) ताकि या तो लॉगिंग को पूरी तरह से रोका जा सके या लॉग को अनधिकृत गंतव्यों की ओर पुनर्निर्देशित किया जा सके, जैसे कि Amazon S3 बकेट, Amazon CloudWatch Logs लॉग समूह या एक Amazon Kinesis Data Firehose के तहत नियंत्रण।
निर्माण प्रक्रिया के दौरान, सेवा स्वचालित रूप से आवश्यक अनुमतियों को सेट करती है ताकि लॉग को निर्दिष्ट लॉगिंग गंतव्य पर लिखा जा सके:
- Amazon CloudWatch Logs: AWS WAF निर्दिष्ट CloudWatch Logs लॉग समूह पर एक संसाधन नीति बनाता है। यह नीति सुनिश्चित करती है कि AWS WAF के पास लॉग समूह में लॉग लिखने के लिए आवश्यक अनुमतियाँ हैं।
- Amazon S3 बकेट: AWS WAF निर्दिष्ट S3 बकेट पर एक बकेट नीति बनाता है। यह नीति AWS WAF को निर्दिष्ट बकेट में लॉग अपलोड करने के लिए आवश्यक अनुमतियाँ प्रदान करती है।
- Amazon Kinesis Data Firehose: AWS WAF Kinesis Data Firehose के साथ बातचीत करने के लिए विशेष रूप से एक सेवा-लिंक्ड भूमिका बनाता है। यह भूमिका AWS WAF को कॉन्फ़िगर की गई Firehose स्ट्रीम में लॉग वितरित करने की अनुमति देती है।
note
प्रत्येक वेब ACL के लिए केवल एक लॉगिंग गंतव्य को परिभाषित करना संभव है।
# 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>]
संभावित प्रभाव: सुरक्षा घटनाओं में अस्पष्ट दृश्यता, घटना प्रतिक्रिया प्रक्रिया को कठिन बनाना, और AWS WAF-सुरक्षित वातावरण में गुप्त दुर्भावनापूर्ण गतिविधियों को सुविधाजनक बनाना।
wafv2:DeleteAPIKey
इस अनुमति के साथ एक हमलावर मौजूदा API कुंजियों को हटा सकता है, जिससे CAPTCHA अप्रभावी हो जाता है और इसके आधार पर कार्यक्षमता बाधित होती है, जैसे कि फॉर्म सबमिशन और पहुंच नियंत्रण। इस CAPTCHA के कार्यान्वयन के आधार पर, यह या तो CAPTCHA बायपास की ओर ले जा सकता है या यदि संसाधन में त्रुटि प्रबंधन सही तरीके से सेट नहीं किया गया है तो DoS की ओर।
# Delete API key
aws wafv2 delete-api-key --api-key <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
संभावित प्रभाव: CAPTCHA सुरक्षा को निष्क्रिय करना या एप्लिकेशन की कार्यक्षमता को बाधित करना, जिससे सुरक्षा उल्लंघन और संभावित डेटा चोरी हो सकती है।
wafv2:TagResource
, wafv2:UntagResource
एक हमलावर AWS WAFv2 संसाधनों, जैसे कि वेब ACLs, नियम समूह, IP सेट, regex पैटर्न सेट, और लॉगिंग कॉन्फ़िगरेशन से टैग जोड़ने, संशोधित करने या हटाने में सक्षम होगा।
# Tag
aws wafv2 tag-resource --resource-arn <value> --tags <value>
# Untag
aws wafv2 untag-resource --resource-arn <value> --tag-keys <value>
संभावित प्रभाव: संसाधन छेड़छाड़, जानकारी का रिसाव, लागत हेरफेर और संचालन में विघटन।
संदर्भ
- 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 हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।