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.

Fonctionnement :


Kerberos est composé de nombreux modules, qui fonctionnent ensembles :

Transport Layer :


Kerberos, utilise UDP ou TCP comme protocole de transport. Ce protocole ne chiffre pas les communications, et donc Kerberos doit s'en charger.

Ports :

Agents :


3 agents fonctionnent en symbiose pour fournir l'authentification Kerberos.

Encryption Keys :


Pour protéger les échanges de Kerberos plusieurs moyens de signature et de chiffrement existent :

Tickets :


Pasted image 20240412163047.pngLa structure principale gérée par Kerberos sont les tickets. Les tickets sont délivrés aux utilisateurs pour qu'ils puissent faire des action dans le royaume Kerberos (Kerberos Realm).
Il existe deux types de tickets :

PAC :


Pasted image 20240412164208.png
https://blog.netwrix.com/2023/01/10/what-is-the-kerberos-pac/Un Privilege Attribute Certificate est inclus dans quasiment tous les tickets. Le PAC permet de gérer les autorisation dans les tickets et est signé avec la clé KDC.
Le PAC n'est généralement pas vérifié au niveau de sa validité. Les services vérifient uniquement la signature dans le PAC sans vérifier sa validité.
Le PAC contient de nombreuses informations sur les droits de l'utilisateur.
Un client peut vérifier l'inclusion d'un PAC dans un ticket en spécifiant :

KERB-PA-PAC-REQUEST

De nombreuses attaques existent sur le PAC pour faire une escalade de privilèges.

Messages :


kerberos_message_summary.webpKerberos utilise de nombreux messages, les principaux sont les suivants :

Processus d'Authentification :


Pasted image 20240415111859.png
Processus détaillé :
https://blog.devensys.com/2018/07/18/kerberos-principe-de-fonctionnement/
Pour effectuer une authentification un échange de nombreux messages est nécessaire.
On veut d'abord un TGT, puis demander un TGS. Une fois obtenu on peut s'authentifier avec un time stamp pour sécuriser le moment de la connexion.

KRB_AS_REQ :


KRB_AS_REQ.webp
On doit comme préciser obtenir un TGT du KDC (Key Distribution Center). Pour cela, on transmet une requête KRB_AS_REQ, qui possède les champs suivants :

KRB_AS_REP :


KRB_AS_REP.webp
Une fois la première requête reçue, le KDC vérifie l'identité de l'utilisateur en déchiffrant le timstamp. Si la demande est correcte alors on envoie la réponse KRB_AS_REP.
Les données du KRB_AS_REP sont les suivantes :

KRB_TGS_REQ


KRB_TGS_REQ-1.webp
Ce message sert pour obtenir un TGS qui doit être envoyé à un KDC.
Ce message inclut :

KRB_TGS_REP :


KRB_TGS_REP.webp
Une fois avoir reçu un message KRB_TGS_REQ correct, on reçoit une REP qui nous donne le TGS.
Le message KRB_TGS_REP contient :

KRB_AP_REQ :


KRB_AP_REQ.webp
L'utilisateur à maintenat un TGS valide, l'utilisateur doit maintenant envoyer la requête au service dont l'utilisateur demande l'accès.
Ce message inclut :

Avec ces données il faut maintenant comprendre les attaques possibles sur le Kerberos de l'AD : Kerberos exploitation.