Utilizza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per creare facilmente e **automatizzare flussi di lavoro** supportati dagli strumenti della comunità più avanzati al mondo.\
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se desideri vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione esclusiva di [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
Un Controllo degli Accessi (ACL) consiste in un insieme ordinato di Voci di Controllo degli Accessi (ACE) che determinano le protezioni per un oggetto e le sue proprietà. In sostanza, un ACL definisce quali azioni da parte di quali principali della sicurezza (utenti o gruppi) sono consentite o negate su un determinato oggetto.
Il processo di accesso a un file coinvolge il sistema che controlla il descrittore di sicurezza dell'oggetto rispetto al token di accesso dell'utente per determinare se l'accesso dovrebbe essere concesso e l'estensione di tale accesso, in base alle ACE.
* **DACL:** Contiene ACE che concedono o negano autorizzazioni di accesso agli utenti e ai gruppi per un oggetto. È essenzialmente l'ACL principale che determina i diritti di accesso.
* **SACL:** Utilizzato per l'audit dell'accesso agli oggetti, dove le ACE definiscono i tipi di accesso da registrare nel Log degli Eventi di Sicurezza. Questo può essere prezioso per rilevare tentativi di accesso non autorizzati o risolvere problemi di accesso.
Ogni sessione utente è associata a un token di accesso che contiene informazioni di sicurezza rilevanti per quella sessione, inclusi utente, identità di gruppo e privilegi. Questo token include anche un SID di accesso che identifica univocamente la sessione.
L'Autorità di Sicurezza Locale (LSASS) elabora le richieste di accesso agli oggetti esaminando il DACL per le ACE che corrispondono al principale della sicurezza che tenta l'accesso. L'accesso viene immediatamente concesso se non vengono trovate ACE rilevanti. Altrimenti, LSASS confronta le ACE con il SID del principale della sicurezza nel token di accesso per determinare l'ammissibilità all'accesso.
* **ACE di Audit di Sistema**: Posizionata all'interno di un System Access Control List (SACL), questa ACE è responsabile della generazione di log di audit sui tentativi di accesso a un oggetto da parte di utenti o gruppi. Documenta se l'accesso è stato consentito o negato e la natura dell'accesso.
4. Una [**maschera di accesso**](https://docs.microsoft.com/en-us/openspecs/windows\_protocols/ms-dtyp/7a53f60e-e730-4dfe-bbe9-b21b62eb790b?redirectedfrom=MSDN), un valore a 32 bit che specifica i diritti concessi all'oggetto.
Il modo in cui le **ACE** (regole che dicono chi può o non può accedere a qualcosa) sono inserite in un elenco chiamato **DACL** è molto importante. Questo perché una volta che il sistema concede o nega l'accesso in base a queste regole, smette di guardare il resto.
C'è un modo migliore per organizzare queste ACE, ed è chiamato **"ordine canonico."** Questo metodo aiuta a garantire che tutto funzioni in modo fluido ed equo. Ecco come funziona per sistemi come **Windows 2000** e **Windows Server 2003**:
* Prima, metti tutte le regole fatte **specificamente per questo elemento** prima di quelle che provengono da un'altra parte, come una cartella genitore.
* In quelle regole specifiche, metti prima quelle che dicono **"no" (negare)** prima di quelle che dicono **"sì" (consentire)**.
* Per le regole che provengono da un'altra parte, inizia con quelle dalla **fonte più vicina**, come il genitore, e poi torna indietro da lì. Di nuovo, metti **"no"** prima di **"sì."**
* Permette al proprietario di un elemento di avere l'**ultima parola** su chi può accedere, prima che entrino in gioco le regole delle cartelle genitore o più indietro.
Facendo in questo modo, il proprietario di un file o di una cartella può essere molto preciso su chi ha accesso, assicurandosi che le persone giuste possano accedere e quelle sbagliate no.
Quindi, questo **"ordine canonico"** riguarda tutto fare in modo che le regole di accesso siano chiare e funzionino bene, mettendo prima le regole specifiche e organizzando tutto in modo intelligente.
Utilizza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per creare facilmente e **automatizzare flussi di lavoro** supportati dagli strumenti della comunità più avanzati al mondo.\
Nel gestire l'accesso alle risorse, come una cartella, utilizziamo liste e regole note come Liste di Controllo degli Accessi (ACL) e Voci di Controllo degli Accessi (ACE). Queste definiscono chi può o non può accedere a determinati dati.
Immagina di avere una cartella chiamata Cost, e vuoi che tutti vi accedano tranne il team di marketing. Impostando correttamente le regole, possiamo garantire che al team di marketing venga esplicitamente negato l'accesso prima di consentirlo a tutti gli altri. Questo viene fatto posizionando la regola per negare l'accesso al team di marketing prima della regola che consente l'accesso a tutti.
Supponiamo che Bob, il direttore del marketing, abbia bisogno di accedere alla cartella Cost, anche se in generale il team di marketing non dovrebbe avere accesso. Possiamo aggiungere una regola specifica (ACE) per Bob che gli concede l'accesso e posizionarla prima della regola che nega l'accesso al team di marketing. In questo modo, Bob ottiene l'accesso nonostante la restrizione generale sul suo team.
Le ACE sono le regole individuali in un ACL. Identificano utenti o gruppi, specificano quali accessi sono consentiti o negati e determinano come queste regole si applicano agli elementi secondari (ereditarietà). Ci sono due tipi principali di ACE:
* **ACE Generiche**: Queste si applicano ampiamente, influenzando tutti i tipi di oggetti o distinguendo solo tra contenitori (come cartelle) e non contenitori (come file). Ad esempio, una regola che consente agli utenti di visualizzare i contenuti di una cartella ma non di accedere ai file al suo interno.
* **ACE Specifiche dell'Oggetto**: Queste forniscono un controllo più preciso, consentendo di impostare regole per tipi specifici di oggetti o addirittura proprietà individuali all'interno di un oggetto. Ad esempio, in una directory di utenti, una regola potrebbe consentire a un utente di aggiornare il proprio numero di telefono ma non le ore di accesso.
Ogni ACE contiene informazioni importanti come a chi si applica la regola (usando un Identificatore di Sicurezza o SID), cosa consente o nega la regola (usando una maschera di accesso) e come viene ereditata da altri oggetti.
* Le **ACE Generiche** sono adatte per scenari di controllo degli accessi semplici, dove la stessa regola si applica a tutti gli aspetti di un oggetto o a tutti gli oggetti all'interno di un contenitore.
* Le **ACE Specifiche dell'Oggetto** sono utilizzate per scenari più complessi, specialmente in ambienti come Active Directory, dove potresti aver bisogno di controllare l'accesso a proprietà specifiche di un oggetto in modo diverso.
In sintesi, ACL e ACE aiutano a definire controlli di accesso precisi, garantendo che solo le persone o i gruppi giusti abbiano accesso a informazioni o risorse sensibili, con la possibilità di adattare i diritti di accesso fino al livello di proprietà individuali o tipi di oggetti.
| Tipo | Flag che indica il tipo di ACE. Windows 2000 e Windows Server 2003 supportano sei tipi di ACE: Tre tipi di ACE generiche che sono collegati a tutti gli oggetti securizzabili. Tre tipi di ACE specifiche dell'oggetto che possono verificarsi per gli oggetti di Active Directory. |
| Flag | Insieme di bit flag che controllano l'ereditarietà e l'auditing. |
| Dimensione | Numero di byte di memoria allocati per l'ACE. |
| Maschera di accesso | Valore a 32 bit i cui bit corrispondono ai diritti di accesso per l'oggetto. I bit possono essere impostati su on o off, ma il significato dell'impostazione dipende dal tipo di ACE. Ad esempio, se il bit che corrisponde al diritto di leggere le autorizzazioni è attivato e il tipo di ACE è Deny, l'ACE nega il diritto di leggere le autorizzazioni dell'oggetto. Se lo stesso bit è attivato ma il tipo di ACE è Allow, l'ACE concede il diritto di leggere le autorizzazioni dell'oggetto. Ulteriori dettagli sulla Maschera di accesso appaiono nella tabella successiva. |
| SID | Identifica un utente o gruppo il cui accesso è controllato o monitorato da questo ACE. |