Archives de la catégorie ‘Windows Security’

 

Introduction

PSexec fait partie de la fameuse SysInternals Tools/PsTools Suite de Microsoft, créée par Mark Russinovich, qui n’est autre que le CTO actuel de la firme américaine.

PSexec vous permet d’exécuter des commandes/Processus sur des machines distantes, et ce sans avoir besoin d’installer de features/outils supplémentaires.

Il s’agit d’un outil très puissant d’Administration (à distance) et troubleshooting des plateformes Windows (Client & Server).

Télécharger la Suite SysInternals Tools

Télécharger l’outil PSexec.exe

Note : le guide d’utilisation de PSexec est détaillé depuis la même page de Download.

Tip : comme vous pouvez le constater, les tools de la Sysinternals peuvent être téléchargés séparément.

 

Bloquer l’exécution de PSexec ?!! Pourquoi ? Pour quelles raisons ?

Contrairement à la plupart des Softwares/Tools de Microsoft, le fonctionnement de PsExec.exe n’est pas un secret, il est assez simple. PsExec autorise les redirections des Input & Output d’un exécutable démarré à distance via l’utilisation de SMB et du partage (caché) $ADMIN sur le système distant. Avec ce partage, PsExec utilise l’API Windows Service Control Manager (WSCM) pour démarrer le service PsExecsvc sur le système distant, qui crée un canal nommé avec lequel PsExec communique. Ce canal nommé est ce qui permet la redirection des entrées / sorties vers le système qui a lancé PsExec.

PsExec peut être utilisé pour collecter des informations depuis des machines distantes (IPConfig, Net use, …) ou administrer un serveur Windows (Changer le password d’un compte Admin Loca, Patch management à partir d’un script…) ou encore lancer une instance Regedit.exe en tant que System Account pour pouvoir écrire/modifier certaines clés de Registre et bien plus encore !

La puissance de cet outil fait justement « peur » à certains RSSI/DSI, par conséquent, PsExec fait généralement partie des tools à Blacklister sur tout le parc Windows Client/Server.

A l’aide de PsExec, un Hacker ayant réussi à récupérer des crédentials depuis une machine vulnérable sur le réseau, peut les utiliser pour établir une connexion distante et tenter des collecter plus d’infos sensibles voire envisager une escalation de privilège.

 

Quelques Real-world scénarios
  • Exéuction d’un programme malveillant à distance (eg : Backdoor)

Figure 4: A malicious executable being launched remotely

  • Exécuter un programme/file à distance via l’utilisation d’un UserName et le Hash de son password !

Figure 5: Using a password hash to execute a file remotely

Exécution des outils /programmes en tant que Compte « System » : compte ayant le plus haut niveau de privilège sur les OS Windows

 

Vous aurez compris, l’utilisation de PsExec au sein d’un réseau Windows peut s’avérer dangereuse car permettrait à un Hacker ou toute personne malveillante d’accéder et récupérer à des informations sensibles (AD, comptes Admin…)

 

HowTo : Bloquer l’exécution du PSexec

Il existe différentes méthodes pour bloquer l’exécution de PsExec.exe :

  • Désactivation du partage (par défaut) ADMIN$
  • Déploiement d’une clé de registre (psexec.exe > Dubugger = svchost.exe)

 

Bloquer PsExec via la désactivation du Partage Windows ADMIN$

Pourquoi désactiver le partage ADMIN$ ?

Lorsque PsExec est utilisé pour exécuter une tâche/commande sur un système distant, il crée un nouvel exécutable/service appelé « psexesvc.exe ». Cet exe est copié dans le dossier Windows de la machine distante via le partage par défaut ADMIN$ (d’où la nécessité d’être un administrateur pour que psexec fonctionne à distance), désactiver ce partage bloque donc le fonctionnement de PsExec

Pour désactiver le partage ADMIN$, rien de plus simple, il faut lancer la console « Dossiers partagés » en exécutant l’outil « FsMgmt.msc » depuis le Menu Exécuter ou Démarré > Partages > ADMIN$ > Click-droit > Arrêter le Partage.

 

Bloquer PsExec via la clé de Registre

