Reconstruire son infra AD après une compromission

BUT

Ce document vise à décrire les premières mesures à prendre en cas de compromission de votre infrastructure par un ransomware et que vous devez en reconstruire une nouvelle.

DEFINITIONS

  • Ransomware : Un rançongiciel ou ransomware en anglais est un code malveillant qui bloque l’accès à votre appareil ou à des fichiers en les chiffrant et qui vous réclame le paiement d’une rançon pour obtenir le déchiffrement de vos données.
  • PsExec : PsExec est un remplacement telnet léger qui vous permet d’exécuter des processus sur d’autres systèmes, avec une interactivité complète pour les applications console, sans avoir à installer manuellement les logiciels clients. Les utilisations les plus puissantes de PsExec incluent le lancement d’invites de commandes interactives sur des systèmes distants et des outils d’activation à distance tels que IpConfig qui, sinon, n’ont pas la possibilité d’afficher des informations sur les systèmes distants.
  • GPO : Une GPO est une collection de règle de sécurité.
  • ADCS : AD CS fournit des services personnalisables pour l’émission et la gestion de certificats numériques.

CHRONOLOGIE

Ce document se situe dans la partie « confinement, éradication et récupération » du cycle de vie de l’incident.

Cela signifie que la détection et l’analyse ont déjà commencées et ont permis d’identifier (au moins) une partie du périmètre impacté.

LE MODE OPERATOIRE HABITUEL DES RANSOMWARES

  • De nombreux ransomwares sont déployés en utilisant PsExec localement ou via un GPO..
  1. Lorsque le déploiement utilise des GPO, il se lie souvent à la racine du domaine pour avoir un impact sur tous les appareils compatibles du domaine.
  2. Le nom de cette GPO est souvent généré de manière aléatoire.

    C’est pourquoi surveiller les GPO qui dont le nom ne respecte pas votre nomenclature est important.

  • Le déploiement est parfois accompagné de la création d’une tâche planifiée qui exécutera la commande de chiffrement.

LISTE DES ACTIONS À ENTREPRENDRE

RESEAUX

Dans cette documentation, nous ne parlerons que très peu de la partie réseau.

Pour une raison simple, vous allez devoir tout recréer en utilisant la fonctionnement par liste blanche (tout ce qui n’est pas explicitement autorisé doit être interdit).

Vous n’avez pas de baseline ? C’est le moment d’en créer une.

ARRÊTER LE DÉPLOIEMENT DU CRYPTAGE

Oui le mot cryptage est le bon dans ce cas là.

EXPORTER LA GPO

La première action à entreprendre est de sauvegarder la GPO pour une étude ultérieure.

  • Se rendre dans la partie « Group Policy Object »
  • Sélectionner la GPO
  • Faire un clic droit > Sauvegarder

SUPPRIMER LA GPO

  • Se rendre dans la partie « Group Policy Object »
  • Sélectionner la GPO
  • Faire un clic droit > Supprimer

NETTOYER LE DOSSIER SYSVOL

Dans certains cas, la GPO exécute un script depuis \\domain\sysvol\domain\scripts\ .

SAUVEGARDER LE DOSSIER DU SCRIPT
  • Se rendre dans le dossier \\domain\sysvol\domain\scripts\ et sauvegarder le script dans une archive avec mot de passe.
  • Pour gagner du temps, le mot de passe par défaut sera: infected.
  • Pourquoi enregistrer dans une archive avec mot de passe ? Pour Garder le fichier sans qu’un scanner puisse le supprimer.
SUPPRIMER LE FICHIER

Une fois que le fichier est enregistré dans une archive protégée, supprimez le fichier original.

CONSTRUIRE LE NOUVEAU DOMAINE

Pour une reprise après sinistre, il sera très probablement nécessaire de remonter un domaine pour le client.

DEPLOYER LE NOUVEAU SERVEUR

  • Déployer un nouveau serveur dans un nouveau réseau isolé.
  • Cette installation ne doit pas se faire via un template, une copie VM ou autre. Elle doit se faire via un ISO téléchargé pour l’occasion.
  • Réaliser un durcissement maximal de l’OS.
  • Ouvrez les ports et URLs uniquement nécessaires au bon fonctionnement de l’environnement (au moins Windows Update pour le moment).

SUPPRIMER LES LOGICIELS INDESIRABLES

Même si l’installation est neuve, il est important de vérifier chaque composant qui peut être désinstallé pour ne garder que ce qui est nécessaire au bon fonctionnement.

PowerShell : Utiliser Get-InstalledSoftware.ps1

METTRE A JOUR LE SYSTEME D’EXPLOITATION

