mirror of
				https://github.com/HackTricks-wiki/hacktricks.git
				synced 2025-10-10 18:36:50 +00:00 
			
		
		
		
	Translated ['src/mobile-pentesting/ios-pentesting/ios-universal-links.md
This commit is contained in:
		
							parent
							
								
									35f27a2836
								
							
						
					
					
						commit
						03b853dc8d
					
				@ -4,7 +4,7 @@
 | 
			
		||||
 | 
			
		||||
## Introduzione
 | 
			
		||||
 | 
			
		||||
I link universali offrono un **esperienza di reindirizzamento** senza soluzione di continuità per gli utenti aprendo direttamente il contenuto nell'app, bypassando la necessità di reindirizzamento a Safari. Questi link sono **unici** e sicuri, poiché non possono essere rivendicati da altre app. Questo è garantito ospitando un file JSON `apple-app-site-association` nella directory radice del sito web, stabilendo un collegamento verificabile tra il sito web e l'app. Nei casi in cui l'app non sia installata, Safari prenderà il controllo e dirigerà l'utente alla pagina web, mantenendo la presenza dell'app.
 | 
			
		||||
I link universali offrono un **esperienza di reindirizzamento** senza soluzione di continuità per gli utenti aprendo direttamente il contenuto nell'app, bypassando la necessità di reindirizzamento a Safari. Questi link sono **unici** e sicuri, poiché non possono essere rivendicati da altre app. Ciò è garantito ospitando un file JSON `apple-app-site-association` nella directory radice del sito web, stabilendo un collegamento verificabile tra il sito web e l'app. Nei casi in cui l'app non sia installata, Safari prenderà il controllo e dirigerà l'utente alla pagina web, mantenendo la presenza dell'app.
 | 
			
		||||
 | 
			
		||||
Per i tester di penetrazione, il file `apple-app-site-association` è di particolare interesse poiché potrebbe rivelare **percorsi sensibili**, potenzialmente inclusi quelli relativi a funzionalità non rilasciate.
 | 
			
		||||
 | 
			
		||||
@ -24,7 +24,7 @@ Se si lavora con un'applicazione compilata, le autorizzazioni possono essere est
 | 
			
		||||
 | 
			
		||||
### **Recupero del file Apple App Site Association**
 | 
			
		||||
 | 
			
		||||
Il file `apple-app-site-association` deve essere recuperato dal server utilizzando i domini specificati nelle autorizzazioni. Assicurati che il file sia accessibile tramite HTTPS direttamente a `https://<domain>/apple-app-site-association` (o `/.well-known/apple-app-site-association`). Strumenti come il [Apple App Site Association (AASA) Validator](https://branch.io/resources/aasa-validator/) possono aiutare in questo processo.
 | 
			
		||||
Il file `apple-app-site-association` deve essere recuperato dal server utilizzando i domini specificati nelle autorizzazioni. Assicurarsi che il file sia accessibile tramite HTTPS direttamente a `https://<domain>/apple-app-site-association` (o `/.well-known/apple-app-site-association`). Strumenti come il [Validator Apple App Site Association (AASA)](https://branch.io/resources/aasa-validator/) possono aiutare in questo processo.
 | 
			
		||||
 | 
			
		||||
> **Enumerazione rapida da una shell macOS/Linux**
 | 
			
		||||
>
 | 
			
		||||
@ -42,7 +42,7 @@ Il file `apple-app-site-association` deve essere recuperato dal server utilizzan
 | 
			
		||||
 | 
			
		||||
L'app deve implementare metodi specifici per gestire correttamente i link universali. Il metodo principale da cercare è [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). È fondamentale che lo schema degli URL gestiti sia HTTP o HTTPS, poiché altri non saranno supportati.
 | 
			
		||||
 | 
			
		||||
#### **Validazione del metodo di gestione dei dati**
 | 
			
		||||
#### **Validazione del metodo gestore dei dati**
 | 
			
		||||
 | 
			
		||||
Quando un link universale apre un'app, un oggetto `NSUserActivity` viene passato all'app con l'URL. Prima di elaborare questo URL, è essenziale convalidarlo e sanificarlo per prevenire rischi per la sicurezza. Ecco un esempio in Swift che dimostra il processo:
 | 
			
		||||
```swift
 | 
			
		||||
@ -84,28 +84,28 @@ return false
 | 
			
		||||
```
 | 
			
		||||
Attraverso **una configurazione e validazione diligente**, gli sviluppatori possono garantire che i link universali migliorino l'esperienza dell'utente mantenendo standard di sicurezza e privacy.
 | 
			
		||||
 | 
			
		||||
## Vulnerabilità comuni e controlli di pentesting
 | 
			
		||||
## Vulnerabilità Comuni & Controlli di Pentesting
 | 
			
		||||
 | 
			
		||||
| # | Vulnerabilità | Come testare | Sfruttamento / Impatto |
 | 
			
		||||
|---|---------------|--------------|-------------------------|
 | 
			
		||||
|---|----------|------------|-----------------------|
 | 
			
		||||
| 1 | **`paths` / `components` troppo ampi** nel file AASA (ad es. `"/": "*"` o caratteri jolly come `"/a/*"`). | • Ispezionare l'AASA scaricato e cercare `*`, barre finali o regole `{"?": …}`.<br>• Provare a richiedere risorse sconosciute che corrispondono ancora alla regola (`https://domain.com/a/evil?_p_dp=1`). | Hijacking del link universale: un'app iOS malevola che registra lo stesso dominio potrebbe rivendicare tutti quei link e presentare un'interfaccia di phishing. Un esempio reale è il rapporto di bug bounty di Temu.com di maggio 2025, dove un attaccante poteva reindirizzare qualsiasi percorso `/a/*` alla propria app. |
 | 
			
		||||
| 2 | **Mancanza di validazione lato server** dei percorsi deep-link. | Dopo aver identificato i percorsi consentiti, emettere richieste `curl`/Burp a risorse non esistenti e osservare i codici di stato HTTP. Qualsiasi cosa diversa da `404` (ad es. 200/302) è sospetta. | Un attaccante può ospitare contenuti arbitrari dietro un percorso consentito e servirli tramite il dominio legittimo, aumentando il tasso di successo di phishing o furto di token di sessione. |
 | 
			
		||||
| 3 | **Gestione degli URL lato app senza whitelist di schema/host** (CVE-2024-10474 – Mozilla Focus < 132). | Cercare chiamate dirette `openURL:`/`open(_:options:)` o ponti JavaScript che inoltrano URL arbitrari. | Le pagine interne possono contrabbandare URL `myapp://` o `https://` che bypassano i controlli di sicurezza della barra degli URL del browser, portando a spoofing o azioni privilegiate non intenzionali. |
 | 
			
		||||
| 4 | **Uso di sottodomini wildcard** (`*.example.com`) nell'entitlement. | `grep` per `*.` negli entitlement. | Se un sottodominio viene preso (ad es. tramite un bucket S3 non utilizzato), l'attaccante guadagna automaticamente il binding del link universale. |
 | 
			
		||||
| 4 | **Uso di sottodomini wildcard** (`*.example.com`) nell'entitlement. | `grep` per `*.` negli entitlement. | Se un sottodominio viene preso (ad es. tramite un bucket S3 non utilizzato), l'attaccante guadagna automaticamente il binding del Link Universale. |
 | 
			
		||||
 | 
			
		||||
### Checklist rapida
 | 
			
		||||
### Checklist Rapida
 | 
			
		||||
 | 
			
		||||
* [ ] Estrarre gli entitlement e enumerare ogni voce `applinks:`.
 | 
			
		||||
* [ ] Scaricare l'AASA per ogni voce e controllare i caratteri jolly.
 | 
			
		||||
* [ ] Verificare che il server web restituisca **404** per i percorsi non definiti.
 | 
			
		||||
* [ ] Nel binario, confermare che **solo** host/schemi fidati siano gestiti.
 | 
			
		||||
* [ ] Nel binario, confermare che siano gestiti **solo** host/schemi fidati.
 | 
			
		||||
* [ ] Se l'app utilizza la nuova sintassi `components` (iOS 11+), fuzzare le regole dei parametri di query (`{"?":{…}}`).
 | 
			
		||||
 | 
			
		||||
## Strumenti
 | 
			
		||||
 | 
			
		||||
- [GetUniversal.link](https://getuniversal.link/): Aiuta a semplificare il testing e la gestione dei link universali e del file AASA della tua app. Basta inserire il tuo dominio per verificare l'integrità del file AASA o utilizzare il dashboard personalizzato per testare facilmente il comportamento dei link. Questo strumento ti aiuta anche a determinare quando Apple indicizzerà nuovamente il tuo file AASA.
 | 
			
		||||
- [Knil](https://github.com/ethanhuang13/knil): Utility iOS open-source che recupera, analizza e ti consente di **testare** ogni link universale dichiarato da un dominio direttamente sul dispositivo.
 | 
			
		||||
- [universal-link-validator](https://github.com/urbangems/universal-link-validator): Validatore CLI / web che esegue controlli di conformità AASA rigorosi e evidenzia caratteri jolly pericolosi.
 | 
			
		||||
- [GetUniversal.link](https://getuniversal.link/): Aiuta a semplificare il testing e la gestione dei Link Universali e del file AASA della tua app. Basta inserire il tuo dominio per verificare l'integrità del file AASA o utilizzare il dashboard personalizzato per testare facilmente il comportamento dei link. Questo strumento ti aiuta anche a determinare quando Apple indicizzerà nuovamente il tuo file AASA.
 | 
			
		||||
- [Knil](https://github.com/ethanhuang13/knil): Utility iOS open-source che recupera, analizza e ti consente di **testare** ogni Link Universale dichiarato da un dominio direttamente sul dispositivo.
 | 
			
		||||
- [universal-link-validator](https://github.com/urbangems/universal-link-validator): Validatore CLI / web che esegue controlli rigorosi di conformità AASA e evidenzia caratteri jolly pericolosi.
 | 
			
		||||
 | 
			
		||||
## Riferimenti
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -2,7 +2,7 @@
 | 
			
		||||
 | 
			
		||||
{{#include ../banners/hacktricks-training.md}}
 | 
			
		||||
 | 
			
		||||
## Informazioni di Base
 | 
			
		||||
## Informazioni di base
 | 
			
		||||
 | 
			
		||||
Il protocollo Microsoft Remote Procedure Call (MSRPC), un modello client-server che consente a un programma di richiedere un servizio da un programma situato su un altro computer senza comprendere le specifiche della rete, è stato inizialmente derivato da software open-source e successivamente sviluppato e protetto da copyright da Microsoft.
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@ Iniziato dall'applicazione client, il processo MSRPC prevede la chiamata a una p
 | 
			
		||||
 | 
			
		||||
## **Identificazione dei servizi RPC esposti**
 | 
			
		||||
 | 
			
		||||
L'esposizione dei servizi RPC attraverso TCP, UDP, HTTP e SMB può essere determinata interrogando il servizio di localizzazione RPC e i singoli endpoint. Strumenti come rpcdump facilitano l'identificazione di servizi RPC unici, denotati da valori **IFID**, rivelando dettagli sul servizio e binding di comunicazione:
 | 
			
		||||
L'esposizione dei servizi RPC su TCP, UDP, HTTP e SMB può essere determinata interrogando il servizio di localizzazione RPC e i singoli endpoint. Strumenti come rpcdump facilitano l'identificazione di servizi RPC unici, denotati da valori **IFID**, rivelando dettagli sul servizio e binding di comunicazione:
 | 
			
		||||
```
 | 
			
		||||
D:\rpctools> rpcdump [-p port] <IP>
 | 
			
		||||
**IFID**: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
 | 
			
		||||
@ -46,7 +46,7 @@ Tutte le opzioni tranne `tcp_dcerpc_auditor` sono specificamente progettate per
 | 
			
		||||
- **Descrizione**: Interfaccia LSA Directory Services (DS), utilizzata per enumerare domini e relazioni di fiducia.
 | 
			
		||||
- **IFID**: 12345778-1234-abcd-ef00-0123456789ac
 | 
			
		||||
- **Named Pipe**: `\pipe\samr`
 | 
			
		||||
- **Descrizione**: Interfaccia LSA SAMR, utilizzata per accedere agli elementi del database SAM pubblici (ad es., nomi utente) e forzare le password degli utenti indipendentemente dalla politica di blocco dell'account.
 | 
			
		||||
- **Descrizione**: Interfaccia LSA SAMR, utilizzata per accedere agli elementi del database SAM pubblico (ad es., nomi utente) e forzare le password degli utenti indipendentemente dalla politica di blocco degli account.
 | 
			
		||||
- **IFID**: 1ff70682-0a51-30e8-076d-740be8cee98b
 | 
			
		||||
- **Named Pipe**: `\pipe\atsvc`
 | 
			
		||||
- **Descrizione**: Pianificatore di attività, utilizzato per eseguire comandi da remoto.
 | 
			
		||||
@ -85,7 +85,7 @@ Il **rpcdump.exe** da [rpctools](https://resources.oreilly.com/examples/97805965
 | 
			
		||||
 | 
			
		||||
## Fuzzing automatizzato delle interfacce MSRPC
 | 
			
		||||
 | 
			
		||||
Le interfacce MS-RPC espongono una vasta e spesso non documentata superficie di attacco. Il modulo PowerShell open-source [MS-RPC-Fuzzer](https://github.com/warpnet/MS-RPC-Fuzzer) si basa su `NtObjectManager` di James Forshaw per *creare dinamicamente* stub client RPC dai metadati dell'interfaccia già presenti nei binari di Windows. Una volta che uno stub esiste, il modulo può bombardare ogni procedura con input mutati e registrare l'esito, rendendo **possibile il fuzzing riproducibile e su larga scala degli endpoint RPC senza scrivere una sola riga di IDL**.
 | 
			
		||||
Le interfacce MS-RPC espongono una vasta e spesso non documentata superficie di attacco. Il modulo PowerShell open-source [MS-RPC-Fuzzer](https://github.com/warpnet/MS-RPC-Fuzzer) si basa su `NtObjectManager` di James Forshaw per *creare dinamicamente* stub client RPC dai metadati dell'interfaccia già presenti nei binari di Windows. Una volta che uno stub esiste, il modulo può bombardare ciascuna procedura con input mutati e registrare l'esito, rendendo **possibile il fuzzing riproducibile e su larga scala degli endpoint RPC senza scrivere una sola riga di IDL**.
 | 
			
		||||
 | 
			
		||||
### 1. Inventario delle interfacce
 | 
			
		||||
```powershell
 | 
			
		||||
@ -139,9 +139,9 @@ Le query Cypher possono quindi essere utilizzate per individuare rapidamente pro
 | 
			
		||||
⚠️  Il fuzzer è *distruttivo*: aspettati crash del servizio e persino BSOD – eseguilo sempre in uno snapshot VM isolato.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Enumerazione Automatica delle Interfacce e Generazione Dinamica del Client (NtObjectManager)
 | 
			
		||||
### Enumerazione automatizzata delle interfacce e generazione dinamica del client (NtObjectManager)
 | 
			
		||||
 | 
			
		||||
Il guru di PowerShell **James Forshaw** ha esposto la maggior parte degli interni RPC di Windows all'interno del modulo open-source *NtObjectManager*. Utilizzandolo, puoi trasformare qualsiasi DLL / EXE del server RPC in un **client stub completo** in pochi secondi – senza IDL, MIDL o unmarshalling manuale richiesti.
 | 
			
		||||
Il guru di PowerShell **James Forshaw** ha esposto la maggior parte degli interni di Windows RPC all'interno del modulo open-source *NtObjectManager*. Utilizzandolo, puoi trasformare qualsiasi DLL / EXE del server RPC in un **client stub completo** in pochi secondi – senza IDL, MIDL o unmarshalling manuale richiesti.
 | 
			
		||||
```powershell
 | 
			
		||||
# Install the module once
 | 
			
		||||
Install-Module NtObjectManager -Force
 | 
			
		||||
@ -190,14 +190,14 @@ La conoscenza statica dell'interfaccia è ottima, ma ciò che desideri davvero 
 | 
			
		||||
5. Eseguire chiamate ad alto volume contro il trasporto scelto (ALPC, TCP, HTTP o named pipe).
 | 
			
		||||
6. Registrare stati di uscita / errori / timeout ed esportare un file di importazione **Neo4j** per visualizzare le relazioni *interfaccia → procedura → parametro* e i cluster di crash.
 | 
			
		||||
 | 
			
		||||
Esempio di esecuzione (target named–pipe):
 | 
			
		||||
Esempio di esecuzione (target named-pipe):
 | 
			
		||||
```powershell
 | 
			
		||||
Invoke-MSRPCFuzzer -Pipe "\\.\pipe\efsrpc" -Auth NTLM `
 | 
			
		||||
-MinLen 1  -MaxLen 0x400 `
 | 
			
		||||
-Iterations 100000 `
 | 
			
		||||
-OutDir .\results
 | 
			
		||||
```
 | 
			
		||||
Una singola scrittura fuori dai limiti o un'eccezione inaspettata verrà visualizzata immediatamente con l'esatto opnum + payload fuzzato che l'ha attivata – punto di partenza perfetto per un exploit di proof-of-concept stabile.
 | 
			
		||||
Un singolo write out-of-bounds o un'eccezione inaspettata verrà visualizzato immediatamente con l'esatto opnum + payload fuzzed che l'ha attivato – punto di partenza perfetto per un exploit proof-of-concept stabile.
 | 
			
		||||
 | 
			
		||||
> ⚠️  Molti servizi RPC vengono eseguiti in processi che girano come **NT AUTHORITY\SYSTEM**. Qualsiasi problema di sicurezza della memoria qui di solito si traduce in un'elevazione di privilegi locale o (quando esposto su SMB/135) *esecuzione di codice remoto*.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -12,7 +12,7 @@ I concetti chiave all'interno di **Active Directory** includono:
 | 
			
		||||
 | 
			
		||||
1. **Directory** – Contiene tutte le informazioni relative agli oggetti di Active Directory.
 | 
			
		||||
2. **Oggetto** – Denota entità all'interno della directory, inclusi **utenti**, **gruppi** o **cartelle condivise**.
 | 
			
		||||
3. **Dominio** – Funziona come contenitore per gli oggetti della directory, con la capacità di più domini di coesistere all'interno di una **foresta**, ciascuno mantenendo la propria raccolta di oggetti.
 | 
			
		||||
3. **Dominio** – Funziona come contenitore per gli oggetti della directory, con la possibilità di più domini di coesistere all'interno di una **foresta**, ciascuno mantenendo la propria raccolta di oggetti.
 | 
			
		||||
4. **Albero** – Un raggruppamento di domini che condividono un dominio radice comune.
 | 
			
		||||
5. **Foresta** – Il culmine della struttura organizzativa in Active Directory, composta da diversi alberi con **relazioni di fiducia** tra di loro.
 | 
			
		||||
 | 
			
		||||
@ -44,10 +44,10 @@ Puoi prendere molto da [https://wadcoms.github.io/](https://wadcoms.github.io) p
 | 
			
		||||
Se hai solo accesso a un ambiente AD ma non hai credenziali/sessioni, potresti:
 | 
			
		||||
 | 
			
		||||
- **Pentestare la rete:**
 | 
			
		||||
- Scansiona la rete, trova macchine e porte aperte e prova a **sfruttare vulnerabilità** o **estrarre credenziali** da esse (ad esempio, [le stampanti potrebbero essere obiettivi molto interessanti](ad-information-in-printers.md).
 | 
			
		||||
- Enumerare DNS potrebbe fornire informazioni sui server chiave nel dominio come web, stampanti, condivisioni, vpn, media, ecc.
 | 
			
		||||
- Scansionare la rete, trovare macchine e porte aperte e provare a **sfruttare vulnerabilità** o **estrarre credenziali** da esse (ad esempio, [le stampanti potrebbero essere obiettivi molto interessanti](ad-information-in-printers.md).
 | 
			
		||||
- Enumerare il DNS potrebbe fornire informazioni sui server chiave nel dominio come web, stampanti, condivisioni, vpn, media, ecc.
 | 
			
		||||
- `gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt`
 | 
			
		||||
- Dai un'occhiata alla [**Pentesting Methodology**](../../generic-methodologies-and-resources/pentesting-methodology.md) per trovare ulteriori informazioni su come fare questo.
 | 
			
		||||
- Dai un'occhiata alla [**Metodologia di Pentesting Generale**](../../generic-methodologies-and-resources/pentesting-methodology.md) per trovare ulteriori informazioni su come fare questo.
 | 
			
		||||
- **Controlla l'accesso nullo e Guest sui servizi smb** (questo non funzionerà su versioni moderne di Windows):
 | 
			
		||||
- `enum4linux -a -u "" -p "" <DC IP> && enum4linux -a -u "guest" -p "" <DC IP>`
 | 
			
		||||
- `smbmap -u "" -p "" -P 445 -H <DC IP> && smbmap -u "guest" -p "" -P 445 -H <DC IP>`
 | 
			
		||||
@ -67,11 +67,11 @@ Se hai solo accesso a un ambiente AD ma non hai credenziali/sessioni, potresti:
 | 
			
		||||
{{#endref}}
 | 
			
		||||
 | 
			
		||||
- **Avvelenare la rete**
 | 
			
		||||
- Raccogli credenziali [**impersonando servizi con Responder**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
 | 
			
		||||
- Accedi all'host [**abusando dell'attacco di relay**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)
 | 
			
		||||
- Raccogli credenziali **esponendo** [**falsi servizi UPnP con evil-S**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856)
 | 
			
		||||
- Raccogliere credenziali [**impersonando servizi con Responder**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
 | 
			
		||||
- Accedere all'host [**abusando dell'attacco di relay**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)
 | 
			
		||||
- Raccogliere credenziali **esponendo** [**falsi servizi UPnP con evil-S**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856)
 | 
			
		||||
- [**OSINT**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/external-recon-methodology/index.html):
 | 
			
		||||
- Estrai nomi/utenti da documenti interni, social media, servizi (principalmente web) all'interno degli ambienti di dominio e anche da quelli pubblicamente disponibili.
 | 
			
		||||
- Estrarre nomi utenti/nomi da documenti interni, social media, servizi (principalmente web) all'interno degli ambienti di dominio e anche da fonti pubblicamente disponibili.
 | 
			
		||||
- Se trovi i nomi completi dei lavoratori dell'azienda, potresti provare diverse **convenzioni di nome utente AD** (**[leggi questo](https://activedirectorypro.com/active-directory-user-naming-convention/)**). Le convenzioni più comuni sono: _NomeCognome_, _Nome.Cognome_, _NamSur_ (3 lettere di ciascuno), _Nam.Sur_, _NSurname_, _N.Surname_, _SurnameName_, _Surname.Name_, _SurnameN_, _Surname.N_, 3 _lettere casuali e 3 numeri casuali_ (abc123).
 | 
			
		||||
- Strumenti:
 | 
			
		||||
- [w0Tx/generate-ad-username](https://github.com/w0Tx/generate-ad-username)
 | 
			
		||||
@ -116,7 +116,7 @@ Get-GlobalAddressList -ExchHostname [ip] -UserName [domain]\[username] -Password
 | 
			
		||||
 | 
			
		||||
Ok, quindi sai di avere già un nome utente valido ma nessuna password... Prova:
 | 
			
		||||
 | 
			
		||||
- [**ASREPRoast**](asreproast.md): Se un utente **non ha** l'attributo _DONT_REQ_PREAUTH_, puoi **richiedere un messaggio AS_REP** per quell'utente che conterrà alcuni dati crittografati da una derivazione della password dell'utente.
 | 
			
		||||
- [**ASREPRoast**](asreproast.md): Se un utente **non ha** l'attributo _DONT_REQ_PREAUTH_ puoi **richiedere un messaggio AS_REP** per quell'utente che conterrà alcuni dati crittografati da una derivazione della password dell'utente.
 | 
			
		||||
- [**Password Spraying**](password-spraying.md): Proviamo le password più **comuni** con ciascuno degli utenti scoperti, forse qualche utente sta usando una password debole (tieni presente la politica delle password!).
 | 
			
		||||
- Nota che puoi anche **sprayare i server OWA** per cercare di accedere ai server di posta degli utenti.
 | 
			
		||||
 | 
			
		||||
@ -146,7 +146,7 @@ Se puoi **accedere ad altri PC o condivisioni** con l'**utente null o guest** po
 | 
			
		||||
 | 
			
		||||
## Enumerare Active Directory CON credenziali/sessione
 | 
			
		||||
 | 
			
		||||
Per questa fase devi aver **compromesso le credenziali o una sessione di un account di dominio valido.** Se hai delle credenziali valide o una shell come utente di dominio, **dovresti ricordare che le opzioni fornite prima sono ancora opzioni per compromettere altri utenti**.
 | 
			
		||||
Per questa fase devi aver **compromesso le credenziali o una sessione di un account di dominio valido.** Se hai alcune credenziali valide o una shell come utente di dominio, **dovresti ricordare che le opzioni fornite prima sono ancora opzioni per compromettere altri utenti**.
 | 
			
		||||
 | 
			
		||||
Prima di iniziare l'enumerazione autenticata dovresti sapere qual è il **problema del doppio salto Kerberos.**
 | 
			
		||||
 | 
			
		||||
@ -158,7 +158,7 @@ kerberos-double-hop-problem.md
 | 
			
		||||
 | 
			
		||||
Aver compromesso un account è un **grande passo per iniziare a compromettere l'intero dominio**, perché sarai in grado di avviare l'**Enumerazione di Active Directory:**
 | 
			
		||||
 | 
			
		||||
Per quanto riguarda [**ASREPRoast**](asreproast.md) ora puoi trovare ogni possibile utente vulnerabile, e per quanto riguarda [**Password Spraying**](password-spraying.md) puoi ottenere un **elenco di tutti i nomi utente** e provare la password dell'account compromesso, password vuote e nuove password promettenti.
 | 
			
		||||
Riguardo a [**ASREPRoast**](asreproast.md) ora puoi trovare ogni possibile utente vulnerabile, e riguardo a [**Password Spraying**](password-spraying.md) puoi ottenere un **elenco di tutti i nomi utente** e provare la password dell'account compromesso, password vuote e nuove password promettenti.
 | 
			
		||||
 | 
			
		||||
- Potresti usare il [**CMD per eseguire una ricognizione di base**](../basic-cmd-for-pentesters.md#domain-info)
 | 
			
		||||
- Puoi anche usare [**powershell per la ricognizione**](../basic-powershell-for-pentesters/index.html) che sarà più furtivo
 | 
			
		||||
@ -180,7 +180,7 @@ Per quanto riguarda [**ASREPRoast**](asreproast.md) ora puoi trovare ogni possib
 | 
			
		||||
 | 
			
		||||
### Kerberoast
 | 
			
		||||
 | 
			
		||||
Kerberoasting implica ottenere **ticket TGS** utilizzati da servizi legati a account utente e decifrare la loro crittografia—che si basa sulle password degli utenti—**offline**.
 | 
			
		||||
Kerberoasting implica ottenere **ticket TGS** utilizzati dai servizi legati agli account utente e decifrare la loro crittografia—che si basa sulle password degli utenti—**offline**.
 | 
			
		||||
 | 
			
		||||
Maggiori informazioni su questo in:
 | 
			
		||||
 | 
			
		||||
@ -190,11 +190,11 @@ kerberoast.md
 | 
			
		||||
 | 
			
		||||
### Connessione remota (RDP, SSH, FTP, Win-RM, ecc)
 | 
			
		||||
 | 
			
		||||
Una volta ottenute alcune credenziali, potresti controllare se hai accesso a qualche **macchina**. A tal fine, potresti usare **CrackMapExec** per tentare di connetterti a diversi server con diversi protocolli, in base alle tue scansioni delle porte.
 | 
			
		||||
Una volta ottenute alcune credenziali potresti controllare se hai accesso a qualche **macchina**. A tal fine, potresti usare **CrackMapExec** per tentare di connetterti a diversi server con diversi protocolli, in base alle tue scansioni delle porte.
 | 
			
		||||
 | 
			
		||||
### Escalation dei privilegi locali
 | 
			
		||||
 | 
			
		||||
Se hai compromesso credenziali o una sessione come utente di dominio regolare e hai **accesso** con questo utente a **qualsiasi macchina nel dominio**, dovresti cercare di trovare il modo per **escalare i privilegi localmente e cercare credenziali**. Questo perché solo con privilegi di amministratore locale sarai in grado di **dumpare gli hash di altri utenti** in memoria (LSASS) e localmente (SAM).
 | 
			
		||||
Se hai compromesso credenziali o una sessione come utente di dominio regolare e hai **accesso** con questo utente a **qualsiasi macchina nel dominio** dovresti cercare di trovare il modo di **escalare i privilegi localmente e cercare credenziali**. Questo perché solo con privilegi di amministratore locale sarai in grado di **dumpare gli hash di altri utenti** in memoria (LSASS) e localmente (SAM).
 | 
			
		||||
 | 
			
		||||
C'è una pagina completa in questo libro su [**escalation dei privilegi locali in Windows**](../windows-local-privilege-escalation/index.html) e una [**checklist**](../checklist-windows-privilege-escalation.md). Inoltre, non dimenticare di usare [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite).
 | 
			
		||||
 | 
			
		||||
@ -291,7 +291,7 @@ abusing-ad-mssql.md
 | 
			
		||||
 | 
			
		||||
Se trovi un oggetto Computer con l'attributo [ADS_UF_TRUSTED_FOR_DELEGATION](<https://msdn.microsoft.com/en-us/library/aa772300(v=vs.85).aspx>) e hai privilegi di dominio nel computer, sarai in grado di estrarre i TGT dalla memoria di ogni utente che accede al computer.\
 | 
			
		||||
Quindi, se un **Domain Admin accede al computer**, sarai in grado di estrarre il suo TGT e impersonarlo usando [Pass the Ticket](pass-the-ticket.md).\
 | 
			
		||||
Grazie alla delegazione vincolata potresti anche **compromettere automaticamente un Print Server** (speriamo che sia un DC).
 | 
			
		||||
Grazie alla delegazione vincolata potresti anche **compromettere automaticamente un Print Server** (si spera che sia un DC).
 | 
			
		||||
 | 
			
		||||
{{#ref}}
 | 
			
		||||
unconstrained-delegation.md
 | 
			
		||||
@ -299,8 +299,8 @@ unconstrained-delegation.md
 | 
			
		||||
 | 
			
		||||
### Delegazione vincolata
 | 
			
		||||
 | 
			
		||||
Se un utente o un computer è autorizzato per la "Delegazione vincolata", sarà in grado di **impersonare qualsiasi utente per accedere ad alcuni servizi in un computer**.\
 | 
			
		||||
Quindi, se **comprometti l'hash** di questo utente/computer sarai in grado di **impersonare qualsiasi utente** (anche gli amministratori di dominio) per accedere ad alcuni servizi.
 | 
			
		||||
Se un utente o un computer è autorizzato per la "Delegazione vincolata", sarà in grado di **impersonare qualsiasi utente per accedere a determinati servizi in un computer**.\
 | 
			
		||||
Quindi, se **comprometti l'hash** di questo utente/computer sarai in grado di **impersonare qualsiasi utente** (anche gli amministratori di dominio) per accedere a determinati servizi.
 | 
			
		||||
 | 
			
		||||
{{#ref}}
 | 
			
		||||
constrained-delegation.md
 | 
			
		||||
@ -398,7 +398,7 @@ Add-DomainObjectAcl -TargetIdentity "DC=SUB,DC=DOMAIN,DC=LOCAL" -PrincipalIdenti
 | 
			
		||||
 | 
			
		||||
### Silver Ticket
 | 
			
		||||
 | 
			
		||||
L'**attacco Silver Ticket** crea un **ticket di Ticket Granting Service (TGS)** legittimo per un servizio specifico utilizzando l'**hash NTLM** (ad esempio, l'**hash dell'account PC**). Questo metodo viene impiegato per **accedere ai privilegi del servizio**.
 | 
			
		||||
L'**attacco Silver Ticket** crea un **biglietto legittimo per il Ticket Granting Service (TGS)** per un servizio specifico utilizzando l'**hash NTLM** (ad esempio, l'**hash dell'account PC**). Questo metodo viene impiegato per **accedere ai privilegi del servizio**.
 | 
			
		||||
 | 
			
		||||
{{#ref}}
 | 
			
		||||
silver-ticket.md
 | 
			
		||||
@ -406,7 +406,7 @@ silver-ticket.md
 | 
			
		||||
 | 
			
		||||
### Golden Ticket
 | 
			
		||||
 | 
			
		||||
Un **attacco Golden Ticket** comporta che un attaccante ottenga accesso all'**hash NTLM dell'account krbtgt** in un ambiente Active Directory (AD). Questo account è speciale perché viene utilizzato per firmare tutti i **Ticket Granting Tickets (TGT)**, che sono essenziali per l'autenticazione all'interno della rete AD.
 | 
			
		||||
Un'**attacco Golden Ticket** comporta che un attaccante ottenga accesso all'**hash NTLM dell'account krbtgt** in un ambiente Active Directory (AD). Questo account è speciale perché viene utilizzato per firmare tutti i **Ticket Granting Tickets (TGT)**, che sono essenziali per l'autenticazione all'interno della rete AD.
 | 
			
		||||
 | 
			
		||||
Una volta che l'attaccante ottiene questo hash, può creare **TGT** per qualsiasi account scelga (attacco Silver ticket).
 | 
			
		||||
 | 
			
		||||
@ -416,7 +416,7 @@ golden-ticket.md
 | 
			
		||||
 | 
			
		||||
### Diamond Ticket
 | 
			
		||||
 | 
			
		||||
Questi sono simili ai golden ticket forgiati in un modo che **bypassa i comuni meccanismi di rilevamento dei golden ticket.**
 | 
			
		||||
Questi sono simili ai biglietti d'oro forgiati in un modo che **bypassa i comuni meccanismi di rilevamento dei biglietti d'oro.**
 | 
			
		||||
 | 
			
		||||
{{#ref}}
 | 
			
		||||
diamond-ticket.md
 | 
			
		||||
@ -440,13 +440,13 @@ ad-certificates/domain-persistence.md
 | 
			
		||||
 | 
			
		||||
### Gruppo AdminSDHolder
 | 
			
		||||
 | 
			
		||||
L'oggetto **AdminSDHolder** in Active Directory garantisce la sicurezza dei **gruppi privilegiati** (come Domain Admins e Enterprise Admins) applicando una standard **Access Control List (ACL)** a questi gruppi per prevenire modifiche non autorizzate. Tuttavia, questa funzionalità può essere sfruttata; se un attaccante modifica l'ACL di AdminSDHolder per dare accesso completo a un utente normale, quell'utente ottiene un controllo esteso su tutti i gruppi privilegiati. Questa misura di sicurezza, destinata a proteggere, può quindi ritorcersi contro, consentendo accessi non autorizzati a meno che non venga monitorata da vicino.
 | 
			
		||||
L'oggetto **AdminSDHolder** in Active Directory garantisce la sicurezza dei **gruppi privilegiati** (come Domain Admins e Enterprise Admins) applicando una standard **Access Control List (ACL)** su questi gruppi per prevenire modifiche non autorizzate. Tuttavia, questa funzionalità può essere sfruttata; se un attaccante modifica l'ACL di AdminSDHolder per dare accesso completo a un utente normale, quell'utente ottiene un controllo esteso su tutti i gruppi privilegiati. Questa misura di sicurezza, destinata a proteggere, può quindi ritorcersi contro, consentendo accessi non autorizzati a meno che non venga monitorata da vicino.
 | 
			
		||||
 | 
			
		||||
[**Maggiori informazioni sul Gruppo AdminDSHolder qui.**](privileged-groups-and-token-privileges.md#adminsdholder-group)
 | 
			
		||||
 | 
			
		||||
### Credenziali DSRM
 | 
			
		||||
 | 
			
		||||
All'interno di ogni **Domain Controller (DC)**, esiste un account **amministratore locale**. Ottenendo diritti di amministratore su tale macchina, l'hash dell'Amministratore locale può essere estratto utilizzando **mimikatz**. Successivamente, è necessaria una modifica del registro per **abilitare l'uso di questa password**, consentendo l'accesso remoto all'account dell'Amministratore locale.
 | 
			
		||||
All'interno di ogni **Domain Controller (DC)**, esiste un account **amministratore locale**. Ottenendo diritti di amministratore su una tale macchina, l'hash dell'Amministratore locale può essere estratto utilizzando **mimikatz**. Successivamente, è necessaria una modifica del registro per **abilitare l'uso di questa password**, consentendo l'accesso remoto all'account dell'Amministratore locale.
 | 
			
		||||
 | 
			
		||||
{{#ref}}
 | 
			
		||||
dsrm-credentials.md
 | 
			
		||||
@ -462,7 +462,7 @@ acl-persistence-abuse/
 | 
			
		||||
 | 
			
		||||
### Descrittori di Sicurezza
 | 
			
		||||
 | 
			
		||||
I **descrittori di sicurezza** vengono utilizzati per **memorizzare** i **permessi** che un **oggetto** ha **su** un **oggetto**. Se riesci a **fare** un **piccolo cambiamento** nel **descrittore di sicurezza** di un oggetto, puoi ottenere privilegi molto interessanti su quell'oggetto senza dover essere membro di un gruppo privilegiato.
 | 
			
		||||
I **descrittori di sicurezza** vengono utilizzati per **memorizzare** i **permessi** che un **oggetto** ha **su** un **oggetto**. Se puoi semplicemente **fare** un **piccolo cambiamento** nel **descrittore di sicurezza** di un oggetto, puoi ottenere privilegi molto interessanti su quell'oggetto senza dover essere membro di un gruppo privilegiato.
 | 
			
		||||
 | 
			
		||||
{{#ref}}
 | 
			
		||||
security-descriptors.md
 | 
			
		||||
@ -511,7 +511,7 @@ Microsoft considera la **Foresta** come il confine di sicurezza. Ciò implica ch
 | 
			
		||||
 | 
			
		||||
Una [**fiducia di dominio**](<http://technet.microsoft.com/en-us/library/cc759554(v=ws.10).aspx>) è un meccanismo di sicurezza che consente a un utente di un **dominio** di accedere alle risorse in un altro **dominio**. Crea essenzialmente un collegamento tra i sistemi di autenticazione dei due domini, consentendo che le verifiche di autenticazione fluiscano senza problemi. Quando i domini impostano una fiducia, scambiano e mantengono specifici **chiavi** all'interno dei loro **Domain Controllers (DC)**, che sono cruciali per l'integrità della fiducia.
 | 
			
		||||
 | 
			
		||||
In uno scenario tipico, se un utente intende accedere a un servizio in un **dominio fidato**, deve prima richiedere un ticket speciale noto come **inter-realm TGT** dal DC del proprio dominio. Questo TGT è crittografato con una **chiave** condivisa su cui entrambi i domini hanno concordato. L'utente presenta quindi questo TGT al **DC del dominio fidato** per ottenere un ticket di servizio (**TGS**). Dopo la validazione con successo dell'inter-realm TGT da parte del DC del dominio fidato, emette un TGS, concedendo all'utente accesso al servizio.
 | 
			
		||||
In uno scenario tipico, se un utente intende accedere a un servizio in un **dominio fidato**, deve prima richiedere un biglietto speciale noto come **inter-realm TGT** dal DC del proprio dominio. Questo TGT è crittografato con una **chiave** condivisa su cui entrambi i domini hanno concordato. L'utente presenta quindi questo TGT al **DC del dominio fidato** per ottenere un biglietto di servizio (**TGS**). Dopo la validazione con successo dell'inter-realm TGT da parte del DC del dominio fidato, emette un TGS, concedendo all'utente accesso al servizio.
 | 
			
		||||
 | 
			
		||||
**Passaggi**:
 | 
			
		||||
 | 
			
		||||
@ -531,12 +531,12 @@ Se il Dominio A si fida del Dominio B, A è il dominio fiducioso e B è quello f
 | 
			
		||||
 | 
			
		||||
**Diverse relazioni di fiducia**
 | 
			
		||||
 | 
			
		||||
- **Fiducia Genitore-Figlio**: Questa è una configurazione comune all'interno della stessa foresta, dove un dominio figlio ha automaticamente una fiducia bidirezionale transitiva con il suo dominio genitore. Essenzialmente, ciò significa che le richieste di autenticazione possono fluire senza problemi tra il genitore e il figlio.
 | 
			
		||||
- **Fiducia Cross-link**: Riferita come "fiducia di collegamento rapido", queste sono stabilite tra domini figli per accelerare i processi di riferimento. In foreste complesse, i riferimenti di autenticazione devono generalmente viaggiare fino alla radice della foresta e poi giù fino al dominio target. Creando collegamenti incrociati, il viaggio viene accorciato, il che è particolarmente vantaggioso in ambienti geograficamente dispersi.
 | 
			
		||||
- **Fiducia Esterna**: Queste sono impostate tra domini diversi e non correlati e sono di natura non transitiva. Secondo [la documentazione di Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>), le fiducia esterne sono utili per accedere a risorse in un dominio al di fuori della foresta attuale che non è connesso tramite una fiducia tra foreste. La sicurezza è rafforzata attraverso il filtraggio SID con fiducia esterne.
 | 
			
		||||
- **Fiducia Tree-root**: Queste fiducia sono automaticamente stabilite tra il dominio radice della foresta e un nuovo albero radice aggiunto. Anche se non comunemente incontrate, le fiducia tree-root sono importanti per aggiungere nuovi alberi di dominio a una foresta, consentendo loro di mantenere un nome di dominio unico e garantendo una transitività bidirezionale. Maggiori informazioni possono essere trovate nella [guida di Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>).
 | 
			
		||||
- **Fiducia tra Foreste**: Questo tipo di fiducia è una fiducia bidirezionale transitiva tra due domini radice di foresta, applicando anche il filtraggio SID per migliorare le misure di sicurezza.
 | 
			
		||||
- **Fiducia MIT**: Queste fiducia sono stabilite con domini Kerberos non Windows, conformi a [RFC4120](https://tools.ietf.org/html/rfc4120). Le fiducia MIT sono un po' più specializzate e si rivolgono a ambienti che richiedono integrazione con sistemi basati su Kerberos al di fuori dell'ecosistema Windows.
 | 
			
		||||
- **Fiducia Genitore-Figlio**: Questa è una configurazione comune all'interno della stessa foresta, dove un dominio figlio ha automaticamente una fiducia transitoria bidirezionale con il suo dominio genitore. Essenzialmente, ciò significa che le richieste di autenticazione possono fluire senza problemi tra il genitore e il figlio.
 | 
			
		||||
- **Fiducia Cross-link**: Riferita come "fiducia abbreviata", queste sono stabilite tra domini figli per accelerare i processi di riferimento. In foreste complesse, i riferimenti di autenticazione devono generalmente viaggiare fino alla radice della foresta e poi giù fino al dominio target. Creando collegamenti incrociati, il viaggio viene accorciato, il che è particolarmente vantaggioso in ambienti geograficamente dispersi.
 | 
			
		||||
- **Fiducia Esterna**: Queste sono impostate tra domini diversi e non correlati e sono di natura non transitoria. Secondo [la documentazione di Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>), le fiducia esterne sono utili per accedere a risorse in un dominio al di fuori della foresta attuale che non è connesso tramite una fiducia tra foreste. La sicurezza è rafforzata attraverso il filtraggio SID con fiducia esterne.
 | 
			
		||||
- **Fiducia Tree-root**: Queste fiducia sono automaticamente stabilite tra il dominio radice della foresta e un nuovo albero radice aggiunto. Anche se non comunemente incontrate, le fiducia tree-root sono importanti per aggiungere nuovi alberi di dominio a una foresta, consentendo loro di mantenere un nome di dominio unico e garantendo una transitorietà bidirezionale. Maggiori informazioni possono essere trovate nella [guida di Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>).
 | 
			
		||||
- **Fiducia tra Foreste**: Questo tipo di fiducia è una fiducia bidirezionale transitoria tra due domini radice di foresta, imponendo anche il filtraggio SID per migliorare le misure di sicurezza.
 | 
			
		||||
- **Fiducia MIT**: Queste fiducia sono stabilite con domini Kerberos non Windows, [RFC4120-compliant](https://tools.ietf.org/html/rfc4120). Le fiducia MIT sono un po' più specializzate e si rivolgono a ambienti che richiedono integrazione con sistemi basati su Kerberos al di fuori dell'ecosistema Windows.
 | 
			
		||||
 | 
			
		||||
#### Altre differenze nelle **relazioni di fiducia**
 | 
			
		||||
 | 
			
		||||
@ -552,9 +552,9 @@ Se il Dominio A si fida del Dominio B, A è il dominio fiducioso e B è quello f
 | 
			
		||||
 | 
			
		||||
Gli attaccanti potrebbero accedere alle risorse in un altro dominio attraverso tre meccanismi principali:
 | 
			
		||||
 | 
			
		||||
- **Appartenenza a Gruppi Locali**: I principi potrebbero essere aggiunti a gruppi locali su macchine, come il gruppo “Amministratori” su un server, concedendo loro un controllo significativo su quella macchina.
 | 
			
		||||
- **Appartenenza a Gruppi di Domini Esterni**: I principi possono anche essere membri di gruppi all'interno del dominio esterno. Tuttavia, l'efficacia di questo metodo dipende dalla natura della fiducia e dall'ambito del gruppo.
 | 
			
		||||
- **Liste di Controllo degli Accessi (ACL)**: I principi potrebbero essere specificati in un **ACL**, in particolare come entità in **ACE** all'interno di un **DACL**, fornendo loro accesso a risorse specifiche. Per coloro che desiderano approfondire la meccanica delle ACL, DACL e ACE, il whitepaper intitolato “[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)” è una risorsa preziosa.
 | 
			
		||||
- **Appartenenza a Gruppi Locali**: I principali potrebbero essere aggiunti a gruppi locali su macchine, come il gruppo "Amministratori" su un server, concedendo loro un controllo significativo su quella macchina.
 | 
			
		||||
- **Appartenenza a Gruppi di Domini Stranieri**: I principali possono anche essere membri di gruppi all'interno del dominio straniero. Tuttavia, l'efficacia di questo metodo dipende dalla natura della fiducia e dall'ambito del gruppo.
 | 
			
		||||
- **Access Control Lists (ACLs)**: I principali potrebbero essere specificati in un **ACL**, in particolare come entità in **ACEs** all'interno di un **DACL**, fornendo loro accesso a risorse specifiche. Per coloro che desiderano approfondire la meccanica delle ACL, DACL e ACE, il whitepaper intitolato “[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)” è una risorsa preziosa.
 | 
			
		||||
 | 
			
		||||
### Trova utenti/gruppi esterni con permessi
 | 
			
		||||
 | 
			
		||||
@ -612,7 +612,7 @@ sid-history-injection.md
 | 
			
		||||
 | 
			
		||||
#### Sfruttare il Configuration NC scrivibile
 | 
			
		||||
 | 
			
		||||
Comprendere come il Configuration Naming Context (NC) possa essere sfruttato è cruciale. Il Configuration NC funge da repository centrale per i dati di configurazione in ambienti Active Directory (AD) attraverso una foresta. Questi dati vengono replicati a ogni Domain Controller (DC) all'interno della foresta, con i DC scrivibili che mantengono una copia scrivibile del Configuration NC. Per sfruttare questo, è necessario avere **privilegi SYSTEM su un DC**, preferibilmente un DC child.
 | 
			
		||||
Comprendere come il Configuration Naming Context (NC) possa essere sfruttato è cruciale. Il Configuration NC funge da repository centrale per i dati di configurazione in ambienti Active Directory (AD) attraverso una foresta. Questi dati vengono replicati a ogni Domain Controller (DC) all'interno della foresta, con DC scrivibili che mantengono una copia scrivibile del Configuration NC. Per sfruttare questo, è necessario avere **privilegi SYSTEM su un DC**, preferibilmente un DC child.
 | 
			
		||||
 | 
			
		||||
**Collegare GPO al sito root DC**
 | 
			
		||||
 | 
			
		||||
@ -655,7 +655,7 @@ TrustDirection  : Inbound          --> Inboud trust
 | 
			
		||||
WhenCreated     : 2/19/2021 10:50:56 PM
 | 
			
		||||
WhenChanged     : 2/19/2021 10:50:56 PM
 | 
			
		||||
```
 | 
			
		||||
In questo scenario **il tuo dominio è fidato** da uno esterno che ti concede **permessi indeterminati** su di esso. Dovrai scoprire **quali principi del tuo dominio hanno accesso su quale dominio esterno** e poi cercare di sfruttarlo:
 | 
			
		||||
In questo scenario **il tuo dominio è fidato** da un dominio esterno che ti concede **permessi indeterminati** su di esso. Dovrai scoprire **quali principi del tuo dominio hanno accesso su quale dominio esterno** e poi cercare di sfruttarlo:
 | 
			
		||||
 | 
			
		||||
{{#ref}}
 | 
			
		||||
external-forest-domain-oneway-inbound.md
 | 
			
		||||
@ -675,7 +675,7 @@ WhenChanged     : 2/19/2021 10:15:24 PM
 | 
			
		||||
```
 | 
			
		||||
In questo scenario **il tuo dominio** sta **fidando** alcuni **privilegi** a un principale di **domini diversi**.
 | 
			
		||||
 | 
			
		||||
Tuttavia, quando un **dominio è fidato** dal dominio fidante, il dominio fidato **crea un utente** con un **nome prevedibile** che utilizza come **password la password fidata**. Ciò significa che è possibile **accedere a un utente dal dominio fidante per entrare in quello fidato** per enumerarlo e cercare di ottenere più privilegi:
 | 
			
		||||
Tuttavia, quando un **dominio è fidato** dal dominio fidante, il dominio fidato **crea un utente** con un **nome prevedibile** che utilizza come **password la password fidata**. Ciò significa che è possibile **accedere a un utente dal dominio fidante per entrare in quello fidato** per enumerarlo e cercare di aumentare ulteriormente i privilegi:
 | 
			
		||||
 | 
			
		||||
{{#ref}}
 | 
			
		||||
external-forest-domain-one-way-outbound.md
 | 
			
		||||
@ -694,13 +694,13 @@ rdp-sessions-abuse.md
 | 
			
		||||
 | 
			
		||||
### **Filtraggio SID:**
 | 
			
		||||
 | 
			
		||||
- Il rischio di attacchi che sfruttano l'attributo della cronologia SID attraverso le fiducie delle foreste è mitigato dal Filtraggio SID, che è attivato per impostazione predefinita su tutte le fiducie inter-foresta. Questo è supportato dall'assunzione che le fiducie intra-foresta siano sicure, considerando la foresta, piuttosto che il dominio, come il confine di sicurezza secondo la posizione di Microsoft.
 | 
			
		||||
- Il rischio di attacchi che sfruttano l'attributo della cronologia SID attraverso le fiducie tra foreste è mitigato dal Filtraggio SID, che è attivato per impostazione predefinita su tutte le fiducie inter-foresta. Questo è supportato dall'assunzione che le fiducie intra-foresta siano sicure, considerando la foresta, piuttosto che il dominio, come il confine di sicurezza secondo la posizione di Microsoft.
 | 
			
		||||
- Tuttavia, c'è un problema: il filtraggio SID potrebbe interrompere le applicazioni e l'accesso degli utenti, portando alla sua disattivazione occasionale.
 | 
			
		||||
 | 
			
		||||
### **Autenticazione Selettiva:**
 | 
			
		||||
 | 
			
		||||
- Per le fiducie inter-foresta, l'uso dell'Autenticazione Selettiva garantisce che gli utenti delle due foreste non siano autenticati automaticamente. Invece, sono necessarie autorizzazioni esplicite per gli utenti per accedere ai domini e ai server all'interno del dominio o della foresta fidante.
 | 
			
		||||
- È importante notare che queste misure non proteggono contro lo sfruttamento del Contesto di Nominazione di Configurazione scrivibile (NC) o attacchi all'account di fiducia.
 | 
			
		||||
- Per le fiducie inter-foresta, l'uso dell'Autenticazione Selettiva garantisce che gli utenti delle due foreste non siano autenticati automaticamente. Invece, sono necessarie autorizzazioni esplicite affinché gli utenti accedano ai domini e ai server all'interno del dominio o della foresta fidante.
 | 
			
		||||
- È importante notare che queste misure non proteggono contro lo sfruttamento del Contesto di Nominazione di Configurazione (NC) scrivibile o attacchi all'account di fiducia.
 | 
			
		||||
 | 
			
		||||
[**Ulteriori informazioni sulle fiducie di dominio in ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain)
 | 
			
		||||
 | 
			
		||||
@ -718,7 +718,7 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-move
 | 
			
		||||
 | 
			
		||||
- **Restrizioni per gli Amministratori di Dominio**: Si raccomanda che gli Amministratori di Dominio possano accedere solo ai Controller di Dominio, evitando il loro utilizzo su altri host.
 | 
			
		||||
- **Privilegi degli Account di Servizio**: I servizi non dovrebbero essere eseguiti con privilegi di Amministratore di Dominio (DA) per mantenere la sicurezza.
 | 
			
		||||
- **Limitazione Temporale dei Privilegi**: Per i compiti che richiedono privilegi DA, la loro durata dovrebbe essere limitata. Questo può essere ottenuto con: `Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)`
 | 
			
		||||
- **Limitazione Temporale dei Privilegi**: Per compiti che richiedono privilegi DA, la loro durata dovrebbe essere limitata. Questo può essere ottenuto con: `Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)`
 | 
			
		||||
 | 
			
		||||
### **Implementazione di Tecniche di Inganno**
 | 
			
		||||
 | 
			
		||||
@ -728,12 +728,12 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-move
 | 
			
		||||
 | 
			
		||||
### **Identificazione dell'Inganno**
 | 
			
		||||
 | 
			
		||||
- **Per gli Oggetti Utente**: Indicatori sospetti includono ObjectSID atipico, accessi infrequenti, date di creazione e bassi conteggi di password errate.
 | 
			
		||||
- **Per Oggetti Utente**: Indicatori sospetti includono ObjectSID atipico, accessi infrequenti, date di creazione e bassi conteggi di password errate.
 | 
			
		||||
- **Indicatori Generali**: Confrontare gli attributi di potenziali oggetti esca con quelli di oggetti genuini può rivelare incongruenze. Strumenti come [HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster) possono aiutare a identificare tali inganni.
 | 
			
		||||
 | 
			
		||||
### **Evitare i Sistemi di Rilevamento**
 | 
			
		||||
### **Evasione dei Sistemi di Rilevamento**
 | 
			
		||||
 | 
			
		||||
- **Bypass della Rilevazione di Microsoft ATA**:
 | 
			
		||||
- **Evasione della Rilevazione di Microsoft ATA**:
 | 
			
		||||
- **Enumerazione degli Utenti**: Evitare l'enumerazione delle sessioni sui Controller di Dominio per prevenire la rilevazione da parte di ATA.
 | 
			
		||||
- **Impersonificazione del Ticket**: Utilizzare chiavi **aes** per la creazione di ticket aiuta a evitare la rilevazione non degradando a NTLM.
 | 
			
		||||
- **Attacchi DCSync**: È consigliato eseguire da un non-Controller di Dominio per evitare la rilevazione da parte di ATA, poiché l'esecuzione diretta da un Controller di Dominio attiverà avvisi.
 | 
			
		||||
 | 
			
		||||
@ -107,7 +107,7 @@ Le hash risultanti possono essere iniettati con **mimikatz** (`sekurlsa::pth`) o
 | 
			
		||||
## Riferimenti
 | 
			
		||||
 | 
			
		||||
- [Golden dMSA – bypass dell'autenticazione per gli Account di Servizio Gestiti Delegati](https://www.semperis.com/blog/golden-dmsa-what-is-dmsa-authentication-bypass/)
 | 
			
		||||
- [Repository GitHub Semperis/GoldenDMSA](https://github.com/Semperis/GoldenDMSA)
 | 
			
		||||
- [Repository GitHub di Semperis/GoldenDMSA](https://github.com/Semperis/GoldenDMSA)
 | 
			
		||||
- [Improsec – attacco di fiducia Golden gMSA](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent)
 | 
			
		||||
 | 
			
		||||
{{#include ../../banners/hacktricks-training.md}}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user