Pour bloquer l’exécution du PSexec via la clé de Registre, suivez les instructions suivantes :

  • Créer une clé de Registre nommée « psexec.exe » au niveau de : HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\
  • Créer ensuite une sous-clé au niveau de « psexec.exe », avec les informations suivantes :
    • Type : REG_SZ (Data String)
    • Nom clé : Debugger
    • Valeur : svchost.exe

 

Aucun reboot de la machine n’est requis :).

Testons maintenant l’exécution du PSexec. Dans l’exemple suivant, je reprend l’exemple précédent pour lancer un CMD.exe en tant que « System », comme montré ci-dessous, aucun résultat n’est retourné.

PSexec est bloqué au lancement, vous n’aurez aucune info ni message d’erreur :

 

Bloquer PsExec via GPO (GPP)

Si vous devez généraliser le déploiement de la clé Registre créée précédemment, le meilleur moyen de le faire, est de configurer une GPP (Group Policy Preference), voir paramètres suivants ;

 

Télécharger la clé de Registre

Vous pouvez télécharger la clé de Registre depuis l’URL suivante et l’importer directement sur les machines (Client et/ou Serveur) sur lesquelles vous souhaitez bloquer l’exécution de PSexec

https://gallery.technet.microsoft.com/Block-PsExec-Execution-4a86c023

 

Pensez à implémenter AppLocker 

Le meilleur moyen de bloquer l’exécution des PsTools (PsExec, PsShutdown…) est d’implémenter des règles (Blacklisting) AppLocker à base de Hash, c’est le moyen le plus fiable en terme de software blacklisting dans les environnements Windows.

 

Note : un eBook sur AppLocker 2012 R2 et 2016 est disponible sur BecomeITExpert.com. Si le sujet vous intéresse, cliquez sur une des images ci-dessous pour en savoir plus.

 

A bientôt :).

Introduction

RDP (Remote Desktop Protocol) est (par défaut) considéré comme un protocole vulnérable qui peut exposer votre infrastructure (voire tout votre S.I) à des risques assez importants, notamment :

  • Brute-Force Attack
  • DoS (Denial-of-Service) Attack
  • Encryption Attack
  • Man-in-The-Middle (MiTM) Attack

 

Vous exposerez également votre S.I à un risque de sécurité si vous êtes consommateur (Cloud Consumer) d’une solution/Application Cloud hébergée sur une infrastructure RDS distante : Multi-tenancy Risk.

Plusieurs Cloud Providers proposant des applications SaaS (Software-as-a-Service) virtualisées et distribuées (RemoteApp) via des Portail RD Web Access personnalisés. Ces Apps sont souvent hébergées sur des infrastructures RDS « Partagées /Shared », cela veut dire que plusieurs clients, se connectent et consomment les mêmes Apps Cloud RDS depuis le même environnement. Pour des raisons de réduction de coût, plusieurs Cloud Providers déploient des RD Session Host en mode « Shared », et proposent rarement des infrastructures RDS dédiées (Collections de Session RDS dédiées par client/app).

Malheureusement la plupart des clients ne pensent pas à poser la question et se contentent de signer un contrat désignant les responsabilités de chacun (SLA) : en mode SaaS vous êtes uniquement responsable de vos données, les couches infra/storage/middleware sont gérées par le CP, seul ce dernier est responsable de la gestion, maintenance, patching… de l’environnement Cloud.

En revanche, vous avez la responsabilité de s’assurer du niveau de sécurité offert à travers ces applis Cloud qui souvent font parties de votre IT globale car les devices clients depuis lesquels vos users se connectent sont souvent intégrés dans votre AD local et connectés au niveau de votre Coporate Network.

 

Guide de Sécurité RDS : Liste des Risques, Menaces et Bonnes Pratiques que vous connaître 

Je viens de publier sur Slideshare un Guide de sécurité RDS assez complet (en Anglais) traitant ce sujet.

Il décrit et détaille toutes les Security Risks, menaces ainsi que les bonnes pratiques que vous devez prendre en considération lors de la phase « Design » de tout projet RDS (de 2008 R2 à 2019).

Il vous liste également les Risks/Menaces liées à des infrastructures RDS Offsites (hébergées chez un Cloud Provider), si vous êtes Cloud Customer d’une ou plusieurs Apps Cloud, vous pouvez toujours challenger l’éditeur/Cloud Provider en posant les questions listées dans ce Slide.

