Az - Unauthenticated Enum & Initial Entry

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

एज़्यूर टेनेंट

टेनेंट एनुमरेशन

कुछ सार्वजनिक एज़्यूर एपीआई हैं जिन्हें एक हमलावर केवल टेनेंट के डोमेन को जानते हुए क्वेरी कर सकता है ताकि उसके बारे में अधिक जानकारी जुटा सके। आप सीधे एपीआई क्वेरी कर सकते हैं या PowerShell पुस्तकालय AADInternals** का उपयोग कर सकते हैं**:

एपीआईजानकारीAADInternals फ़ंक्शन

login.microsoftonline.com/<domain>/.well-known/openid-configuration

लॉगिन जानकारी, टेनेंट आईडी सहित

Get-AADIntTenantID -Domain <domain>

autodiscover-s.outlook.com/autodiscover/autodiscover.svc

टेनेंट के सभी डोमेन

Get-AADIntTenantDomains -Domain <domain>

login.microsoftonline.com/GetUserRealm.srf?login=<UserName>

टेनेंट की लॉगिन जानकारी, टेनेंट नाम और डोमेन प्रमाणीकरण प्रकार सहित। यदि NameSpaceType Managed है, तो इसका मतलब है कि AzureAD का उपयोग हो रहा है।

Get-AADIntLoginInformation -UserName <UserName>

login.microsoftonline.com/common/GetCredentialType

लॉगिन जानकारी, सहित डेस्कटॉप SSO जानकारी

Get-AADIntLoginInformation -UserName <UserName>

आप एक कमांड के साथ AADInternals पुस्तकालय के साथ एक एज़्यूर टेनेंट की सभी जानकारी क्वेरी कर सकते हैं:

Invoke-AADIntReconAsOutsider -DomainName corp.onmicrosoft.com | Format-Table

एज़्यूर टेनेंट जानकारी का उदाहरण:

Tenant brand:       Company Ltd
Tenant name:        company
Tenant id:          1937e3ab-38de-a735-a830-3075ea7e5b39
DesktopSSO enabled: True

Name                           DNS   MX    SPF  Type      STS
----                           ---   --    ---  ----      ---
company.com                   True  True  True  Federated sts.company.com
company.mail.onmicrosoft.com  True  True  True  Managed
company.onmicrosoft.com       True  True  True  Managed
int.company.com              False False False  Managed

आपको आवासी का नाम, आईडी, और "ब्रांड" नाम के बारे में विवरण देखने की संभावना है। इसके अतिरिक्त, डेस्कटॉप एकल साइन-ऑन (SSO), जिसे सीमलेस SSO भी कहा जाता है, की स्थिति भी प्रदर्शित की जाती है। जब यह सक्षम होता है, तो यह सुविधा लक्ष्य संगठन में किसी विशेष उपयोगकर्ता की मौजूदगी (जाँच) को सुविधाजनक बनाती है।

इसके अतिरिक्त, उत्पादन में लक्षित आवासी से संबंधित सभी सत्यापित डोमेनों के नाम प्रस्तुत किए जाते हैं, साथ ही उनके संबंधित पहचान प्रकारों के साथ। संघीय डोमेनों के मामले में, पहचान प्रदाता का पूर्ण योग्य डोमेन नाम (FQDN), जिसमें सामान्यत: एक ADFS सर्वर होता है, भी खुलासा किया जाता है। "MX" स्तंभ स्पष्ट करता है कि क्या ईमेल Exchange Online में मार्गीत है, जबकि "SPF" स्तंभ Exchange Online को ईमेल भेजने वाले के रूप में सूचित करता है। महत्वपूर्ण है कि वर्तमान पूर्वानुसंधान कार्य SPF रिकॉर्ड्स के "शामिल" वक्तव्यों को विश्लेषित नहीं करता है, जो गलत नकारात्मक परिणाम देने का कारण बन सकता है।

उपयोगकर्ता जाँच

आपको जाँच करने की संभावना है कि क्या एक उपयोगकर्ता का उपयोगकर्ता नाम एक आवासी के अंदर मौजूद है। इसमें मेहमान उपयोगकर्ताएँ भी शामिल हैं, जिनका उपयोगकर्ता नाम इस प्रारूप में होता है:

<email>#EXT#@<tenant name>.onmicrosoft.com

ईमेल उपयोगकर्ता का ईमेल पता है जहां "@" को अंडरस्कोर "_" से बदल दिया गया है।

AADInternals के साथ, आप आसानी से यह जांच सकते हैं कि उपयोगकर्ता मौजूद है या नहीं:

# Check does the user exist
Invoke-AADIntUserEnumerationAsOutsider -UserName "user@company.com"

आउटपुट:

UserName         Exists
--------         ------
user@company.com True

