Problème de confidentialité des données Active Directory



J'ai effectué des tests de pénétration à l'aide de PowerView et l'ai utilisé pour récupérer des informations sur les utilisateurs d'Active Directory (ci-après dénommé AD). À cette époque, je me suis concentré sur la collecte d'informations sur l'appartenance à des groupes de sécurité, puis j'ai utilisé ces informations pour naviguer sur le réseau. Dans tous les cas, AD contient des données confidentielles sur les employés, certains d'entre eux ne devraient vraiment pas être accessibles à tout le monde dans l'organisation. En fait, sur les systèmes de fichiers Windows, il existe un problème Tout le monde équivalent, qui peut également être exploité par des attaquants internes et externes.

Mais avant de parler des problèmes de confidentialité et de la façon de les résoudre, examinons les données stockées dans AD.

Active Directory est Facebook d'entreprise


Mais dans ce cas, vous vous êtes déjà fait des amis avec tout le monde! Vous ne connaissez peut-être pas les films, livres et restaurants préférés de vos collègues, mais AD contient des contacts sensibles
données et autres domaines qui peuvent être utilisés par des pirates et même des initiés sans compétences techniques particulières.

Les administrateurs système connaissent bien sûr la capture d'écran ci-dessous. Il s'agit de l'interface Utilisateurs et ordinateurs Active Directory (ADUC), où ils installent et modifient les informations utilisateur et affectent les utilisateurs aux groupes appropriés.



AD contient des champs avec le nom de l'employé, l'adresse et le numéro de téléphone, de sorte qu'il ressemble à un annuaire téléphonique. Mais il y a bien plus! D'autres onglets ont également une adresse e-mail et une adresse Web, un superviseur immédiat et des notes.

Est-ce que tout le monde dans l'organisation devrait voir ces informations, en particulier à l'ère OSINT , lorsque chaque nouvelle partie facilite la recherche d'informations supplémentaires?

Bien sûr que non! Le problème est exacerbé lorsque les données de la haute direction sont disponibles pour tous les employés.

PowerView pour tout le monde


C'est là que PowerView entre en jeu. Il fournit une interface PowerShell très pratique pour les fonctions Win32 sous-jacentes (et déroutantes) qui accèdent à AD. En bref:
cela rend l'obtention des champs AD aussi simple que la saisie d'une applet de commande très courte.

Prenons un exemple de collecte d'informations sur un employé de Cruella Deville, qui est l'un des dirigeants de l'entreprise. Pour ce faire, utilisez l'applet de commande PowerView get-NetUser:



L'installation de PowerView n'est pas un problème sérieux - voyez par vous-même sur la page github . Et plus important encore, vous n'avez pas besoin de privilèges élevés pour exécuter de nombreuses commandes PowerView, telles que get-NetUser. Ainsi, un employé motivé mais peu techniquement averti peut commencer à fouiner dans AD sans trop d'effort.

De la capture d'écran ci-dessus, on peut voir que l'initié peut rapidement en apprendre beaucoup sur Cruella. Avez-vous également remarqué que le champ «info» affiche des informations sur les habitudes personnelles et le mot de passe de l'utilisateur?

Ce n'est pas une probabilité théorique. À partir de dialogues avec d'autres pentesters, j'ai appris qu'ils analysent AD pour rechercher des mots de passe sous une forme non cryptée, et souvent ces tentatives, malheureusement, sont couronnées de succès. Ils savent que les entreprises ne se soucient pas des informations dans AD, et généralement ils ne connaissent pas le sujet suivant - les autorisations dans AD.

Active Directory a ses propres listes de contrôle d'accès


L'interface Utilisateurs et ordinateurs AD vous permet de définir des autorisations pour les objets AD. Il existe des listes de contrôle d'accès dans AD et les administrateurs peuvent attribuer ou refuser l'accès par leur intermédiaire. Vous devez cliquer sur «Avancé» dans le menu Vue ADUC, puis lorsque vous ouvrez l'utilisateur, vous verrez l'onglet «Sécurité» dans lequel vous définissez la liste de contrôle d'accès.

Dans mon script avec Cruella, je ne voulais pas que tous les utilisateurs authentifiés puissent voir ses informations personnelles, je leur ai donc refusé l'accès en lecture:



Et maintenant, un utilisateur régulier verra cela s'il essaie Get-NetUser dans PowerView:



J'ai réussi à cacher des informations sciemment utiles aux regards indiscrets. Pour le garder accessible aux utilisateurs concernés, j'ai créé une autre ACL pour permettre aux membres VIP (Cruella et autres collègues de haut niveau) d'accéder à ces données sensibles. En d'autres termes, j'ai implémenté des autorisations AD basées sur le modèle de rôle, ce qui a rendu les données sensibles inaccessibles à la plupart des employés, y compris les initiés.

Cependant, vous pouvez rendre l'appartenance à un groupe invisible pour les utilisateurs en définissant l'ACL appropriée pour l'objet de groupe dans AD. Cela vous aidera en termes de confidentialité et de sécurité.

Dans ma série de pentests épiques, j'ai montré comment vous pouvez naviguer dans le système en explorant les appartenances aux groupes à l'aide de PowerViews Get-NetGroupMember. Dans mon scénario, j'ai restreint l'accès en lecture à l'appartenance à un groupe particulier. Vous voyez le résultat de la commande avant et après les modifications:



J'ai réussi à cacher l'appartenance de Cruella et Monty Burns au groupe VIP, ce qui a compliqué l'exploration des infrastructures par les pirates et les initiés.

Ce poste était destiné à vous motiver à étudier les domaines de plus près.
AD et autorisations associées. AD est une excellente ressource, mais pensez à la façon dont vous
souhaitait partager des informations confidentielles et des données personnelles,
en ce qui concerne les premières personnes de votre organisation.

Source: https://habr.com/ru/post/fr479814/


All Articles