Le document est disponible sur SlideShare, à cet URL.

Vous pouvez aussi le visualiser directement depuis ce post, voir Slide ci-dessous :

Si vous souhaitez être accompagné, n’hésitez pas à me Ping via MP pour planifier un call et discuter plus en détail de votre projet.

Bonne lecture à tous,

#HK

L’équipe Windows Corp a récemment annoncé (01 Octobre/18) la disponibilité des paramètres de la « Security Configuration Baseline » pour Windows 10 1809 (RS5 > “Redstone 5« ) et Windows Server 2019.

Notez qu’il s’agit ici d’une version « Draft« . La version finale ne devrait pas tarder à arriver. Stay connected, abonnez-vous sur le Blog de MS TechNet

Le contenu de cette « Security Baseline » est disponible en téléchargement à l’URL suivante :

Windows-10-1809-Security-Baseline-DRAFT.zip

 

Contenu de la Security Baseline ?

Le zip file contient plusieurs :

  • GPOs : plusieurs GPOs sont fournies avec le fichier zip téléchargé via le lien ci-dessus. Ces GPOs peuvent être importées directement dans votre environnement Windows.
  • Script PowerShell : des scripts PowerShell sont également fournis avec le fichier zip. Ceux-ci vous permettent d’appliquer directement les GPOs à vos stratégies locales
  • Fichiers ADMX personnalisés
  • Documentations : plusieurs documents techniques intéressants sont disponibles :
    • MS Security Baseline Windows 10 v1809 and Server 2019.xlsx : La liste complète des paramètres applicables à WS 10 1809 et WS Server 2019
    • BaselineDiffs-to-v1809-RS5-DRAFT.xlsx : La liste des paramètres qui sont modifiés entre Windows 10 1803 et Windows 10 1809, et ceux modifiés entre Windows Server 2016 et Windows Server 2019
    • Windows 10 1803 to 1809 New Settings.xlsx : Les nouveaux paramètres introduits avec Windows 10 1809
    • Server 2016 to 2019 New Settings.xlsx : Les nouveaux paramètres introduits avec Windows Server 2019

 

Consultez cet article pour en savoir plus

Echo « Hello Security Guys »,

Les équipes Samba ont récemment découvert une vulnérabilité « Critique » sur Samba 4 (Mode : Domain Controller Active Directory) : (CVE-2018-1057)

La bonne nouvelle c’est que cette Vulnérabilité n’impacte en aucun cas Samba en « NT ou File Server » mode.

En outre, selon les informations remontées par l’équipe Samba sur le Wiki.samba, cette Vulnérabilité permettrait à n’importe utilisateur du authentifié de modifier le mot de passe de tout autre utilisateur du réseau et récupérer ses accès, cela inclut également les mots de passes des comptes à « Haut privilèges », tels que les Admins du domaine et Administrateurs locaux.

Cette faille peut être exploitée via une simple connexion LDAP suffit.

Je vous invite à prendre le temps de lire cet article pour en savoir plus sur cette vulnérabilité et les instructions à suivre pour corriger cette faite.

A CORRIGER IMMÉDIATEMENT !!

Avant de déployer vos serveurs Windows Server 2016, je vous invite à consulter la Checklist ci-dessous.

Celle-ci contient + de 70 paramètres de sécurité & hardening Windows vous permettant de mieux protéger et sécuriser vos plateformes Windows Server 2016.

Note : 90% des paramètres /options listés ci-après d’applique également à Windows Server 2012 R2/2012 mais aussi 2008 R2/2008.

 

Informations techniques
Nom du serveur  
Adresse MAC
Adresse IP
Masque de sous-réseau
Passerelle par défaut
Serveur DNS #1
Serveur DNS #2
Compte Administrateur local
VM (Oui /Non) Si Physique, Asset TAG :
RAM
CPU
Nombre de Disques /vDisques
Configuration RAID
LAN /VLAN
Date
Checklist
Etape Action Statut Commentaire
  Préparation & Installation
