<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
FreeIPA è un'alternativa open-source all'Active Directory di Microsoft Windows, principalmente per ambienti Unix. Combina un completo **directory LDAP** con un Centro di Distribuzione Chiavi MIT **Kerberos** per la gestione simile all'Active Directory. Utilizzando il Sistema di Certificati Dogtag per la gestione dei certificati CA & RA, supporta l'autenticazione **multi-fattore**, inclusi i smartcard. SSSD è integrato per i processi di autenticazione Unix.
* Il file in `/etc/krb5.conf` è dove sono memorizzate le informazioni del client Kerberos, necessarie per l'iscrizione al dominio. Questo include le posizioni dei KDC e dei server di amministrazione, le impostazioni predefinite e le mappature.
* Le impostazioni predefinite a livello di sistema per i client e i server IPA sono impostate nel file situato in `/etc/ipa/default.conf`.
* Gli host all'interno del dominio devono avere un file `krb5.keytab` in `/etc/krb5.keytab` per i processi di autenticazione.
* Diverse variabili d'ambiente (`KRB5CCNAME`, `KRB5_KTNAME`, `KRB5_CONFIG`, `KRB5_KDC_PROFILE`, `KRB5RCACHETYPE`, `KRB5RCACHEDIR`, `KRB5_TRACE`, `KRB5_CLIENT_KTNAME`, `KPROP_PORT`) sono utilizzate per puntare a file specifici e impostazioni rilevanti per l'autenticazione Kerberos.
Strumenti come `ipa`, `kdestroy`, `kinit`, `klist`, `kpasswd`, `ksu`, `kswitch` e `kvno` sono centrali nella gestione dei domini FreeIPA, nel trattare i biglietti Kerberos, nel cambiare le password e nell'ottenere i biglietti di servizio, tra le altre funzionalità.
L'autenticazione in FreeIPA, sfruttando **Kerberos**, riflette quella in **Active Directory**. L'accesso alle risorse del dominio richiede un biglietto Kerberos valido, che può essere memorizzato in varie posizioni a seconda della configurazione del dominio FreeIPA.
I file CCACHE, memorizzati tipicamente in **`/tmp`** con permessi **600**, sono formati binari per memorizzare le credenziali Kerberos, importanti per l'autenticazione senza la password in chiaro dell'utente a causa della loro portabilità. Il parsing di un biglietto CCACHE può essere fatto utilizzando il comando `klist`, e riutilizzare un biglietto CCACHE valido coinvolge l'esportazione di `KRB5CCNAME` nel percorso del file del biglietto.
Alternativamente, i Biglietti CCACHE possono essere memorizzati nel portachiavi Linux, offrendo maggiore controllo sulla gestione dei biglietti. La portata della memorizzazione dei biglietti varia (`KEYRING:name`, `KEYRING:process:name`, `KEYRING:thread:name`, `KEYRING:session:name`, `KEYRING:persistent:uidnumber`), con `klist` in grado di analizzare queste informazioni per l'utente. Tuttavia, riutilizzare un Biglietto CCACHE dal portachiavi Unix può presentare sfide, con strumenti come **Tickey** disponibili per estrarre i biglietti Kerberos.
I file Keytab, contenenti principali Kerberos e chiavi crittografate, sono fondamentali per ottenere biglietti di concessione di ticket (TGT) validi senza necessità della password del principale. Analizzare e riutilizzare le credenziali dai file Keytab può essere facilmente eseguito con utility come `klist` e script come **KeytabParser**.
Potresti eseguire l'**enumerazione** tramite **ldap** e altri **strumenti binari**, o **connettendoti alla pagina web sulla porta 443 del server FreeIPA**.
È possibile creare **host**, **utenti** e **gruppi**. Gli host e gli utenti sono ordinati in contenitori chiamati "**Gruppi Host**" e "**Gruppi Utenti**" rispettivamente. Questi sono simili alle **Unità Organizzative** (OU).
Per impostazione predefinita in FreeIPA, il server LDAP consente **bind anonimi**, e una vasta gamma di dati è enumerabile **non autenticati**. Questo può enumerare tutti i dati disponibili non autenticati:
Per ottenere **ulteriori informazioni** è necessario utilizzare una sessione **autenticata** (controlla la sezione sull'Autenticazione per imparare come preparare una sessione autenticata).
* L'hash della password di un utente è memorizzato come **base64** nell'**attributo** "userPassword". Questo hash potrebbe essere **SSHA512** (versioni precedenti di FreeIPA) o **PBKDF2\_SHA256**.
* L'**Nthash** della password è memorizzato come **base64** in "ipaNTHash" se il sistema è integrato con **AD**.
• Se FreeIPA è integrato con AD, l'**ipaNTHash** è facile da craccare: Dovresti **decodificare** il **base64** -> ricodificarlo come esadecimale **ASCII** -> John The Ripper o **hashcat** possono aiutarti a craccarlo velocemente
• Se viene utilizzata una vecchia versione di FreeIPA, quindi viene utilizzato **SSHA512**: Dovresti decodificare il **base64** -> trovare l'hash SSHA512 -> John The Ripper o **hashcat** possono aiutarti a craccarlo
• Se viene utilizzata una nuova versione di FreeIPA, quindi viene utilizzato **PBKDF2\_SHA256**: Dovresti decodificare il **base64** -> trovare PBKDF2\_SHA256 -> la sua **lunghezza** è di 256 byte. John può lavorare con 256 bit (32 byte) -> SHA-265 utilizzato come funzione pseudo-casuale, la dimensione del blocco è di 32 byte -> puoi utilizzare solo i primi 256 bit del nostro hash PBKDF2\_SHA256 -> John The Ripper o hashcat possono aiutarti a craccarlo
FreeIPA consente il controllo centralizzato delle **autorizzazioni sudo** tramite le regole sudo. Queste regole permettono o limitano l'esecuzione di comandi con sudo sugli host all'interno del dominio. Un attaccante potrebbe potenzialmente identificare gli host, gli utenti e i comandi consentiti esaminando questi set di regole.
Un **ruolo** è composto da vari **privilegi**, ognuno dei quali comprende una serie di **autorizzazioni**. Questi ruoli possono essere assegnati a Utenti, **Gruppi** di Utenti, **Host**, Gruppi di Host e Servizi. Ad esempio, considera il ruolo predefinito di "Amministratore Utente" in FreeIPA per esemplificare questa struttura.
In [https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e](https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e) puoi trovare un semplice esempio di come abusare di alcuni permessi per compromettere il dominio.
Puoi trovare una spiegazione dettagliata in [https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b](https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b)
<summary><strong>Impara l'hacking AWS da zero a esperto 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 di [**NFT esclusivi**](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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.