Translated ['', 'src/pentesting-cloud/azure-security/az-unauthenticated-

This commit is contained in:
Translator
2026-06-16 13:29:21 +00:00
parent 019a6d7843
commit d9952bd15e
@@ -6,17 +6,17 @@
### Tenant Enumeration
Υπάρχουν μερικά **public Azure APIs** που με την απλή γνώση του **domain του tenant** ένας επιτιθέμενος μπορεί να ερωτήσει για να συλλέξει περισσότερες πληροφορίες για αυτό.\
Μπορείτε να κάνετε query απευθείας το API ή να χρησιμοποιήσετε τη PowerShell βιβλιοθήκη [**AADInternals**](https://github.com/Gerenios/AADInternals) (`Install-Module AADInternals`):
Υπάρχουν κάποια **public Azure APIs** που, γνωρίζοντας μόνο το **domain του tenant**, ένας attacker θα μπορούσε να τα query για να συγκεντρώσει περισσότερες πληροφορίες γι αυτό.\
Μπορείς να κάνεις query απευθείας στο API ή να χρησιμοποιήσεις το PowerShell library [**AADInternals**](https://github.com/Gerenios/AADInternals) (`Install-Module AADInternals`):
- **Login information including tenant ID**
- **Login information συμπεριλαμβανομένου του tenant ID**
- `Get-AADIntTenantID -Domain <domain>` (main API `login.microsoftonline.com/<domain>/.well-known/openid-configuration`)
- **All valid doimains in the tenant**
- **Όλα τα valid doimains στο tenant**
- `Get-AADIntTenantDomains -Domain <domain>` (main API `autodiscover-s.outlook.com/autodiscover/autodiscover.svc`)
- **Login information of the user**. If `NameSpaceType` is `Managed`, it means EntraID is used
- **Login information του user**. Αν `NameSpaceType` είναι `Managed`, σημαίνει ότι χρησιμοποιείται EntraID
- `Get-AADIntLoginInformation -UserName <UserName>` (main API `login.microsoftonline.com/GetUserRealm.srf?login=<UserName>`)
Μπορείτε να ανακτήσετε όλες τις πληροφορίες ενός Azure tenant με **μόνο μία εντολή από** [**AADInternals**](https://github.com/Gerenios/AADInternals):
Μπορείς να κάνεις query όλες τις πληροφορίες ενός Azure tenant με **μόνο μία εντολή από** [**AADInternals**](https://github.com/Gerenios/AADInternals):
```bash
# Doesn't work in macos because 'Resolve-DnsName' doesn't exist
Invoke-AADIntReconAsOutsider -DomainName corp.onmicrosoft.com | Format-Table
@@ -35,33 +35,62 @@ company.mail.onmicrosoft.com True True True Managed
company.onmicrosoft.com True True True Managed
int.company.com False False False Managed
```
Είναι δυνατή η παρατήρηση λεπτομερειών σχετικά με το όνομα του tenant, το ID και το "brand" name. Επιπλέον, εμφανίζεται η κατάσταση του Desktop Single Sign-On (SSO), γνωστό και ως [**Seamless SSO**](https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso). Όταν είναι ενεργοποιημένο, αυτή η λειτουργία διευκολύνει τον εντοπισμό (enumeration) της παρουσίας ενός συγκεκριμένου χρήστη στον οργανισμό-στόχο.
Είναι δυνατό να παρατηρήσετε λεπτομέρειες σχετικά με το όνομα του tenant, το ID και το όνομα "brand". Επιπλέον, εμφανίζεται η κατάσταση του Desktop Single Sign-On (SSO), γνωστού και ως [**Seamless SSO**](https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso). Όταν είναι ενεργοποιημένο, αυτό το feature διευκολύνει τον προσδιορισμό της παρουσίας (enumeration) ενός συγκεκριμένου user μέσα στον στόχο οργανισμό.
Επιπλέον, η έξοδος παρουσιάζει τα ονόματα όλων των επαληθευμένων domains που σχετίζονται με τον tenant-στόχο, μαζί με τους αντίστοιχους τύπους ταυτότητας. Στην περίπτωση των federated domains, αποκαλύπτεται επίσης το Fully Qualified Domain Name (FQDN) του identity provider που χρησιμοποιείται, συνήθως ένας ADFS server. Η στήλη "MX" υποδεικνύει αν τα emails δρομολογούνται προς το Exchange Online, ενώ η στήλη "SPF" δηλώνει αν το Exchange Online περιλαμβάνεται ως αποστολέας email. Σημειώστε ότι η τρέχουσα reconnaissance λειτουργία δεν αναλύει τις δηλώσεις "include" εντός των SPF records, κάτι που μπορεί να οδηγήσει σε false negatives.
Επιπλέον, το output παρουσιάζει τα ονόματα όλων των verified domains που σχετίζονται με το target tenant, μαζί με τους αντίστοιχους identity types τους. Στην περίπτωση federated domains, αποκαλύπτεται επίσης το Fully Qualified Domain Name (FQDN) του identity provider που χρησιμοποιείται, συνήθως ενός ADFS server. Η στήλη "MX" καθορίζει αν τα emails δρομολογούνται στο Exchange Online, ενώ η στήλη "SPF" δηλώνει την καταχώριση του Exchange Online ως email sender. Είναι σημαντικό να σημειωθεί ότι η τρέχουσα reconnaissance function δεν αναλύει τα "include" statements μέσα στα SPF records, κάτι που μπορεί να οδηγήσει σε false negatives.
### User Enumeration
> [!TIP]
> Σημειώστε ότι ακόμη και αν ένας tenant χρησιμοποιεί αρκετά emails για τον ίδιο χρήστη, το **username είναι μοναδικό**. Αυτό σημαίνει ότι θα λειτουργήσει μόνο με το domain που έχει συσχετίσει ο χρήστης και όχι με τα άλλα domains.
> Σημειώστε ότι ακόμη κι αν ένα tenant χρησιμοποιεί πολλά emails για τον ίδιο user, το **username είναι μοναδικό**. Αυτό σημαίνει ότι θα λειτουργεί μόνο με το domain που έχει συσχετίσει ο user και όχι με τα άλλα domains.
Είναι δυνατό να **ελέγξετε αν ένα username υπάρχει** μέσα σε έναν tenant. Αυτό περιλαμβάνει επίσης **guest users**, των οποίων το username έχει τη μορφή:
Είναι δυνατό να **ελέγξετε αν ένα username υπάρχει** μέσα σε ένα tenant. Αυτό περιλαμβάνει επίσης **guest users**, των οποίων το username έχει τη μορφή:
```
<email>#EXT#@<tenant name>.onmicrosoft.com
```
Το email είναι η διεύθυνση email του χρήστη όπου το “@” έχει αντικατασταθεί με κάτω παύλα “\_“.
Το email είναι η διεύθυνση email του χρήστη όπου το “@” αντικαθίσταται από underscore “\_“.
Με [**AADInternals**](https://github.com/Gerenios/AADInternals), μπορείτε εύκολα να ελέγξετε αν ο χρήστης υπάρχει ή όχι:
Με το [**AADInternals**](https://github.com/Gerenios/AADInternals), μπορείτε εύκολα να ελέγξετε αν ο χρήστης υπάρχει ή όχι:
```bash
# Check does the user exist
Invoke-AADIntUserEnumerationAsOutsider -UserName "user@company.com"
```
Δεν υπάρχει περιεχόμενο για μετάφραση. Παρακαλώ επικολλήστε εδώ το περιεχόμενο του αρχείου README.md (ή του τμήματος που θέλετε να μεταφραστεί) και θα το μεταφράσω στα Ελληνικά διατηρώντας την ίδια markdown/HTML σύνταξη.
# Az Unauthenticated Enum and Initial Entry
## Azure unauthenticated enumeration and initial access
In Azure, there are some common scenarios where an attacker can perform unauthenticated enumeration and gain initial access. This can happen due to **misconfigurations**, exposed services, leaked credentials, or overly permissive access controls.
### Common attack surfaces
- **Storage Accounts**: Publicly accessible blobs or misconfigured SAS tokens can expose sensitive data.
- **Azure AD**: Weak password policies, legacy auth, or leaked credentials may allow initial access.
- **App Services**: Exposed management interfaces or vulnerable applications can be abused.
- **Key Vaults**: Misconfigured access policies or leaked secrets can reveal credentials and tokens.
### Enumeration ideas
- Enumerate public resources and endpoints.
- Check for exposed metadata, configuration files, or secrets.
- Look for weak or default credentials.
- Identify services that allow anonymous or guest access.
### Initial entry paths
- Use exposed secrets to authenticate to Azure services.
- Abuse misconfigured IAM roles and permissions.
- Leverage vulnerable applications to gain a foothold.
- Use harvested credentials for further access and lateral movement.
### Notes
Azure environments are often complex, so small mistakes in configuration can lead to significant exposure. Careful enumeration of public-facing services is often the first step toward initial access.
```
UserName Exists
-------- ------
user@company.com True
```
Μπορείτε επίσης να χρησιμοποιήσετε ένα αρχείο κειμένου που περιέχει μία διεύθυνση email ανά γραμμή:
Μπορείς επίσης να χρησιμοποιήσεις ένα αρχείο κειμένου που περιέχει μία διεύθυνση email ανά γραμμή:
```
user@company.com
user2@company.com
@@ -75,22 +104,22 @@ external.user_outlook.com#EXT#@company.onmicrosoft.com
# Invoke user enumeration
Get-Content .\users.txt | Invoke-AADIntUserEnumerationAsOutsider -Method Normal
```
Προς το παρόν υπάρχουν **4 different enumeration methods** για να επιλέξετε. Μπορείτε να βρείτε πληροφορίες στο `Get-Help Invoke-AADIntUserEnumerationAsOutsider`:
Αυτή τη στιγμή υπάρχουν **4 διαφορετικές enumeration methods** για να διαλέξεις. Μπορείς να βρεις πληροφορίες στο `Get-Help Invoke-AADIntUserEnumerationAsOutsider`:
Υποστηρίζει τις ακόλουθες enumeration methods: Normal, Login, Autologon, and RST2.
Υποστηρίζει τις ακόλουθες enumeration methods: Normal, Login, Autologon, και RST2.
- Η **Normal** μέθοδος φαίνεται ότι προς το παρόν λειτουργεί με όλους τους tenants. Παλαιότερα απαιτούσε να είναι ενεργοποιημένο το Desktop SSO (aka Seamless SSO) για τουλάχιστον ένα domain.
- Η **Normal** method φαίνεται αυτή τη στιγμή να δουλεύει με όλα τα tenants. Παλαιότερα απαιτούσε να είναι ενεργό το Desktop SSO (aka Seamless SSO) για τουλάχιστον ένα domain.
- Η **Login** μέθοδος λειτουργεί με οποιονδήποτε tenant, αλλά τα enumeration queries θα καταγραφούν στο Azure AD sign-in log ως failed login events!
- Η **Login** method δουλεύει με οποιοδήποτε tenant, αλλά τα enumeration queries θα καταγράφονται στο Azure AD sign-in log ως failed login events!
- Η **Autologon** μέθοδος φαίνεται ότι πλέον δεν λειτουργεί σε όλους τους tenants. Πιθανώς απαιτεί να είναι ενεργοποιημένο το DesktopSSO ή το directory sync.
- Η **Autologon** method φαίνεται ότι δεν δουλεύει πλέον με όλα τα tenants. Πιθανότατα απαιτεί να είναι ενεργό το DesktopSSO ή το directory sync.
Μετά την ανακάλυψη των έγκυρων usernames μπορείτε να λάβετε **info about a user** με:
Αφού ανακαλύψεις τα valid usernames μπορείς να πάρεις **info about a user** με:
```bash
Get-AADIntLoginInformation -UserName root@corp.onmicrosoft.com
```
Το script [**o365spray**](https://github.com/0xZDH/o365spray) σας επιτρέπει επίσης να ανακαλύψετε **εάν ένα email είναι έγκυρο**.
Το script [**o365spray**](https://github.com/0xZDH/o365spray) επίσης σου επιτρέπει να ανακαλύψεις **αν ένα email είναι έγκυρο**.
```bash
git clone https://github.com/0xZDH/o365spray
cd o365spray
@@ -103,13 +132,13 @@ python3 ./o365spray.py --enum -d carloshacktricks.onmicrosoft.com -U /tmp/users.
```
**User Enumeration via Microsoft Teams**
Μια ακόμη καλή πηγή πληροφοριών είναι το Microsoft Teams.
Μια άλλη καλή πηγή πληροφοριών είναι το Microsoft Teams.
Το API του Microsoft Teams επιτρέπει την αναζήτηση χρηστών. Ειδικότερα, τα endpoints "user search" **externalsearchv3** και **searchUsers** μπορούν να χρησιμοποιηθούν για να ζητήσουν γενικές πληροφορίες σχετικά με λογαριασμούς χρηστών εγγεγραμμένους στο Teams.
Το API του Microsoft Teams επιτρέπει την αναζήτηση χρηστών. Συγκεκριμένα, τα "user search" endpoints **externalsearchv3** και **searchUsers** θα μπορούσαν να χρησιμοποιηθούν για να ζητήσουν γενικές πληροφορίες σχετικά με Teams-enrolled user accounts.
Ανάλογα με την απάντηση του API, είναι δυνατόν να διακριθούν οι μη υπάρχοντες χρήστες από χρήστες που υπάρχουν και έχουν έγκυρη συνδρομή στο Teams.
Ανάλογα με το API response είναι δυνατό να διακρίνει κανείς μεταξύ μη υπαρχόντων χρηστών και υπαρχόντων χρηστών που έχουν έγκυρη Teams subscription.
Το script [**TeamsEnum**](https://github.com/lucidra-security/TeamsEnum) μπορεί να χρησιμοποιηθεί για να επικυρώσει ένα δοθέν σύνολο ονομάτων χρηστών απέναντι στο Teams API, αλλά χρειάζεστε πρόσβαση σε έναν χρήστη με πρόσβαση στο Teams για να το χρησιμοποιήσετε.
Το script [**TeamsEnum**](https://github.com/lucidra-security/TeamsEnum) θα μπορούσε να χρησιμοποιηθεί για να validate ένα δεδομένο σύνολο από usernames απέναντι στο Teams API, αλλά χρειάζεσαι access σε έναν user με Teams access για να το χρησιμοποιήσεις.
```bash
# Install
git clone https://github.com/lucidra-security/TeamsEnum
@@ -119,13 +148,55 @@ 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
```
Παρακαλώ επικολλήστε το περιεχόμενο του README.md που θέλετε να μεταφράσω στα Ελληνικά.
## Azure unauthenticated enum and initial entry
### Initial entry
### Service principal authentication
Azure allows authenticating as a service principal using a client secret or certificate. If you have obtained valid credentials through leak, phishing, or other means, you can authenticate and enumerate the tenant.
Common ways to authenticate include:
- `az login --service-principal -u <appId> -p <password> --tenant <tenantId>`
- `az login --service-principal -u <appId> -p <certificate> --tenant <tenantId>`
### Enumerating the tenant
Once authenticated, you can enumerate subscriptions, resources, role assignments, and identities.
Useful commands:
- `az account list`
- `az role assignment list`
- `az ad user list`
- `az ad group list`
- `az ad sp list`
### Common initial entry vectors
- Exposed storage accounts
- Misconfigured App Services
- Leaked service principal credentials
- Publicly accessible Function Apps
- Weak or reused secrets in CI/CD pipelines
### Notes
Unauthenticated enumeration in Azure is usually limited, but you may still find:
- Public storage containers
- Public metadata or configuration endpoints
- DNS and naming pattern clues
- Shared or leaked URLs exposing information
Use these findings to identify valid targets for further access.
```
[-] 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)
```
Επιπλέον, είναι δυνατόν να απαριθμηθούν πληροφορίες διαθεσιμότητας για υπάρχοντες χρήστες όπως οι εξής:
Επιπλέον, είναι δυνατό να γίνει enumeration πληροφοριών διαθεσιμότητας σχετικά με υπάρχοντες χρήστες, όπως τα ακόλουθα:
- Available
- Away
@@ -133,11 +204,40 @@ python3 ./TeamsEnum.py -a password -u <username> -f inputlist.txt -o teamsenum-o
- Busy
- Offline
Εάν έχει ρυθμιστεί ένα **μήνυμα εκτός γραφείου**, είναι επίσης δυνατό να ανακτηθεί το μήνυμα χρησιμοποιώντας το TeamsEnum. Αν έχει καθοριστεί αρχείο εξόδου, τα μηνύματα εκτός γραφείου αποθηκεύονται αυτόματα μέσα στο αρχείο JSON:
Αν έχει ρυθμιστεί ένα **out-of-office message**, είναι επίσης δυνατό να ανακτηθεί το μήνυμα χρησιμοποιώντας TeamsEnum. Αν είχε καθοριστεί αρχείο εξόδου, τα out-of-office messages αποθηκεύονται αυτόματα μέσα στο JSON αρχείο:
```
jq . teamsenum-output.json
```
Δεν παρέχετε το περιεχόμενο του αρχείου. Παρακαλώ επικολλήστε εδώ το κείμενο του src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/README.md που θέλετε να μεταφράσω (θα διατηρήσω ανέπαφα markdown, tags, links και paths).
# Azure - Unauthenticated Enumeration and Initial Entry
The goal of this post is to present different ways to enumerate Azure environments without needing to authenticate, and some common initial entry vectors that may be useful in pentesting.
## Enumeration without authentication
One of the most basic steps when assessing an Azure environment is to identify exposed assets and metadata that can be gathered without logging in. This can include publicly accessible endpoints, leaked information, and misconfigured services.
### Common sources of information
- Public DNS records
- Public storage containers and blobs
- Metadata exposed by services
- Shared access signatures
- Misconfigured web apps and APIs
- Publicly indexed files and documents
### Initial entry opportunities
In some cases, unauthenticated enumeration can reveal issues that allow initial access. Examples include:
- Exposed credentials or tokens
- Anonymous file upload or download
- Weakly protected management interfaces
- Misconfigured authentication flows
- Overly permissive access controls
### Notes
The exact techniques and impact depend on the specific Azure service, configuration, and target scope. Always ensure you have permission before performing pentesting or any form of testing against cloud infrastructure.
```json
{
"email": "user2@domain",
@@ -192,9 +292,9 @@ jq . teamsenum-output.json
az-password-spraying.md
{{#endref}}
## Υπηρεσίες Azure που χρησιμοποιούν τομείς
## Azure Services using domains
Είναι επίσης δυνατό να προσπαθήσετε να βρείτε **υπηρεσίες Azure εκτεθειμένες** σε κοινά azure subdomains όπως τα τεκμηριωμένα σε αυτό το [post:
It's also possible to try to find **Azure services exposed** in common azure subdomains like the ones documented in this [post:
](https://www.netspi.com/blog/technical-blog/cloud-penetration-testing/enumerating-azure-services/)
- App Services: `azurewebsites.net`
@@ -216,7 +316,7 @@ az-password-spraying.md
- Search Appliance: `search.windows.net`
- API Services: `azure-api.net`
Μπορείτε να χρησιμοποιήσετε μια μέθοδο από [**MicroBust**](https://github.com/NetSPI/MicroBurst) για αυτόν τον σκοπό. Αυτή η συνάρτηση θα αναζητήσει το βασικό όνομα τομέα (και μερικές παραλλαγές) σε αρκετά **azure domains:**
Μπορείς να χρησιμοποιήσεις μια μέθοδο από το [**MicroBust**](https://github.com/NetSPI/MicroBurst) για αυτόν τον στόχο. Αυτή η function θα αναζητήσει το base domain name (και μερικούς permutations) σε αρκετά **azure domains:**
```bash
Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose
Invoke-EnumerateAzureSubDomains -Base corp -Verbose
@@ -226,22 +326,59 @@ Invoke-EnumerateAzureSubDomains -Base corp -Verbose
- [**Common Phishing**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) για credentials ή μέσω [OAuth Apps](az-oauth-apps-phishing.md)
- [**Device Code Authentication** Phishing](az-device-code-authentication-phishing.md)
### Exchange Online direct-to-tenant SMTP spoofing
Αν ένας στόχος χρησιμοποιεί **Exchange Online / EOP** αλλά το δημόσιο **MX** δείχνει σε ένα **third-party mail gateway** (Mimecast, Proofpoint, Mailgun, on-prem filtering, κ.λπ.), δοκίμασε αν το Exchange Online εξακολουθεί να δέχεται mail που στέλνεται **απευθείας** στον tenant host `*.mail.protection.outlook.com`. Σε αυτή την περίπτωση, ένας attacker μπορεί να **παρακάμψει το external gateway** και να υποβάλει phishing mail κατευθείαν στο EOP.
Αυτό είναι χρήσιμο για **initial access / phishing** επειδή η παράδοση μπορεί να γίνει ακόμη κι όταν ο spoofed sender αποτυγχάνει σε **SPF**, **DKIM** και **DMARC**. Για εσωτερικούς senders, το Outlook μπορεί επίσης να αναγνωρίσει τον spoofed sender ως πραγματικό employee, αυξάνοντας την εμπιστοσύνη.
**Recon / triage:**
```bash
# If the MX already points to Microsoft, this specific path is usually not the issue
dig +short MX target.com
# Typical vulnerable pattern: the MX points to a third-party filter
# 10 mxb.eu.mailgun.org.
```
Ο άμεσος EOP host είναι συνήθως το tenant-specific `mail.protection.outlook.com` name (για παράδειγμα `target-com.mail.protection.outlook.com`). Μπορείς συχνά να ανακτήσεις το tenant naming pattern από public tenant/domain enumeration και Exchange-related autodiscover responses.
**Minimal PoC:**
```powershell
Send-MailMessage -SmtpServer target-com.mail.protection.outlook.com -To victim@target.com -From ceo@target.com -Subject "Urgent" -Body "Review the attached payment change" -BodyAsHTML
```
**Validation signals:**
- Το Mail αποστέλλεται στο `*.mail.protection.outlook.com` αντί για το public MX host.
- Το μήνυμα παραδίδεται ακόμα κι αν τα headers δείχνουν αποτυχίες όπως `spf=fail`, `dkim=none`, `dmarc=fail`, ή `compauth=none`.
- Ένα secure Partner connector συνήθως απορρίπτει το στάδιο `RCPT TO` με `5.7.51 TenantInboundAttribution; Rejecting.`
**Technical notes / defensive hunting:**
- Το **Enhanced Filtering for Connectors** βοηθά το Exchange να αποδίδει σωστά τον αρχικό sender, αλλά από μόνο του **δεν** είναι το boundary που μπλοκάρει direct-to-tenant delivery.
- Η Microsoft τεκμηριώνει δύο πρακτικά controls όταν χρησιμοποιείς ένα external MX μπροστά από Exchange Online:
- Δημιούργησε ένα **Partner inbound connector** με `SenderDomains *` και `RestrictDomainsToCertificate` ή `RestrictDomainsToIPAddresses` ώστε μόνο το approved gateway να μπορεί να παραδίδει στο tenant.
- Δημιούργησε ένα **priority 0 transport rule** που βάζει σε quarantine την inbound mail εκτός αν το sender IP ανήκει σε approved gateway ranges **ή** το `X-MS-Exchange-Organization-AuthAs` περιέχει `Internal`.
- Κάνε hunt για mail όπου το **Received** δείχνει `*.mail.protection.outlook.com` ως το πρώτο Microsoft hop αλλά τα sender-authentication headers εξακολουθούν να δείχνουν **SPF/DKIM/DMARC failures**.
- Αν το target επιτρέπει ακόμα **Direct Send**, η απενεργοποίησή του κυρίως μειώνει το **internal** sender spoofing· δεν αντικαθιστά το connector / transport-rule mitigation για αυθαίρετο **external** spoofing.
## Filesystem Credentials
Το **`az cli`** αποθηκεύει πολλές ενδιαφέρουσες πληροφορίες μέσα στο **`<HOME>/.Azure`**:
- **`azureProfile.json`** περιέχει πληροφορίες για χρήστες που έχουν συνδεθεί στο παρελθόν
- **`clouds.config`** περιέχει πληροφορίες για συνδρομές
- **`service_principal_entries.json`** περιέχει τις **credentials** των εφαρμογών (tenant id, clients and secret)
- **`msal_token_cache.json`** περιέχει **access tokens and refresh tokens**
- Το **`azureProfile.json`** περιέχει info για logged in users από το παρελθόν
- Το **`clouds.config`** περιέχει info για subscriptions
- Το **`service_principal_entries.json`** περιέχει εφαρμογές **credentials** (tenant id, clients και secret)
- Το **`msal_token_cache.json`** περιέχει **access tokens και refresh tokens**
Σημειώστε ότι σε macOS και linux αυτά τα αρχεία είναι **μη προστατευμένα** και αποθηκεύονται σε απλό κείμενο.
Σημείωσε ότι στο macOS και linux αυτά τα αρχεία αποθηκεύονται **unprotected** σε clear text.
## Αναφορές
## References
- [https://aadinternals.com/post/just-looking/](https://aadinternals.com/post/just-looking/)
- [https://www.securesystems.de/blog/a-fresh-look-at-user-enumeration-in-microsoft-teams/](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/](https://www.netspi.com/blog/technical-blog/cloud-penetration-testing/enumerating-azure-services/)
- [https://labs.infoguard.ch/posts/ghost-sender/](https://labs.infoguard.ch/posts/ghost-sender/)
- [https://learn.microsoft.com/en-us/exchange/mail-flow-best-practices/manage-mail-flow-using-third-party-cloud](https://learn.microsoft.com/en-us/exchange/mail-flow-best-practices/manage-mail-flow-using-third-party-cloud)
- [https://learn.microsoft.com/en-us/defender-office-365/anti-phishing-policies-about](https://learn.microsoft.com/en-us/defender-office-365/anti-phishing-policies-about)
- [https://techcommunity.microsoft.com/blog/exchange/direct-send-vs-sending-directly-to-an-exchange-online-tenant/4439865](https://techcommunity.microsoft.com/blog/exchange/direct-send-vs-sending-directly-to-an-exchange-online-tenant/4439865)
{{#include ../../../banners/hacktricks-training.md}}