Une fois l’ordinateur installé et durci, il est conseillé d’appliquer toutes les mises à jour disponibles depuis Internet et non depuis un partage interne, qui peut être compromis.

PowerShell : Utiliser PSWindowsUpdate

SUPPRIMER LES TÂCHES ET SERVICES INUTILES

Même si l’installation est récente, il est important de vérifier qu’aucune tâche planifiée non désirée ou obligatoire ne soit créée.

  • Tâches planifiées : https://learn.microsoft.com/en-us/powershell/module/scheduledtasks/get-scheduledtask?view=windowsserver2022-ps
  • Services : https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-service?view=powershell-7.2

PROMOUVOIR UN NOUVEAU CONTRÔLEUR DE DOMAINE

  • Cas 1: le domaine est totalement compromis.

Dans le cas d’un domaine compromis, aucune connexion ne doit être établie entre le domaine compromis et le nouveau contrôleur de domaine.

Vous devrez repartir de zéro et recréer toute l’infrastructure.

  • Cas 2: le domaine n’est pas totalement compromis.

Dans le cas où le domaine n’a été que partiellement compromis (l’attaquant a installé son ransomware mais les serveurs contrôleurs de domaine sont toujours joignables et le lien avec le monde extérieur est fermé, le ransomware ne se déploie plus), il est possible de transférer les rôles FSMO vers le(s) nouveau(x) contrôleur(s) de domaine.

La prochaine étape est seulement si vous êtes dans le deuxième cas.

MIGRER LES RÔLES FSMO
  • Utilisez cette commande pour migrer le rôle FSMO :

Move-ADDirectoryServerOperationMasterRole -Identity "NewDC" -OperationMasterRole 0,1,2,3,4 -Verbose

  • 0 =PDCEmulator
  • 1 = RIDMaster
  • 2= InfrastructureMaster
  • 3 = SchemaMaster
  • 4 = DomainNamingMaster
  • Contrôler la migration

netdom query FSMO

PURGER LES DONNEES
  • Suppression des anciens domaines de l’architecture Active Directory.

Get-ADComputer -Identity "OLD_DC" | Remove-ADObject -Recursive

  • Ouvrir « Active Directory Sites and Services ».
  • Supprimer l’ancien contrôleur de domaine.

CERTIFICAT

Cette partie ne doit être effectuée que si vous êtes convaincu que le serveur ADCS n’a pas été compromis.

EXPORTER LES CERTIFICATS DE L’ANCIENNE INFRASTRUCTURE

Le but de cette partie est de récupérer tous les certificats présents dans votre environnement.

L’objectif est double :

  • Pouvoir les réinjecter dans la nouvelle infrastructure en cas d’urgence pour certains services critiques.
  • Pouvoir analyser tous les certificats présents et identifier les certificats indésirables potentiels.

Pour ce faire, utilisez la commande suivante et enregistrez-la dans une archive avec un mot de passe.

Backup-CertificationAuthority -Path C:\CertSave -BackupKey -Password P@ssw0rd -Extended

ISOLER L’ANCIEN SERVEUR ADCS

Une fois les certificats récupérés, déconnectez les anciens serveurs ADCS.

SUPPRIMER LES ANCIENS ADCS SUR VOTRE NOUVELLE INFRASTRUCTURE

Get-ADComputer -Identity "OLD_ACDS" | Remove-ADObject -Recursive

INSTALLER VOS NOUVEAUX ADCS

  • Déployer un nouveau serveur dans une nouvelle infrastructure isolée.
  • Cette installation ne doit pas se faire via un template, une copie de VM ou autre. Elle doit se faire via un ISO téléchargé pour l’occasion.
  • Réaliser un durcissement maximal de l’OS.
  • Ouvrir les ports et URLs nécessaires au bon fonctionnement de l’environnement (au moins Windows Update pour le moment).

METTRE A JOUR LE SYSTEME D’EXPLOITATION

Une fois l’ordinateur installé et durci, il est conseillé d’appliquer toutes les mises à jour disponibles depuis Internet et non depuis un partage interne, qui peut être compromis.

PowerShell : Utiliser PS Windows Update

AJOUTER ET CONFIGURER CE NOUVEAU RÔLE

  • Ajouter le rôle ADCS
  • Quand on vous demande la clé privée :
  • Sélectionnez « Utiliser la clé privée existante »
  • Sélectionnez un certificat et utilisez la clé privée qui lui est associée.
  • Importez la clé enregistrée précédemment
  • Vérifier
  • Exécuter les deux fichiers reg créés lors de la sauvegarde.

