
Extension Burp Suite pour effectuer l'authentification Kerberos
Publié en open source par NCC Group Plc - http://www.nccgroup.trust/
Développé par Richard Turnbull, richard [dot] turnbull [at] nccgroup [dot] com
http://www.github.com/nccgroup/Berserko
Publié sous licence AGPL, voir LICENSE pour plus d'informations
Le développement ultérieur de Berserko aura lieu à https://github.com/rteatea/Berserko
Berserko est une extension Burp qui ajoute la prise en charge de l'authentification Kerberos. Elle est utile pour les tests dans un domaine Windows lorsque l'authentification NTLM n'est pas prise en charge (Burp gère déjà NTLM). Berserko n'exige pas que la machine exécutant Burp soit jointe au domaine (ni même qu'elle exécute Windows).
La seule solution existante dont nous ayons actuellement connaissance pour tester des applications Kerberos avec Burp consiste à passer par Fiddler, avec une authentification configurée selon ces instructions. Mais Fiddler est exclusivement Windows, et le chaînage de proxys ajoute de la complexité et nuit aux performances, il est donc agréable de disposer de la fonctionnalité Kerberos directement dans Burp.
Téléchargez le dernier fichier jar de Berserko depuis l'onglet Releases, ou depuis le dossier berserko\releases
Allez dans l'onglet Extender de Burp, sélectionnez Add, assurez-vous que Java est sélectionné comme Extension type, puis pointez-le vers le fichier jar. Si tout se passe bien, l'onglet Berserko devrait être ajouté à l'interface de Burp.
Il y a divers contrôles sur l'onglet Berserko de Burp.
La case Do Kerberos authentication est un interrupteur principal. Tant qu'elle n'est pas activée, Berserko ne fait rien du tout.
Le bouton Restore defaults remet Berserko à la configuration par défaut (dans laquelle aucun détail de domaine ni identifiants utilisateur n'est présent).
Le bouton Clear Kerberos state efface tous les tickets Kerberos et autres états côté client. La seule raison pour laquelle vous pourriez avoir besoin de l'utiliser serait si des modifications avaient été apportées à la configuration Kerberos côté serveur et que vous souhaitiez repartir d'un état vierge.
Le bouton Write tickets to log écrit des informations sur vos tickets Kerberos actuels dans le flux de journalisation de Berserko - cela peut être utile pour le débogage / le dépannage. Pour voir les journaux, allez dans l'onglet Extender de Burp, sélectionnez Berserko et regardez l'onglet Output en dessous. Il peut être judicieux d'utiliser l'option Save to file ici, car les données de tickets peuvent facilement remplir le tampon de journalisation de l'interface graphique.
Certains contrôles disposent d'un bouton d'aide qui affiche plus d'informations.
Spécifiez le nom DNS du domaine et l'hôte KDC à l'aide des contrôles de cette section. Les zones de texte ne peuvent pas être modifiées directement ; vous devez utiliser le bouton 'Change' pour les modifier.
Le Domain DNS Name doit être le nom DNS du domaine contre lequel vous souhaitez vous authentifier (pour être précis, il s'agit en réalité du realm Kerberos). Cela devrait ressembler à mydomain.acme.local. Il ne doit pas s'agir du nom NETBIOS du domaine (qui serait quelque chose comme MYDOMAIN).
L'hôte KDC doit être le nom d'hôte (ou l'adresse IP) d'un KDC Kerberos (Key Distribution Center). Dans un domaine Windows, un KDC est simplement un contrôleur de domaine.
Après avoir fourni le Domain DNS Name, vous pouvez utiliser le bouton Auto pour essayer de localiser automatiquement un KDC. Il procède en envoyant une requête DNS SRV pour le service Kerberos. Si l'un de vos serveurs DNS est un contrôleur de domaine pour le bon domaine, cela devrait fonctionner. Si ce n'est pas le cas, cela ne fonctionnera pas. ❗**Cette fonctionnalité ne fonctionnera pas dans les versions récentes de Burp, car les bibliothèques DNS nécessaires ne sont pas fournies avec le JRE intégré. Vous pouvez contourner ce problème en lançant sous un JRE complet comme décrit en haut de ce README.}❗
Lorsque le Domain DNS Name et l'hôte KDC ont été saisis, utilisez le bouton Test domain settings pour tester la connectivité. Si tout se passe bien, vous obtiendrez une réponse Successfully contacted Kerberos service.
Voir ce fichier pour beaucoup plus d'informations sur l'obtention des bonnes valeurs pour ces paramètres de domaine.
Spécifiez le nom d'utilisateur et le mot de passe d'un compte de domaine à l'aide des contrôles de cette section. Les zones de texte ne peuvent pas être modifiées directement ; vous devez utiliser le bouton 'Change' pour les modifier.
Le Username doit être simplement le nom d'utilisateur. Cela devrait ressembler à bob. Il ne doit pas s'agir de MYDOMAIN\bob ni de [email protected] ou similaire.
Après avoir fourni les identifiants, vous pouvez utiliser le bouton Test credentials. Cela tentera d'acquérir un ticket d'octroi de ticket Kerberos pour l'utilisateur spécifié. En cas de succès, vous obtiendrez une réponse TGT successfully acquired. En cas d'échec, notez qu'il s'agit d'une tentative d'authentification au domaine, alors veillez à ne pas verrouiller votre compte.
Le mot de passe ne sera pas enregistré dans la configuration de Berserko pour la prochaine fois, sauf si la case Save password in Burp config? est cochée. Tous les autres paramètres seront toutefois enregistrés.
Certaines applications utilisent la délégation Kerberos côté serveur pour transmettre l'identité du client à d'autres serveurs (mais il n'existe pas de moyen simple de déterminer côté client si elle est utilisée).