Az - Unauthenticated Enum & Initial Entry
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die đŹ Discord group of die telegram group of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
Azure Huurder
Tenant Enumeration
Daar is ân paar openbare Azure APIs wat, as ân aanvaller net die domein van die huurder ken, navrae kan stuur om meer inligting daaroor te versamel.
Jy kan die API direk bevra of die PowerShell-biblioteek AADInternals gebruik (Install-Module AADInternals):
- Aanmeldinligting insluitend huurder-ID
Get-AADIntTenantID -Domain <domain>(main APIlogin.microsoftonline.com/<domain>/.well-known/openid-configuration)- Alle geldige domeine in die huurder
Get-AADIntTenantDomains -Domain <domain>(main APIautodiscover-s.outlook.com/autodiscover/autodiscover.svc)- Aanmeldinligting van die gebruiker. As
NameSpaceTypeopManagedstaan, beteken dit dat EntraID gebruik word Get-AADIntLoginInformation -UserName <UserName>(main APIlogin.microsoftonline.com/GetUserRealm.srf?login=<UserName>)
Jy kan al die inligting van ân Azure-huurder navraag doen met slegs een opdrag van AADInternals:
# Doesn't work in macos because 'Resolve-DnsName' doesn't exist
Invoke-AADIntReconAsOutsider -DomainName corp.onmicrosoft.com | Format-Table
## Output Example of the Azure tenant info:
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
Dit is moontlik om besonderhede oor die tenant se naam, ID en âbrandâ naam waar te neem. Verder word die status van die Desktop Single Sign-On (SSO), ook bekend as Seamless SSO, gewys. Wanneer dit geaktiveer is, maak hierdie funksie die bepaling van die teenwoordigheid (enumeration) van ân spesifieke gebruiker binne die teiken-organisasie moontlik.
Verder vertoon die uitset die name van alle geverifieerde domeine wat met die teiken-tenant geassosieer is, saam met hul onderskeie identiteits-tipes. In die geval van gefedereerde domeine word ook die Fully Qualified Domain Name (FQDN) van die gebruikte identity provider, gewoonlik ân ADFS-bediener, bekend gemaak. Die âMXâ-kolom spesifiseer of e-posse na Exchange Online gerouteer word, terwyl die âSPFâ-kolom aandui of Exchange Online as ân e-possender gelys is. Dit is belangrik om op te let dat die huidige reconnaissance-funksie nie die âincludeâ-uitsprake binne SPF-rekords ontleed nie, wat tot false negatives kan lei.
Gebruiker Enumerasie
Tip
Let daarop dat selfs al gebruik ân tenant verskeie e-posadresse vir dieselfde gebruiker, die username is uniek. Dit beteken dat dit slegs met die domein waarmee die gebruiker geassosieer is sal werk en nie met die ander domeine nie.
Dit is moontlik om te kontroleer of ân username bestaan binne ân tenant. Dit sluit ook guest users in, wie se username in die formaat is:
<email>#EXT#@<tenant name>.onmicrosoft.com
Die e-pos is die gebruiker se e-posadres waar die â@â vervang is deur die underscore â_â.
Met AADInternals kan jy maklik nagaan of die gebruiker bestaan of nie:
# Check does the user exist
Invoke-AADIntUserEnumerationAsOutsider -UserName "user@company.com"
Ek het nie toegang tot die lĂȘer nie. Plak asseblief die README.md-inhoud wat jy vertaal wil hĂȘ, en ek sal dit na Afrikaans vertaal terwyl ek markdown, tags en skakels onveranderd laat.
UserName Exists
-------- ------
user@company.com True
Jy kan ook ân tekslĂȘer gebruik wat een e-posadres per reĂ«l bevat:
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
Daar is tans 4 verskillende enumerasie-metodes om van te kies. Jy kan inligting vind in Get-Help Invoke-AADIntUserEnumerationAsOutsider:
Dit ondersteun die volgende enumerasie-metodes: Normal, Login, Autologon, and RST2.
-
Die Normal metode lyk tans of dit met alle tenants werk. Voorheen het dit vereis dat Desktop SSO (aka Seamless SSO) vir ten minste een domein aangeskakel was.
-
Die Login metode werk met enige tenant, maar enumerasie-navrae sal in die Azure AD sign-in log as failed login events aangeteken word!
-
Die Autologon metode lyk nie meer met alle tenants te werk nie. Dit vereis waarskynlik dat DesktopSSO of directory sync geaktiveer is.
Nadat jy die geldige gebruikersname ontdek het, kan jy inligting oor ân gebruikerâ kry met:
Get-AADIntLoginInformation -UserName root@corp.onmicrosoft.com
Die script o365spray laat jou ook toe om te ontdek of ân e-pos geldig is.
git clone https://github.com/0xZDH/o365spray
cd o365spray
python3 -m pip install -r requirements.txt
# Check 1 email
python3 ./o365spray.py --enum -d carloshacktricks.onmicrosoft.com -u carlos
# Check a list of emails
python3 ./o365spray.py --enum -d carloshacktricks.onmicrosoft.com -U /tmp/users.txt
User Enumeration via Microsoft Teams
Nog ân goeie bron van inligting is Microsoft Teams.
Die API van Microsoft Teams maak dit moontlik om na gebruikers te soek. In die besonder kan die âuser searchâ endpoints externalsearchv3 en searchUsers gebruik word om algemene inligting oor by Teams aangemelde gebruikersrekeninge op te vra.
Afhangend van die API-respons is dit moontlik om te onderskei tussen nie-bestaande gebruikers en bestaande gebruikers wat ân geldige Teams-subskripsie het.
Die script TeamsEnum kan gebruik word om ân gegewe stel gebruikersname teen die Teams API te valideer, maar jy benodig toegang tot ân gebruiker met Teams-toegang om dit te gebruik.
# Install
git clone https://github.com/lucidra-security/TeamsEnum
cd TeamsEnum
python3 -m pip install -r requirements.txt
# Login and ask for password
python3 ./TeamsEnum.py -a password -u <username> -f inputlist.txt -o teamsenum-output.json
I donât have the README.md content. Please paste the Markdown content you want translated and Iâll translate it to Afrikaans, preserving all tags, links, paths and code.
[-] 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)
Daarbenewens is dit moontlik om beskikbaarheidsinligting oor bestaande gebruikers te verkry, soos die volgende:
- Available
- Away
- DoNotDisturb
- Busy
- Offline
As ân afwesigheidsboodskap gekonfigureer is, kan die boodskap ook met TeamsEnum opgevra word. As ân uitsetlĂȘer gespesifiseer is, word die afwesigheidsboodskappe outomaties binne die JSON-lĂȘer gestoor:
jq . teamsenum-output.json
Ek het nie die lĂȘerinhoud ontvang nie. Plak asseblief die inhoud van src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/README.md wat jy wil hĂȘ ek moet vertaal; ek sal dit in Afrikaans teruggee en markdown, links, tags, padhervorsings en kode onvertaal laat.
{
"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
}
]
}
Password Spraying / Brute-Force
Azure Services using domains
Dit is ook moontlik om te probeer om Azure services exposed te vind in algemene azure subdomeine soos dié gedokumenteer in hierdie post:
- App Services:
azurewebsites.net - App Services â Management:
scm.azurewebsites.net - App Services:
p.azurewebsites.net - App Services:
cloudapp.net - Storage Accounts-Files:
file.core.windows.net - Storage Accounts-Blobs:
blob.core.windows.net - Storage Accounts-Queues:
queue.core.windows.net - Storage Accounts-Tables:
table.core.windows.net - Databases-Redis:
redis.cache.windows.net - Databases-Cosmos DB:
documents.azure.com - Databases-MSSQL:
database.windows.net - Key Vaults:
vault.azure.net - Microsoft Hosted Domain:
onmicrosoft.com - Email:
mail.protection.outlook.com - SharePoint:
sharepoint.com - CDN:
azureedge.net - Search Appliance:
search.windows.net - API Services:
azure-api.net
You can use a method from MicroBust for such goal. This function will search the base domain name (and a few permutations) in several azure domeine:
Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose
Invoke-EnumerateAzureSubDomains -Base corp -Verbose
Phishing
- Common Phishing vir credentials of deur OAuth Apps
- Device Code Authentication Phishing
Filesystem Credentials
Die az cli stoor baie interessante inligting in <HOME>/.Azure:
azureProfile.jsonbevat inligting oor aangemelde gebruikers uit die verledeclouds.configbevat inligting oor subscriptionsservice_principal_entries.jsonbevat toepassings credentials (tenant id, clients and secret)msal_token_cache.jsonbevat access tokens and refresh tokens
Let wel dat op macOS en Linux word hierdie lĂȘers onbeskermd in duidelike teks gestoor.
Verwysings
- https://aadinternals.com/post/just-looking/
- https://www.securesystems.de/blog/a-fresh-look-at-user-enumeration-in-microsoft-teams/
- https://www.netspi.com/blog/technical-blog/cloud-penetration-testing/enumerating-azure-services/
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die đŹ Discord group of die telegram group of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