1 Si nouvelle installation, isoler le serveur du réseau jusqu’à ce qu’il soit protégé et sécurisé (voir sections suivantes)
2 Utiliser l’Assistant Configuration de la Sécurité (SCW : Security Configuration Wizard) pour créer et configurer une stratégie de sécurité à appliquer sur le serveur.
  Services Packs & Correctifs
3 Installer les derniers Services Packs et correctifs depuis Microsoft Windows Update (ou WSUS : Windows Server Update Services)
4 Configurer les notifications automatiques de la disponibilité des mises à jour et correctifs
  Stratégies de comptes utilisateurs
5 Définir une longueur minimale du mot de passe
6 Définir les exigences de complexité du mot de passe
7 Ne pas enregistrer les mots de passe en utilisant un chiffrement réversible
8 Définir un seuil et une durée de verrouillage des comptes
  Attribution des droits utilisateurs
9 Autoriser l’accès au serveur à partir du réseau aux administrateurs et aux utilisateurs authentifiés uniquement
10 Ne pas attribuer le droit « Agir en tant que partie du système d’exploitation » aux utilisateurs standards
11 Autoriser l’ouverture de session locale aux Administrateurs uniquement
12 Refuser le droit « Ouvrir une session en tant que Service » aux utilisateurs invités, et ce localement ou à distance via Connexion Bureau à distance.
Paramètres de sécurité
13 Configurer un message d’avertissement à afficher lors de la tentative d’ouverture de Session. Celui-ci doit indiquer que l’accès au serveur est réservé aux personnes habilitées.
14 Ne pas autoriser les utilisateurs du réseau à créer et ouvrir une session à l’aide d’un compte Microsoft
15 Désactiver le compte « Invité »
16 Requérir la combinaison de touches Ctrl+Alt+Suppr pour les ouvertures de session interactives
17 Configurer la limite d’inactivité du serveur pour protéger les sessions interactives
18 Configurer le Client réseau Microsoft pour signer les communications numériquement (toujours)
19 Configurer le Client réseau Microsoft pour signer les communications numériquement (lorsque le serveur l’accepte)
20 Configurer le Serveur réseau Microsoft pour signer les communications numériquement (toujours)
21 Configurer le Serveur réseau Microsoft pour signer les communications numériquement (lorsque les clients l’acceptent)
22 Désactiver l’envoi de mots de passe non chiffrés à des serveurs SMB tiers
  Paramètres des journaux d’événements
23 Configurer une Taille maximale des journaux d’événements
24 Configurer une Méthode de conversation des journaux d’événements
25 Configurer une Durée de stockage des journaux d’événements
26 Configurer l’envoi de journaux
  Contrôles d’Accès au réseau
27 Désactiver la traduction de noms/SID anonymes
28 Ne pas autoriser l’énumération anonyme des comptes SAM et partages réseau
29 Ne pas attribuer et appliquer de permissions « Tout le monde » aux utilisateurs anonymes
30 Ne pas autoriser les canaux nommés qui sont accessibles de manière anonyme
31 Restreindre l’accès anonyme aux canaux nommés et partages
32 Ne pas autoriser l’accès aux partages réseau de manière anonyme
33 Requérir le partage « Classique » et Modèle de sécurité pour les comptes locaux
  Paramètres de Sécurité : Réseau
34 Autoriser « Système Local » à utiliser l’identité de l’ordinateur pour NTLM
35 Désactiver le recours session Local système NULL
36 Configurer les types de cryptage autorisés pour Kerberos
37 Ne pas stocker de valeurs de hachage de niveau LAN Manager
38 Configurer le niveau d’authentification LAN Manager pour autoriser NTLMv2 et refuser LM & NTLM
39 Activer le Pare-feu Windows sur les trois profils : Domaine – Privé – Public
40 Configurer le Pare-feu Windows pour bloquer tout traffic entrant sur les trois profils
  Paramètres de Sécurité : Connexions Bureau à distance
41 Activer l’authentification au niveau du réseau (NLA : Network Level Authentication)
42 Utiliser le niveau de chiffrement « Elevé » afin de protéger les données RDP à l’aide d’un chiffrement renforcé sur 128 bits
43 Configurer un certificat SSL sur le serveur et forcer l’utilisation de la couche de sécurité « SSL »
44 Toujours demander le mot de passe à la connexion
45 Configurer une Passerelle RDS pour gérer les accès depuis l’extérieur.
46 Si possible, forcer l’utilisation de l’authentification forte (e.i carte à puce)
47 Activer la fonctionnalité « Remote CredentialGuard »
  Paramètres de Sécurité : Serveur Membre du domaine AD