आप एक पंक्ति प्रति एक ईमेल पता वाला एक पाठ फ़ाइल भी उपयोग कर सकते हैं:

user@company.com
user2@company.com
admin@company.com
admin2@company.com
external.user_gmail.com#EXT#@company.onmicrosoft.com
external.user_outlook.com#EXT#@company.onmicrosoft.com
# Invoke user enumeration
Get-Content .\users.txt | Invoke-AADIntUserEnumerationAsOutsider -Method Normal

There are तीन विभिन्न गणना विधियाँ चुनने के लिए:

विधिविवरण

सामान्य

यह ऊपर उल्लिखित GetCredentialType API को संदर्भित करता है। डिफ़ॉल्ट विधि।

लॉगिन

यह विधि उपयोगकर्ता के रूप में लॉगिन करने का प्रयास करती है। नोट: क्वेरी साइन-इन्स लॉग में लॉग किए जाएंगे।

ऑटोलॉगन

यह विधि ऑटोलॉगन इंटरफेस के माध्यम से उपयोगकर्ता के रूप में लॉगिन करने का प्रयास करती है। क्वेरी साइन-इन्स लॉग में नहीं लॉग किए जाते हैं! इस प्रकार, यह पासवर्ड स्प्रे और ब्रूट-फोर्स हमलों के लिए भी अच्छी तरह से काम करती है।

वैध उपयोगकर्ता नामों की खोज करने के बाद आप एक उपयोगकर्ता के बारे में जानकारी प्राप्त कर सकते हैं:

Get-AADIntLoginInformation -UserName root@corp.onmicrosoft.com

स्क्रिप्ट o365creeper आपको यह भी खोजने की अनुमति देता है कि क्या ईमेल मान्य है

# Put in emails.txt emails such as:
# - root@corp.onmicrosoft.com
python.exe .\o365creeper\o365creeper.py -f .\emails.txt -o validemails.txt

माइक्रोसॉफ्ट टीम्स के माध्यम से उपयोगकर्ता जांच

एक और अच्छा स्रोत माइक्रोसॉफ्ट टीम्स है।

माइक्रोसॉफ्ट टीम्स का एपीआई उपयोगकर्ताओं की खोज करने की अनुमति देता है। विशेष रूप से "उपयोगकर्ता खोज" अंत-स्थायी externalsearchv3 और searchUsers का उपयोग टीम्स-नामांकित उपयोगकर्ता खातों के बारे में सामान्य जानकारी का अनुरोध करने के लिए किया जा सकता है।

एपीआई प्रतिक्रिया के आधार पर गैर मौजूदा उपयोगकर्ताओं और मौजूदा उपयोगकर्ताओं के बीच भिन्न किया जा सकता है जिनके पास एक वैध टीम्स सब्सक्रिप्शन है।

स्क्रिप्ट TeamsEnum का उपयोग टीम्स एपीआई के खिलाफ दिए गए उपयोगकर्ता नामों की मान्यता की जांच के लिए किया जा सकता है।

python3 TeamsEnum.py -a password -u <username> -f inputlist.txt -o teamsenum-output.json

आवश्यकता

इस टेक्निकल रिपोर्ट का उद्देश्य Azure क्लाउड में अनअथेंटिकेटेड एनुमरेशन और प्रारंभिक प्रवेश की जांच करना है। यह रिपोर्ट उन विशेषताओं को विस्तार से वर्णित करती है जिन्हें हमने एक Azure इंस्टेंस के साथ काम करते समय पाया है और जिन्हें हमने एक अनअथेंटिकेटेड उपयोगकर्ता के रूप में उपयोग किया है।

विवरण

इस रिपोर्ट में हमने एक Azure इंस्टेंस के लिए अनअथेंटिकेटेड एनुमरेशन की प्रक्रिया का विवरण प्रस्तुत किया है। हमने इस इंस्टेंस के लिए उपयोगकर्ता नाम और पासवर्ड के बिना एक्सेस प्राप्त करने के लिए कई तकनीकों का उपयोग किया है। इसके अलावा, हमने इस इंस्टेंस में प्रवेश प्राप्त करने के लिए कुछ प्रारंभिक उपायों का भी वर्णन किया है।

उद्देश्य

इस रिपोर्ट का मुख्य उद्देश्य अनअथेंटिकेटेड एनुमरेशन और प्रारंभिक प्रवेश की प्रक्रिया को समझना है ताकि Azure क्लाउड में सुरक्षा की कमियों को पहचाना जा सके और उन्हें ठीक किया जा सके।

[-] user1@domain - Target user not found. Either the user does not exist, is not Teams-enrolled or is configured to not appear in search results (personal accounts only)
[+] user2@domain - User2 | Company (Away, Mobile)
[+] user3@domain - User3 | Company (Available, Desktop)

