# **PingCastle** ## Objectif et environnement ### Objectif 1. L’utilisation de PingCastle pour auditer le serveur Active Directory. 2. Création d'un script pour permettre un audit régulier ### Environnement Matériels : - Dell PowerEdge r240 avec Proxmox 7.1-7 Adressage des VMS : - Réseaux : 172.16.0.0/16 - Le logiciel PingCastle est installé directement sur la VM du l’Active Directory ### Documentation - - - - ## Processus ### Téléchargement Lien de téléchargement : J’ai téléchargé l’archive et je l’ai extrait. ### Réalisation d’un audit AD J’exécute l’application *PingCastle.exe* Je me place sur le premier choix et j’appuie sur la touche *Entrer* PingCastle a reconnu le domaine t2sr.io, j’appuie donc de nouveau sur *Entrer* car il s’agit du choix par défaut. L’audit prend quelques secondes à s’effectuer, une fois fini j’appuie sur *Entrer* et PingCastle se ferme. Deux fichiers ont été généré à la racine du dossier de PingCastle. ### Lecture du rapport de l’audit AD J’ouvre dans un navigateur le fichier *ad_hc_t2sr.io.html* L’indicateur est élevé ce qui veux dire que l’AD n’est sécurisé comme il le devrait, cette note est normale étant donné que l’AD est proche d’une configuration par défaut, peut de sécurisation ont été fait dessus. Attention ! Ce compteur correspond à la note la plus élevé sur 4 catégories, dans notre cas il fait référence au compteur d’anomalies. Grace au 4 compteur je peux situer les points de sécurité et les modifications à effectuer pour renforcer la sécurité générale de l’AD. - **Stale Object** : points de sécurité liés aux utilisateurs ou aux ordinateurs - **Privileged Accounts** : points de sécurité liés aux comptes avec des privilèges élevés (Administrateurs) du domaine Active Directory - **Trusts** : points de sécurité liés aux relations d'approbations entre les domaines Active Directory - **Anomalies** : points de sécurité liés à d'autres aspects de la configuration qui peuvent impacter la sécurité de votre annuaire > Juste en dessous des compteurs vient le tableau « **Risk Model** », il > permet de cerner les configurations auquel il faut porter attention. > > style="width:4.81736in;height:3.74205in" /> > > Ce qui est en blanc n’est pas dans la légende, cela veut dire : > > **Pas de problèmes tout est bon !** Ensuite vient les règles spécifiques catégories par catégories a modifié et à prendre en compte. > style="width:4.08378in;height:3.6935in" /> > > A savoir : > > Lorsque l’on exécute un audit AD avec PingCastle l’audit précédent est > écrasé ! > > Il faut penser à sauvegarder les anciens audits. ### Permettre un audit régulier de l’AD avec PingCastle J’ai créé un script PowerShell qui placé à la racine du Dossier de PingCastle permet de : Créer un dossier « ***auditBkp*** » s’il n’existe pas Exécuter un audit AD par le biais du PingCastle.exe Transférer les deux fichier html et xml dans le dossier ***auditBkp*** et de les renommés en y ajoutant la date et l’heure lors de l’exécution de l’audit AD. Le script PowerShell : ```powershell $BkpPath = ".\auditBkp" If(!(Test-Path $BkpPath)){ New-Item -ItemType Directory -Force -Path $BkpPath } .\PingCastle.exe --server SRV-W19-AD.t2sr.io --healthcheck $SourceFileHtmlPath = ".\ad_hc_t2sr.io.html" $SourceFileXmlPath = ".\ad_hc_t2sr.io.xml" $DateNow = Get-Date -Format "ddMMyyyyHHmm" $FileHtml = "ad_hc_t2sr.io\_"+$DateNow+".html" $FileXml = "ad_hc_t2sr.io\_"+$DateNow+".xml" Move-Item -Path $SourceFileHtmlPath -Destination.\auditBkp\$FileHtml Move-Item -Path $SourceFileXmlPath -Destination .\auditBkp\$FileXml ``` ```{warning} Ce script est propre au réseau sur lequel je travaille (notamment pour le nom de serveur). ``` Pour m’aider j’ai consulté le « help » de PingCastle dans une invite de commande, en voici une partie : ```powershell .\PingCastle.exe --help ```

--help

switch: –help : display this message –interactive : force the interactive mode –log : generate a log file –log-console : add log to the console –log-samba <option>: enable samba login (example: 10) Common options when connecting to the AD –server <server> : use this server (default: current domain controller) the special value *or*.forest do the healthcheck for all domains –port <port> : the port to use for ADWS or LDAP (default: 9389 or 389) –user <user> : use this user (default: integrated authentication) –password <pass> : use this password (default: asked on a secure prompt) –protocol <proto> : selection the protocol to use among LDAP or ADWS (fastest) : ADWSThenLDAP (default), ADWSOnly, LDAPOnly, LDAPThenADWS –pagesize <size> : change the default LDAP page size - default is 500 –quota <num> : Number of LDAP items per second that will be processed - default unlimited –carto : perform a quick cartography with domains surrounding –healthcheck : perform the healthcheck (step1) –api-endpoint <> : upload report via api call eg: http://server –api-key <key> : and using the api key as registered –explore-trust : on domains of a forest, after the healthcheck, do the hc on all trusted domains except domains of the forest and forest trusts –explore-forest-trust : on root domain of a forest, after the healthcheck, do the hc on all forest trusts discovered –explore-trust and –explore-forest-trust can be run together –explore-exception <domains> : comma separated values of domains that will not be explored automatically --datefile : insert the date into the report filename --encrypt : use an RSA key stored in the .config file to crypt the content of the xml report --level <level> : specify the amount of data found in the xml file : level: Full, Normal, Light --no-enum-limit : remove the max 100 users limitation in html report --reachable : add reachable domains to the list of discovered domains --sendXmlTo <emails>: send xml reports to a mailbox (comma separated email) --sendHtmlTo <emails>: send html reports to a mailbox --sendAllTo <emails>: send html reports to a mailbox [...]

## Conclusion PingCastle est un outil très intéressant pour auditer l’Active Directory avant de sa mise en production. ```{eval-rst} .. raw:: html :file: flyout.html ```