Evil-WinRM
hackingDéfinition
Evil-WinRM est un outil offensif en Ruby utilisé pour établir une session interactive sur un système Windows via le protocole WinRM (Windows Remote Management), qui repose sur SOAP au-dessus de HTTP ou HTTPS, respectivement sur les ports 5985 et 5986. Une fois des identifiants valides obtenus, l'outil permet l'exécution de commandes PowerShell à distance, le transfert de fichiers dans les deux sens, ainsi que le chargement de scripts et de modules directement en mémoire pour limiter la détection par les solutions antivirales basées sur signature de fichier. Il constitue un outil courant de post-exploitation et de mouvement latéral lors de tests d'intrusion internes, à condition que le service WinRM soit activé sur la cible, ce qui est fréquent sur les serveurs d'administration. En défense, la restriction de l'accès WinRM aux seules stations d'administration dédiées via des règles de pare-feu et des JEA (Just Enough Administration), l'authentification renforcée par Kerberos avec Credential Guard, ainsi que la surveillance des connexions WinRM via les événements Windows 4624 de type 3 avec le processus wsmprovhost, et les journaux du canal Microsoft-Windows-WinRM, permettent de détecter et de limiter l'usage abusif de ce protocole d'administration à distance.
Définition
Evil-WinRM est un shell interactif open source, écrit en Ruby, qui exploite le protocole WinRM (Windows Remote Management) pour obtenir un accès distant en ligne de commande sur une machine Windows. Développé par l'équipe Hackplayers, il s'est imposé comme l'outil de référence des phases de post-exploitation lors des audits d'environnements Active Directory : une fois des identifiants valides obtenus, il transforme un service d'administration légitime en canal de contrôle complet.
Contrairement à un implant malveillant déposé sur le disque, Evil-WinRM n'installe rien sur la cible. Il utilise un service natif activé par défaut sur les serveurs Windows depuis 2012, ce qui en fait un parfait exemple de technique Living off the Land — l'attaquant se fond dans le trafic d'administration normal.
Fonctionnement technique
WinRM est l'implémentation Microsoft du standard WS-Management, un protocole SOAP encapsulé dans HTTP. Il écoute sur deux ports :
5985/tcp— WinRM sur HTTP (chiffrement applicatif via NTLM/Kerberos, mais pas TLS)5986/tcp— WinRM sur HTTPS, avec certificat X.509
L'accès n'est pas réservé aux administrateurs : tout compte membre du groupe local Remote Management Users peut ouvrir une session. C'est précisément ce détail que les auditeurs recherchent, car ce groupe est souvent peuplé de comptes de service ou d'équipes d'exploitation aux privilèges mal maîtrisés.
Côté serveur, chaque connexion déclenche la création d'un processus wsmprovhost.exe, hôte du runspace PowerShell distant. Ce processus est l'artefact de détection le plus fiable : toute commande lancée par l'attaquant apparaît comme un enfant de wsmprovhost.exe.
Exemples concrets d'utilisation
Connexion classique avec mot de passe en clair :
evil-winrm -i 10.10.10.5 -u svc_backup -p 'P@ssw0rd!'
Authentification par Pass-the-Hash, sans jamais connaître le mot de passe — le hash NTLM extrait de la mémoire LSASS suffit :
evil-winrm -i 10.10.10.5 -u administrateur -H 5e884898da280471...
Session Kerberos (Pass-the-Ticket) après import d'un ticket dans le cache :
evil-winrm -i dc01.corp.local -r CORP.LOCAL
Une fois le shell obtenu, Evil-WinRM fournit des commandes intégrées qui dépassent largement PowerShell Remoting standard :
upload/download— transfert de fichiers bidirectionnel intégré au canal WinRMservices— énumération des services et de leurs permissions, pour repérer une escalade de privilègesInvoke-Binary— exécution d'un binaire .NET directement en mémoire, sans écriture disqueDll-LoaderetDonut-Loader— chargement réflexif de DLL et de shellcodeBypass-4MSI— neutralisation en mémoire de l'interface AMSI pour faire passer des scripts détectés
Le paramètre -s /chemin/scripts permet de monter un répertoire local de scripts PowerShell (PowerView, PowerUp, Invoke-Mimikatz) chargeables à la volée dans la session distante.
Liens avec les autres concepts cyber
Evil-WinRM n'est jamais un point de départ : c'est un maillon dans une chaîne d'attaque Active Directory.
- Amont — les identifiants proviennent typiquement d'un Kerberoasting, d'un AS-REP Roasting, d'un dump NTDS.dit, d'un relais NTLM ou d'une extraction LSASS.
- Cartographie — BloodHound expose l'arête
CanPSRemote, qui identifie précisément quels comptes peuvent atteindre quelles machines via WinRM. - Alternatives — NetExec (ex-CrackMapExec) avec le protocole
winrm, Impacket (wmiexec.py,psexec.py), ouEnter-PSSessionnatif. - Aval — mouvement latéral, escalade vers Domain Admin, persistance, exfiltration.
- Cadre MITRE ATT&CK — technique
T1021.006« Remote Services: Windows Remote Management ».
Détection et bonnes pratiques défensives
Côté détection, plusieurs signaux sont à corréler dans le SIEM :
- Journal
Microsoft-Windows-WinRM/Operational: événements91(création de session) et168 - Journal Sécurité :
4624avec type d'ouverture3et processuswinrm - Script Block Logging PowerShell : événements
4103et4104, révélant le code réellement exécuté - Toute génération de processus enfant inhabituel par
wsmprovhost.exe - Connexions entrantes sur
5985depuis des postes bureautiques — un poste utilisateur n'a aucune raison d'administrer un serveur
Côté durcissement, les mesures prioritaires sont :
- Désactiver WinRM sur les machines qui n'en ont pas l'usage, et n'autoriser que
5986(HTTPS) ailleurs - Auditer et purger le groupe
Remote Management Users - Déployer JEA (Just Enough Administration) pour restreindre les cmdlets accessibles en session distante
- Filtrer les flux WinRM par pare-feu selon un modèle de tiering : seuls les postes d'administration sécurisés (PAW) atteignent les serveurs et contrôleurs de domaine
- Activer LSA Protection, Credential Guard et le compte
Protected Userspour couper l'approvisionnement en hashes réutilisables - Généraliser LAPS afin d'éliminer les mots de passe administrateur local identiques sur tout le parc
Evil-WinRM illustre une réalité structurante de la sécurité Windows : le problème n'est pas l'outil, mais la surface d'administration ouverte et les identifiants réutilisables qu'il exploite. Réduire l'un et l'autre neutralise la technique bien plus efficacement qu'une signature antivirus.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h