इसके अतिरिक्त, मौजूदा उपयोगकर्ताओं के बारे में उपलब्धता सूचना की जांच की जा सकती है जैसे निम्नलिखित:

  • उपलब्ध

  • दूर

  • उपलब्ध नहीं

  • व्यस्त

  • ऑफलाइन

यदि आउट ऑफ ऑफिस संदेश कॉन्फ़िगर किया गया है, तो TeamsEnum का उपयोग करके संदेश प्राप्त करना भी संभव है। यदि एक आउटपुट फ़ाइल निर्दिष्ट की गई थी, तो आउट ऑफ ऑफिस संदेश स्वचालित रूप से JSON फ़ाइल में संग्रहीत किए जाते हैं:

jq . teamsenum-output.json

अप्रमाणित एनुमरेशन और प्रारंभिक प्रवेश

इस विशेष विभाग में, हम अप्रमाणित एनुमरेशन और प्रारंभिक प्रवेश के लिए उपयुक्त तकनीकों की चर्चा करेंगे।

{
"email": "user2@domain",
"exists": true,
"info": [
{
"tenantId": "[REDACTED]",
"isShortProfile": false,
"accountEnabled": true,
"featureSettings": {
"coExistenceMode": "TeamsOnly"
},
"userPrincipalName": "user2@domain",
"givenName": "user2@domain",
"surname": "",
"email": "user2@domain",
"tenantName": "Company",
"displayName": "User2",
"type": "Federated",
"mri": "8:orgid:[REDACTED]",
"objectId": "[REDACTED]"
}
],
"presence": [
{
"mri": "8:orgid:[REDACTED]",
"presence": {
"sourceNetwork": "Federated",
"calendarData": {
"outOfOfficeNote": {
"message": "Dear sender. I am out of the office until March 23rd with limited access to my email. I will respond after my return.Kind regards, User2",
"publishTime": "2023-03-15T21:44:42.0649385Z",
"expiry": "2023-04-05T14:00:00Z"
},
"isOutOfOffice": true
},
"capabilities": [
"Audio",
"Video"
],
"availability": "Away",
"activity": "Away",
"deviceType": "Mobile"
},
"etagMatch": false,
"etag": "[REDACTED]",
"status": 20000
}
]
}

एज़्यूर सेवाएं

जान लें कि हमें पता है कि एज़्यूर टेनेंट द्वारा उपयोग किए जा रहे डोमेन अब हमें कोशिश करनी है कि एज़्यूर सेवाएं उजागर की जाएं।

आप इस लक्ष्य के लिए MicroBust से एक विधि का उपयोग कर सकते हैं। यह कार्य विभिन्न एज़्यूर सेवा डोमेनों में मूल डोमेन नाम (और कुछ अवधारणाएँ) खोजेगा:

Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose
Invoke-EnumerateAzureSubDomains -Base corp -Verbose

ओपन स्टोरेज

आप एक टूल जैसे InvokeEnumerateAzureBlobs.ps1 का उपयोग करके ओपन स्टोरेज का पता लगा सकते हैं, जो Microburst/Misc/permitations.txt फ़ाइल का उपयोग करेगा ताकि परिवर्तन (बहुत सरल) उत्पन्न कर सके और ओपन स्टोरेज खाते ढूंढ सके।

Import-Module .\MicroBurst\MicroBurst.psm1
Invoke-EnumerateAzureBlobs -Base corp
[...]
https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list
[...]

# Access https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list
# Check: <Name>ssh_info.json</Name>
# Access then https://corpcommon.blob.core.windows.net/secrets/ssh_info.json

SAS URLs

एक साझा एक्सेस सिग्नेचर (SAS) URL एक URL है जो किसी स्टोरेज अकाउंट के किसी खंड (पूरे कंटेनर, एक फ़ाइल...) तक पहुंच प्रदान करता है जिसमें कुछ विशेष अनुमतियाँ होती हैं (पढ़ने, लिखने...) संसाधनों पर। यदि आपको कोई लीक मिल जाता है तो आप संवेदनशील जानकारी तक पहुंच सकते हैं, ये ऐसे दिखते हैं (यह एक कंटेनर तक पहुंचने के लिए है, अगर यह केवल फ़ाइल को पहुंचने की अनुमति दे रहा होता तो URL का पथ भी उस फ़ाइल को शामिल करता):

https://<storage_account_name>.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D

Storage Explorer का उपयोग डेटा तक पहुंचने के लिए करें

क्रेडेंशियल्स को कमजोर करना

फिशिंग

पासवर्ड स्प्रेइंग / ब्रूट-फ़ोर्स

pageAz - Password Spraying

संदर्भ

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

Last updated