DURCISSEMENT DE VOTRE NOUVELLE INFRASTRUCTURE

Pour éviter une nouvelle infection au seins de votre infrastructure, un audit et un renforcement de la configuration de vos nouveaux Active Directory doivent être effectués.

Deux logiciels gratuits qui vous aideront.

  • Pingcastle (rapide mais sans audit Azure AD)
  • Purple Knight (lent capable d’auditer Azure AD)

Ces deux programmes sont gratuits pour l’audit de votre propre infrastructure. Cependant, n’hésitez pas à vous renseigner sur les prix et les possibilités offertes par celui-ci.

QUICK WIN – MICROSOFT BASELINE

Un moyen rapide de renforcer votre infrastructure consiste à déployer les GPO de Microsoft depuis leur site vers votre AD.

  • Se rendre sur cette [URL](https://www.microsoft.com/en-us/download/details.aspx?id=55319)
  • « Download »
  • Sélectionner les systèmes d’exploitation présents dans le domaine
  • Allez dans chaque dossier
  • Exécuter le script « Baseline-ADImport »

QUICK WIN ORDINATEURS LOCAUX DE REPONSES A INCIDENT – U.S DEPARTMENT OF DEFENSE

Le département de la Défense des États-Unis est un département exécutif du gouvernement fédéral chargé de coordonner et de superviser toutes les agences et fonctions du gouvernement directement liées à la sécurité nationale et aux forces armées des États-Unis. Le DoD est le plus grand employeur au monde, avec plus de 1,34 million de membres du service actif (soldats, marines, marins, aviateurs et gardiens) en juin 2022.

Ce durcissement est complet et risque de faire rager vos utilisateurs. Cependant en fonction du niveau d’infection, il faut parfois s’assurer que le poste est correctement sécurisé.

  • Se rendre sur le poste a durcir
  • Se rendre sur [cette URL](https://public.cyber.mil/stigs/gpo/)
  • Extraire le contenu du fichier zip
  • Utiliser le bouton de télécharger en bas de page
  • Se rendre sur la page Microsoft.
  • Télécharger LGPO.zip
  • Extraire le contenu du fichier zip
  • Se rendre dans le dossier LGPO
  • Ouvrir PowerShell en administrateur
  • _lgpo.exe /g PATH_

Exemple :

.\LGPO.exe /g '..\..\U_October_2022_STIG_GPO\DoD WinSvr 2022 MS and DC v1r1\GPOs'

Si vous voulez savoir si cela fonctionne, il suffit de redémarrer l’hôte.

MODELE TROIS TIERS

Bien que le modèle à trois niveaux n’existe plus en tant que tel, son schéma a évolué mais reste une base à mettre en œuvre lors de la création de votre nouvelle infrastructure.

DEPLOYER LAPS

L’infrastructure est maintenant restaurée.

Il est maintenant nécessaire de déployer LAPS via GPO sur tous les postes clients et serveurs, en commençant par le niveau 0, afin que les mots de passe des administrateurs locaux soient changés et durcis.

L’objectif est que le mot de passe de l’administrateur local soit difficile à trouver et qu’en cas de compromission, ce mot de passe ne soit pas retrouvé sur l’ensemble du parc.

Rappel : https://www.geekmunity.fr/?p=1876)

DIAGRAMME

Ce diagramme résume les actions que nous avons vues précédemment dans cet article.

Documentation

  • L’article sur Github : https://github.com/Blue-Atom-10101/-HOW-TO-Rebuild_your_AD_after_compromise/tree/main/FR
  • Définition ransomware : https://www.cybermalveillance.gouv.fr/tous-nos-contenus/actualites/ransomware-rancongiciel-definition
  • PsExec : https://learn.microsoft.com/fr-fr/sysinternals/downloads/psexec
  • GPO : https://learn.microsoft.com/en-us/previous-versions/windows/desktop/policy/group-policy-objects
  • ADCS : https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh801901(v=ws.11)
  • Script : Get-InstalledSoftware : https://www.powershellgallery.com/packages/ITPS.OMCS.Tools/1.6/Content/Scripts%5CGet-InstalledSoftware.ps1
  • Script Windows Update : https://www.powershellgallery.com/packages/PSWindowsUpdate/2.2.0.3
  • Export certificat : https://learn.microsoft.com/fr-fr/windows-server/identity/ad-ds/manage/component-updates/ca-backup-and-restore-windows-powershell-cmdlets
  • PingCastle : https://www.pingcastle.com/download/
  • Purple Knight : https://fr.purple-knight.com/request-form/
  • Model trois tiers : https://learn.microsoft.com/en-US/security/compass/privileged-access-access-model