Laureline's Wiki

Laureline's Wiki

Laboratoire Windows

Laboratoire Windows

Scène 1

a. Illustrer et démonter les principales différences dans les accréditations entre les 2 types.

Il est possible de consulter les accréditations depuis la console Local Security Policy

b. Commenter les différences en termes de groupes, privilèges, intégrité, ACL par défaut.

On peut remarquer que Administrator est uniquelement dans le groupe Administrators alors que mallory est aussi présente dans le groupe Users. Mallory est elle uniquement présente dans le groupe Users.

Le groupe Administrators possède un accès complet au disque C alors que les Users n’ont qu’un accès en lecture sauf si les accès sont définis autrement (dossiers utilisateurs).

c. A votre avis, pourquoi est-il utile d’activer le compte built-in admin alors qu’Alice est déjà administrateur de la machine ?

TODO

Scène 2

a. Illustrer et expliquer les manipulations effectuées.
  1. Activer les traces d’audit pour les Object Access (Success)
  2. Ajouter une entrée d’audit sur le dossier C:\Users qui trace les accès du groupe Adminstrators et SYSTEM.
  3. Ajouter une entrés dans la clé registre de la même manière que sur le dossier
  4. Ajouter une ACL à la clé HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
b. Quels sont les rôles et fonctions dans Windows des outils utilisés ? (Local security editor, registry editor et permission editor)
LSE Permet de modifier les politiques de sécurités relatives à la machine ou à l’utilisateur courant
RegEdit Permet de modifier de manière graphique la base de registre de la machine, ce qui permet de modifier des paramètres qui ne sont pas accessibles via une interface graphique
Permission Editor  Permet de modifier les DACL et SACL d’un objet de manière graphique.
c. Quels sont les modules Windows qui génèrent les traces d'accès ? Quelles autres traces peuvent être produites, comment sont-elles générées ?

Le LSA et SRM génèrent les traces d’audit pour toutes les fonctions pour lesquels ils sont configurés. Il est également possible d’utiliser une API fournie par ces composants pour générer ses propres traces d’audit.

d. Est-il possible de configurer l’UAC pour rejeter l’exécution des programmes non signés par Microsoft ? Comment Alice peut-elle s’y prendre sinon pour implémenter une telle règle sur sa machine ?

Non, l’UAC ne vérifie que si la signature d’un exécutable mais pas quel en est la provenance. Il est possible de définir une politique AppLocker pour restreindre les signatures ne provenant que de certains éditeurs agrée.

Scène 3

a. Illustrer et expliquer les manipulations effectuées.

Se connecter avec Alice et tenter d’executer l’installer du CP malicieux, l’UAC refusera l’execution car l’executable n’est pas signé. Tenter de modifier les paramètres de l’UAC dans le Local Security Editor, les modifications seront refusées.

b. Qu'est-ce qu'un Credential Provider ? Expliquer son lien avec les autres modules d'authentification.

Un credentials provider permet d’ajouter des méthodes d’authentification supplémentaires tels que les SmartCard.

c. Quelle est la précaution d’Alice qui empêche l’installation du Credential Provider ? Expliquer le blocage observé.

L’UAC empêche l’execution des executables non signées.

d. Quelle est la précaution d’Alice qui empêche de modifier le comportement de l’UAC ?

La DACL sur la clé de registre HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System empêche les modifications pas une autre personne que Admin.

Scène 4

a. Illustrer et expliquer les manipulations effectuées.

Ouvrir le Task Scheduler <screenshot> <suivre le tuto …> Exécuter la tâche planifiée

b. Pourquoi l'UAC est-il inefficace à protéger Alice de cette installation malicieuse ?

Parce que le Tasck Scheduler s’exécute sous un utilisateur systpme n’étant pas soumis à l’UAC.

c. Comment Alice pourrait-elle utiliser l'UAC plus efficacement ? Cette manière de faire est-elle réaliste? Qu'en déduisez-vous sur la raison d'être de l'UAC ?

