Kerberos exploitation

Fonctionnement de Kerberos

Def :


Pasted image 20240412160155.png
https://www.tarlogic.com/blog/how-kerberos-works/#What_is_Kerberos
https://medium.com/identity-beyond-borders/kerberos-explained-3bc2ddb7b0eb
Version détaillée : https://blog.devensys.com/2018/07/18/kerberos-principe-de-fonctionnement/
Kerberos est un protocole d'autorisation, il est principalement et massivement utilisé dans le principe d'authentification AD.
ATTENTION : Kerberos authentifie les utilisateurs pour vérifier leur identité seulement, Kerberos ne donne pas de d'autorisation. En coopération avec un AD il permet bien de faire du AAA.
Exemple :
Le principe de fonctionnement général est simple. L’utilisateur s’authentifie auprès du service d’authentification (le vigile). Celui-ci lui donne un ticket d’accès prouvant qu’il s’est authentifié (un badge). L’utilisateur se rend auprès du service de gestion des tickets. Il demande un accès au service de fichiers par exemple. Grâce au badge donné par le vigile le service de ticket sait que l’utilisateur s’est bien authentifié. Il va donc lui remettre un ticket d’accès au service de fichier. L’utilisateur peut maintenant aller voir le service de fichier avec son ticket. Le service lui donnera accès aux ressources correspondantes à ses autorisations.

Exploitation :


Les attaques principales sur le service Kerberos sont les suivantes :
https://www.tarlogic.com/blog/how-to-attack-kerberos/

Overpass The Hash/Pass The Key (PTK) :


PTH est une attaque efficace et très connue, le but étant d'utiliser le hash d'un utilisateur pour usurper son identité.
Connaître le HASH d'un utilisateur permet d'obtenir des accès aux services auquel il a accès.
Un hash d'un utilisateur peut être extrait des fichiers SAM des machines utilisateurs, ou bien des fichiers NTDS.DIT des DC. Ou des process Isass dans la mémoire (Mimikatz peut la encore être utilisé).

Pass The Ticket (PTT) :


Le but de cet attaque est d'obtenir un ticket utilisateur pour le rejouer. Aussi il est nécessaire d'obtenir une clé de session avec pour l'utilisateur.
Un MITM peut être utilisé pour obtenir ce ticket, mais cela ne permet pas d'avoir la clé de session. Sinon Isass process memory est exploitable la encore.
Un TGT est préférable puisque l'on pourra l'utiliser pour attaquer de nombreux service. Aussi les tickets sont utilisables 10h, donc il faut les exploiter directement.

Golden/Silver Ticket :


Le but d'une attaque Golden ticket est de construire de toute pièces un TGT. Donc il faut un prérequis :
Obtenir le hash du compte krbtgt

Un Silver ticket est similaire, le ticket construit est un TGS. De ce fait, la service key est nécessaire et est dérivée du service owner account.
Ensuite on peut construire un TGT avec des privilèges custom, notamment avec le PAC que l'on veut puisqu'il est rarement vérifié contre l'AD. Mais si c'est vérifié il faudra passer sur un Golden Ticket.

Kerberoasting :


kerberos_1.webp
Un TGS arrive chiffré avec la service key, on peut donc avec cela essayer de cracker le hash de la service key (issu du mdp du propriétaire de service).

ASREPRoast :


Cette technique repose sur le fait que l'attribut DONT_REQ_PREAUTH soit en mode vrai, donc on peut faire un KRB_AS_REQ sans password. Après ça, on reçoit un KRB_AS_REP qui contient des informations chiffrées avec la clé utilisateur. Ça nous permet de cracker ce hash offline.
https://www.tarlogic.com/blog/how-to-attack-kerberos/