48 Chiffrer ou signer numériquement les données des canaux sécurisés (toujours)
49 Chiffrer numériquement les données des canaux sécurisés (lorsque cela est possible)
50 Signer numériquement les données des canaux sécurisés (lorsque cela est possible)
51 Exiger les clés de sessions fortes (Windows 2000 ou ultérieur)
52 Configurer le nombre de demandes d’ouverture de session précédentes à mettre en cache
  Paramètres de Stratégies d’Audit
53 Auditer les événements d’ouverture de session sur un compte
54 Auditer la gestion des comptes utilisateur
55 Auditer les ouvertures et fermetures de sessions
56 Auditer les changements de stratégie
57 Auditer l’utilisation des privilèges
  Paramètres de sécurité : OS
58 Si possible, convertir le serveur en mode « Core »
59 Désinstaller ou désactiver les services non utilisés
60 Désinstaller ou supprimer (binaires) tous les rôles et fonctionnalités non utilisés
61 Fermer tous les ports non utilisés
62 Supprimer ou désactiver les comptes utilisateurs non utilisés
63 Restreindre au maximum les droits aux utilisateurs du réseau
64 Vérifier que tous les volumes utilisent le système de fichier « NTFS »
65 Configurer les permissions au niveau du Registre
66 Si possible, désactiver l’accès distant au Registre
67 Installer et activer un anti-virus & anti-spyware
68 Configurer l’anti-virus & anti-spyware pour se mettre à jour automatiquement
69 Configurer la date & heure système, synchroniser ensuite l’horloge avec un serveur de temps (Serveur NTP : Network Time Protocol)
70 Si possible, activer le chiffrement de lecteur BitLocker
  Sécurité Physique
71 Protéger l’accès au BIOS à l’aide d’un mot de passe
72 Protéger l’accès aux consoles de gestion (e.i console iLO) à l’aide d’un mot de passe
73 Ne pas autoriser l’arrêt du système sans avoir ouvert de session Windows
74 Configurer l’ordre de boot pour éviter tout démarrage d’un média non autorisé
75 Configurer un écran de veille pour verrouiller l’écran (affichage) après un certain temps d’inactivité
  Informations additionnelles
76 Utiliser l’outil MBSA (Microsoft Baseline Security Analyzer) pour analyser et auditer la sécurité de votre serveur

 

Télécharger ce document (format PDF)

Cette Checklist est disponible (format PDF) en téléchargement gratuit depuis la Gallery TechNet.

Vous pouvez download le document ici.

Bonne lecture.

Vos feedbacks sont les bienvenus :).

#HK

 

Malgré l’ajout des ~2300 nouvelles Cmd-lets PowerShell sur Windows Server 2012 R2 et 2016, le meilleur outil de gestion du Networking & Firewalling Windows reste (pour moi :D) le super Command-Line Tool Netsh.exe (Windows Network Shell).

En effet, Windows PowerShell fonctionne aujourd’hui qu’avec un sous-ensemble de fonctionnalités de management Windows Server, n’incluant pas la possibilité de configurer et gérer le Pare-feu Windows et ses fonctions avancées.

J’ai donc décidé de vous regrouper dans le présent post les « Top 10″ des Commandes Netsh que vous devez connaître pour créer, configurer et gérer vos Pare-feu Windows (Client & Server).

Les commandes détaillées ci-dessous peuvent aussi vous être utile lors de la configuration du Firewall Windows IaaS (E.g : VM Azure ou AWS)

 

1.Afficher /Lister une règle spécifique ou toutes les règles du Pare-feu Windows
  • Afficher toutes les règles : netsh advfirewall firewall show rule name=all
  • Afficher une règle spécifique (« SQL » dans l’exemple suivant) : netsh advfirewall firewall show rule name=SQL


