Comprendre les attaques Kerberos à l'aide de Rubeus. Partie 2





salut!



Il s'agit de la deuxième partie d'un article sur les capacités de l'outil d'attaque Kerberos, Rubeus. Le premier peut être lu ici . Cette fois, nous examinerons comment utiliser l'outil pour implémenter les attaques suivantes:




  • Dépasser le hachage / passer la clé (PTK);
  • Passez le billet;
  • Délégation sans contrainte;
  • Délégation contrainte.


On a déjà beaucoup écrit sur les raisons pour lesquelles ces attaques sont possibles, quels mécanismes pour leur mise en œuvre existent, quel principe est au cœur de Kerberos (par exemple, des collègues du Jet Infosystem ont publié un bon article avec analyse ), donc dans mon matériel je me concentrerai sur la mise en œuvre d'attaques avec en utilisant Rubeus.



En plus des «actions» pour mener des attaques et interagir avec Kerberos, Rubeus a un petit truc sympa: basé sur le mot de passe en texte clair, il peut calculer le hachage NTLM, ce qui est parfois très pratique et utile.







Ceci conclut une petite digression lyrique, revenons à la partie principale.

Le banc d'essai pour la réalisation d'attaques est resté inchangé depuis la publication de la première partie de l'article .



Surpasser le hachage / passer la clé (PTK)







Pass-the-hash — . , NTLM LM.

Mais que se passe-t-il si l'authentification NTLM ou LM est désactivée sur le réseau et que seule l'authentification Kerberos est utilisée et que vous disposez d'un hachage de mot de passe? C'est là qu'Overpass-the-hash entre en jeu - en utilisant le hachage du mot de passe de l'utilisateur, Rubeus peut demander un TGT pour ce compte.



Ainsi, l'utilisateur du domaine Barsik a décidé d'étudier les problèmes de sécurité de l'information, il a obtenu quelque part le hachage de mot de passe de l'administrateur du domaine ADadmin, a téléchargé Rubeus, a lu des articles intelligents et a essayé de le mettre en pratique.







Nous voyons qu'il n'a pas de tickets en cache, ni d'accès au contrôleur de domaine DC-16.meow.local, mais ensuite Barsik lance Rubeus avec une "action" asktgtet des arguments /domain, /user, /rc4, /pttpour obtenir un ticket TGT valide basé sur le hachage existant du mot de passe du compte ADadmin, argument/ptttéléchargez immédiatement le ticket reçu à la session en cours de l'utilisateur Barsik.







Le ticket est reçu et chargé, Barsik tente à nouveau de se connecter au contrôleur de domaine en tant qu'Adadmin.







Et cette fois, il réussit.



Passer le ticket (PTT)