Alice peut ne pas appartenir au groupe Administrateurs et configure l’UAC pour demander le mot de passe d’un Administrateur pour effectuer une élévation de privilèges ce qui la forcerai à se connecter en Admin lorsqu’elle veut effectuer une opération nécessitant des privilèges élevés.

Oui cette manière est réaliste et peut même être déployée dans un domaine.

???

d. Et l’antivirus installé sur la machine, à votre avis, pourquoi ne peut-il pas empêcher cette installation ?

Car le programme utilise des fonctionnalités légitimes de Windows mais détournées de manière malicieuse.

Scène 5

a. Illustrer et expliquer les manipulations effectuées.
  1. Se connecter en tant que Alice avec le mot de passe magique
  2. Ajouter Authenticated Users à la liste des utilisateurs ayant le droit Debug Program
  3. Modifier les ACL du fichier C:\Users\Mallory\passwords.txt pour n’autoriser que SYSTEM et Mallory de lire le fichier.
  4. Modifier les ACL de la clé HKLM\Software\…\Authentication pour refuser l’accès à Administrators
b. Qu'est-ce qu'un privilège ? Et en particulier le privilège de debugging ? A quoi sert-il ? En quoi est-il dangereux ?

Un privilège est un droit global au système et non spécifique au contexte. Le privilège de Debug permet de s’attacher au contexte d’exécution d’un programme et de le modifier. Il est dangereux car si un utilisateur peut Débug un programme il est capable d’utiliser son contexte d’execution à sa guise pour, par exemple, effectuer des actions en tant qu’administrateur.

c. En quoi l'élévation de privilèges de Mallory est-elle “discrète” ?

Elle ne s’attribue pas explicitement le groupe Administrateur mais s’attribue une permission qui lui permet de s’introduire dans un programme possédant les droits administrateurs ce qui lui permet d’effectuer une élévation de privilèges.

d. Expliquer le mécanisme d'héritage des permissions. Comment Mallory l'utilise-t-elle et pourquoi ?

Etant donné que Mallory appartient aux utilisateurs authentifiés elle possède la permission Debug Program venant du groupe.

e. Est-il possible de consulter toute la hiérarchie de clés sous HKLM\Software\…\Authentication après l'avoir protégée ? Pourquoi ?

RegEdit n’actualise pas immédiatement les permissions et si les sous-clés sont déjà affichées celles-ci sont toutefois inaccessibles et ne seront plus visibles lors du prochain accès.

Scène 6

a. Illustrer et expliquer les manipulations effectuées.

Ouvrir l’Event Viewer

En cherchant les événements de connexion (id 4624), Alice peut remarquer qu’one connexion à été effectuée lors de son absence. En cherchant les événements de création de fichiers (id 4663), Alice peut trouver la création du fichier passwords.txt dans les dossier utilisateur de Mallory En cherchant les événements d’écriture de registre (id 4656), Alice peut remarquer que des clés de registre ont été crées dans HKLM\SOFTWARE\…\Authentication\CredentialProviders. Il suffit simplement d’inverser la modification effectuée lors de la Scène 2

b. Est-ce que les précautions et la réaction d'Alice sont réalistes? Pourquoi?

Alice effectue un audit de son système et consulte fréquemment les logs et à donc pu réagir à une brèche dans un temps raisonnable. Néanmoins, comme nous avons pu le voir, sans une certaine rigueur (verrouiller sa session lorsqu’on quitte son poste) elle est inefficace contre un adversaire préparé.

Scène 7

a. Illustrer et expliquer les manipulations effectuées

TODO

b. Pourquoi et comment Alice a-t-elle réussit à restaurer ses droits alors qu'elle n'en avait plus aucun ? Existait-t-il un moyen de l'en empêcher ?

Le groupe administrateurs est propriétaire des clés de registre et de plus, il possède le privilège de prendre possession d’objets ne lui appartenant pas. Pour empêcher cela, il faut retirer le privilège « Take Ownership of Objects » dans le Local Security Editor.