2.Activer /Désactiver un ou plusieurs profils du Pare-feu Windows
  • Activer tous les profils du Pare-feu Windows : Netsh advfirewall set allprofiles state on
  • Désactiver tous les profils du Pare-feu Windows : Netsh advfirewall set allprofiles state off
  • Activer le profil « Public » du Pare-feu Windows : Netsh advfirewall set publicprofile state on
  • Désactiver le profil « Privé » du Pare-feu Windows : Netsh advfirewall set privateprofile state off
  • Activer le profil « Domaine » du Pare-feu Windows : Netsh advfirewall set domainprofile state on

3.Réinitialiser les stratégies (par défaut) du Pare-feu Windows
  • netsh advfirewall reset

4.Afficher et Configurer les fichiers Logs du Pare-feu Windows

Notez que le chemin par défaut des fichiers « Logs » liés au Pare-feu Windows est le suivant : C:\Windows\system32\LogFiles\Firewall\pfirewall.log

Vous pouvez visualiser ce chemin par défaut (pour tous les profils du Pare-feu) en exécutant la commande suivante :

  • netsh advfirewall show allprofiles logging

Nous allons définir dans l’exemple suivant le chemin « D:\WSFirewall\Logs\pfirewall.log », pour tous les profils du Pare-feu Windows (Domaine – Privé – Public)

  • netsh advfirewall set allprofiles logging filename « D:\WSFirewall\Logs\pfirewall.log« 

Note : après configuration d’un nouvel emplacement du fichier log pfirewall.log, l’ancien fichier log placé dans le chemin par défaut est automatiquement déplacé et renommé en .old


5.Autoriser ou Refuser le « Ping »
  • Autoriser le « Ping »: netsh advfirewall firewall add rule name= »All ICMP V4″ dir=in action=allow protocol=icmpv4
  • Refuser le « Ping » : netsh advfirewall firewall add rule name= »All ICMP V4″ dir=in action=block protocol=icmpv4

6.Ajouter (Autoriser) ou Supprimer un Port spécifique
  • Ajouter une nouvelle règle autorisant le port 1433 (port par défaut utilisé par SQL Server) : netsh advfirewall firewall add rule name= »Autoriser_Port_SQL Server » dir=in action=allow protocol=TCP localport=1433
  • Supprimer la règle précédente autorisant le port 1433 (port par défaut utilisé par SQL Server) : netsh advfirewall firewall delete rule name= »Autoriser_Port_SQL Server » protocol=tcp localport=1433

7.Autoriser un Programme
  • Dans l’exemple suivant, le Programme « IPScan » placé dans C:\Program Files\IPScan\IPScan.exe » sera autorisé : netsh advfirewall firewall add rule name= »Autoriser_IPScan » dir=in action=allow program= »%ProgramFiles%\IPScan\IPScan.exe »

8.Activer la gestion à distance
  • netsh advfirewall firewall set rule group= »Gestion à distance de Windows » new enable=yes


9. Activer /autoriser Les Connexions Bureau à distance
  • netsh advfirewall firewall set rule group= »Bureau à distance » new enable=Yes


10.Exporter ou importer la configuration & paramètres du Pare-feu Windows
  • Pour exporter toute la configuration du Pare-feu Windows vers D:\WSFirewall : netsh advfirewall export « D:\WSFirewall\WFconfiguration.wfw »

  • Pour exporter toute la configuration du Pare-feu Windows vers D:\WSFirewall : netsh advfirewall export « D:\WSFirewall\WFconfiguration.wfw »

Je vous laisse Run > Netsh Advfirewall /? et découvrir le reste des commandes.

Enfin, toujours gardez à l’esprit que le CLI Netsh.exe fait parti des outils en ligne de commande Windows les plus puissants (et compliqué aussi). Toujours PoC(er), Tester et Valider l’opération sur un LaB /Environnement d’Intégration /PréProd …Etc avant toute application sur les serveurs de Production.

A bientôt

Si une ou plusieurs de vos machines Windows (Client ou Serveur) ont été infectées par WannaCry, je vous invite à visionner la vidéo ci-après. La méthode consiste simplement à utiliser un outil (Freeware) nommé WanaKiwi qui permet de décrypter vos données sans payer les fameux 300 $$$$ (en Bitcoins) au groupe de Hackers :).