Cette attaque est similaire à Overpass-the-hash / Pass-the-key, l'attaquant tente d'obtenir un ticket d'utilisateur de domaine (ayant de préférence le maximum de privilèges dans le domaine) et de le charger dans la session en cours. L'un des moyens d'obtenir des tickets TGT consiste à vider les tickets localement sur l'ordinateur du domaine actuel à partir du processus lsass.exe(serveur d'authentification de sécurité local). Pour ce faire, vous devez disposer des privilèges d'administrateur local, et de préférence NT AUTHORITY / SYSTEM. Rubeus peut vider les tickets stockés dans lsass en utilisant l'action de vidage, et l'action de triage montrera quels tickets sont actuellement stockés dans le système.











Rubeus décharge les tickets d' lsassencodés base64, tandis que l'outil lui-même a une note sur la façon d'enregistrer le base64ticket reçu dans .kirbi.







Enregistrez et importez le ticket dans la session utilisateur actuelle.







Comme vous pouvez le voir sur la capture d'écran, le ticket ADadmin a été chargé avec succès et nous pouvons afficher le contenu du lecteur C sur le contrôleur de domaine DC-16.meow.local au nom d'ADadmin.



Délégation sans contrainte



La délégation sans contrainte est un privilège de domaine qui peut être accordé à des comptes d'utilisateurs ou d'ordinateurs. Il permet à un compte de s'authentifier auprès d'un service sur le réseau pour le compte d'un autre compte.



Il est maintenant temps de modifier un peu le banc de test et d'activer la délégation sans restriction: accordons le privilège de la délégation sans restriction à l'ordinateur BARSCOMP.







L'une des étapes de la réalisation de tests de sécurité de domaine Active Directory consiste à rechercher des comptes avec délégation activée, généralement Powerview est utilisé à ces fins , mais il peut également être effectué manuellement à l'aide du module ActiveDirectory standard.







Pour mener à bien cette attaque, j'utiliserai le bug de l' imprimantequi a été détaillé par Lee Christensen de SpecterOps. Tout utilisateur authentifié peut se connecter à distance au serveur d'impression du contrôleur de domaine et demander une mise à jour pour les nouveaux travaux d'impression en leur disant d'envoyer une notification à un compte de délégation sans restriction. Lee Christensen a écrit une application appelée SpoolSample qui accède au service d'impression de CD en utilisant le protocole MS-RPRN.



Sur l'ordinateur à partir duquel l'attaque sera effectuée (BARSCOMP.meow.local), il est nécessaire d'exécuter Rubeus en mode surveillance à l'aide de l '"action" monitoring. Ce mode requiert les privilèges NT ATHORITY / SYSTEM et écoute les nouveaux tickets TGT / TGS dans le processus lsass. Je vais définir l'argument /interval:1(en secondes) sur l'intervalle d'interrogation lsass pour les nouveaux tickets, et l'argument/filteruser:DC-16$Je vais configurer le filtre pour n'afficher que les tickets des utilisateurs DC-16 $.







Rubeus est en cours d'exécution, en parallèle dans une autre session, je lance SpoolSample.exe avec des arguments dc-16.meow.local(machine attaquée) et barscomp.meow.local(notre hôte "en écoute").







Voyons ce que Rubeus a "surveillé".







Attrapé un ticket TGT pour le compte de contrôleur de domaine. Vous pouvez maintenant, en utilisant l'attaque Pass-the-ticket déjà connue, importer un ticket et utiliser mimikatz pour mener une attaque DCSync afin d'obtenir le hachage NTLM du compte krbtgt (et comme vous le savez déjà dans la première partie de l'article, vous pouvez utiliser le hachage de ce compte pour créer Golden Ticket et reprise complète du domaine AD).





Notez que Rubeus comprend les tickets à la fois comme un fichier .kirbi et comme une chaîne encodée en base64.

Délégation restreinte



Si un attaquant a pu compromettre un compte d'utilisateur ou un ordinateur pour lequel la délégation limitée est activée, il peut se faire passer pour n'importe quel utilisateur du domaine et s'authentifier auprès du service auquel la délégation est autorisée.



Créez une nouvelle sauvegarde d'utilisateur de domaine avec le mot de passe B @ ckup1234, attribuez-lui un SPN pour le service cifs sur le contrôleur de domaine.







Vous pouvez maintenant définir ce compte pour pouvoir déléguer les services LDAP et cifs au contrôleur de domaine DC-16.meow.local.







Vous pouvez également utiliser Powerview ou le module ActiveDirectory pour déterminer quels comptes sont autorisés à déléguer restreint.







Connaissant le mot de passe ou le hachage NTLM du compte meow.local \ Backup, en utilisant Rubeus vous pouvez demander un ticket TGT pour cela.







Désormais, à l'aide de "l'action" s4u dans Rubeus, vous pouvez demander TGS pour un utilisateur autorisé à s'authentifier auprès du service cifs \ dc-16.meow.local (par exemple, l'administrateur de domaine ADadmin).







Ici, j'indique le ticket de compte de sauvegarde précédemment obtenu; / impersonateuser - l'utilisateur dont je souhaite obtenir les droits; / domaine - le domaine dans lequel tout se passe; / msdsspn / asltservice - un service qui a besoin de TGS; / ptt - importe immédiatement le ticket reçu dans la session en cours.



Voici ce qui se passe dans Rubeus:







Ici, vous pouvez voir qu'avec la délégation contrainte, 2 extensions Kerberos sont activées: ce sont S4U2self et S4U2proxy.



S4U2self permet aux participants au service de demander un TGS spécial avec l'indicateur FORWARDABLE pour le compte d'un utilisateur spécifique. Cela est nécessaire pour que ce ticket puisse être utilisé ultérieurement par l'extension S4U2proxy.



S4U2proxy permet à l'appelant d'utiliser ce ticket spécial pour demander le TGS de l'utilisateur pour le service auquel la délégation est autorisée (dans ce cas, cifs \ dc-16.meow.local). Vous pouvez en savoir plus ici et ici .



Pour l'instant, Rubeus a déjà reçu le ticket final et l'a importé dans la session en cours.







Voyons si nous pouvons voir le lecteur C sur le contrôleur de domaine avec le ticket reçu.







Oui, tout s'est bien passé.



Ceci conclut l'examen de cet outil, en général je l'ai aimé, agréable et facile à utiliser, avec de bonnes fonctionnalités. J'espère qu'après avoir lu ces articles, vous les mettrez en service.



Merci pour votre attention, tout va bien, ne soyez pas malade!



All Articles