c. Que contient le fichier passwords.txt? A votre avis comment est-il construit ?

Il contient les noms d’utilisateur et les mots de passe de utilisateurs qui se sont connectés. Il est alimenté par le faux CP qui ajoute une entrée lors de la connexion d’un utilisateur.

d. Quel élément intéressant avez-vous trouvé dans les clés du registre analysées? De quoi s'agit-il ?

Que la backdoor s’installe en tant que CP.

e. Forts de ces constatations, à votre avis comment fonctionne la backdoor ?

La backdoor est un « wrapper » autour du CP par défaut et intercepte les mots de passe lorsqu’ils sont soumis. Elle écoute aussi pour le mot-de-passe spécial « letmein » qui vas alors récupérer le véritable mot de passe dans le fichier « passwords.txt » et le renvoie au système d’exploitation.

f. Quels éléments possède Alice pour confondre Mallory ? Est-ce suffisant ? Pourquoi ?

Le fichier « passwords.txt » se trouve dans le répertoire de Mallory et n’est lisible que par elle. Ceci en soit n’est pas une preuve irréfutable (doute raisonnable) mais peuvent servirent à incriminer Mallory d’avantage si d’autre preuves sont découvertes.

g. Avec ces constatations, comment Alice aurait-elle pu configurer ses traces de manière plus réaliste pour découvrir le problème ?

Auditer les accès sur les parties importantes du registre.

Scène 8

a. Illustrer et expliquer les manipulations effectuées.

TODO

b. Comment Mimikatz utilise-t-il le privilège de debugging ?

Il accède en Débug au lsass.exe et lit les structures de données contenant les informations des utilisateurs connectés. El l’occurrence, Windows stocke les mots-de-passe lors de la connexion pour une future utilisation éventuelle.

c. Pour chaque mot de passe récupéré, expliquer d’où il vient et comment on peut justifier sa présence en clair.

Le lsass stocke les mot-de-passe en clair en plus du hash lors de la connexion. Alice et Mallory se sont connectés via le bureau système et les comptes service sont connectés automatiquement par le système qui connaît leur mot de passe en clair.

Scène 9

a. Illustrer et expliquer les manipulations effectuées et justifier les résultats obtenus.

TODO

b. Trouvez-vous les politiques restrictives ajoutées par Alice et Mallory efficaces ? Expliquer pourquoi pour chacune d'elle?

La politique empêchant l’exécution de l’installeur spécifique n’est pas très utile car elle devrait être couverte par une règle plus englobante. La politique empêchant l’exécution des programmes téléchargés depuis internet est elle plus efficace car cela bloque une grande partie des exécutables malveillants venant d’internet d’entrée de jeu. Ceci combiné avec l’impossibilité d’exécution des exécutables non signées bloque une grande partie des menaces.

c. Quelle(s) autre(s) protection(s) d'exécution leur conseilleriez-vous d'implémenter ? Utiliseriez-vous les politiques restrictives pour ça ? Pourquoi ? Comment ? Avec quels risques et conséquences en termes d'utilisabilité et de sécurité ?

Implémenter une politique qui interdit l’exécution de logiciels non approuvés. Empêcher l’exécution depuis les dossiers utilisateur.

L’utilisation d’une politique restrictive réduit grandement la surface d’attaque au détriment de la liberté d’utilisation du système. L’implémentation de cette politique dépend entièrement des nécessités en matière de sécurité de l’entreprise. Par exemple, si des données sensibles telles que des dossiers médicaux, une politique très restrictive permettrait d’empêcher des fuites de données personnelles.

d. Pour conclure, que pensez-vous de ce type d'attaque et des moyens de défense offerts par Windows ?

Windows permet de se défendre relativement efficacement contre ce genre d’attaque en combinant une gestion des permissions intelligente et une politique d’exécution restrictive.

Dans notre cas, la source du problème est une erreur humaine : Alice n’a pas systématiquement verrouillé sa session lorsque son poste n’était pas supervisé ce qui aurait empêché Mallory d’effectuer cette attaque.