# 5985,5986 - Pentesting WinRM
Impara l'hacking di AWS da zero a eroe conhtARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
Unisciti al server [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) per comunicare con hacker esperti e cacciatori di bug bounty!
**Insight sull'hacking**\
Interagisci con contenuti che approfondiscono l'emozione e le sfide dell'hacking
**Notizie sull'hacking in tempo reale**\
Resta aggiornato sul mondo dell'hacking frenetico attraverso notizie e approfondimenti in tempo reale
**Ultime notizie**\
Rimani informato sul lancio delle nuove bug bounty e sugli aggiornamenti cruciali delle piattaforme
**Unisciti a noi su** [**Discord**](https://discord.com/invite/N3FrSbmwdy) **e inizia a collaborare con i migliori hacker oggi stesso!**
## WinRM
[Windows Remote Management (WinRM)](https://msdn.microsoft.com/en-us/library/windows/desktop/aa384426\(v=vs.85\).aspx) è evidenziato come un **protocollo di Microsoft** che consente la **gestione remota dei sistemi Windows** tramite HTTP(S), sfruttando SOAP nel processo. È fondamentalmente alimentato da WMI, presentandosi come un'interfaccia basata su HTTP per le operazioni di WMI.
La presenza di WinRM su una macchina consente una semplice amministrazione remota tramite PowerShell, simile al funzionamento di SSH per altri sistemi operativi. Per determinare se WinRM è operativo, è consigliabile verificare l'apertura di porte specifiche:
* **5985/tcp (HTTP)**
* **5986/tcp (HTTPS)**
Una porta aperta dalla lista sopra indica che WinRM è stato configurato, consentendo quindi tentativi di avviare una sessione remota.
### **Avvio di una sessione WinRM**
Per configurare PowerShell per WinRM, viene utilizzato il cmdlet `Enable-PSRemoting` di Microsoft, che configura il computer per accettare comandi remoti di PowerShell. Con l'accesso elevato a PowerShell, è possibile eseguire i seguenti comandi per abilitare questa funzionalità e designare qualsiasi host come attendibile:
```powershell
Enable-PSRemoting -Force
Set-Item wsman:\localhost\client\trustedhosts *
```
Questo approccio prevede l'aggiunta di un carattere jolly alla configurazione di `trustedhosts`, una procedura che richiede una considerazione attenta a causa delle sue implicazioni. Si nota inoltre che potrebbe essere necessario modificare il tipo di rete da "Pubblica" a "Lavoro" sulla macchina dell'attaccante.
Inoltre, WinRM può essere **attivato in remoto** utilizzando il comando `wmic`, come dimostrato di seguito:
```powershell
wmic /node: process call create "powershell enable-psremoting -force"
```
Questo metodo consente di configurare in remoto WinRM, aumentando la flessibilità nella gestione delle macchine Windows da remoto.
### Verifica della configurazione
Per verificare la configurazione della macchina di attacco, viene utilizzato il comando `Test-WSMan` per verificare se il target ha WinRM configurato correttamente. Eseguendo questo comando, ci si aspetta di ricevere dettagli sulla versione del protocollo e wsmid, indicando una configurazione riuscita. Di seguito sono riportati esempi che mostrano l'output atteso per un target configurato rispetto a uno non configurato:
- Per un target che **è** configurato correttamente, l'output sarà simile a questo:
```bash
Test-WSMan
```
La risposta dovrebbe contenere informazioni sulla versione del protocollo e wsmid, che indicano che WinRM è configurato correttamente.
![](<../.gitbook/assets/image (161) (1).png>)
- Al contrario, per un obiettivo **non** configurato per WinRM, ciò comporterebbe l'assenza di informazioni dettagliate, evidenziando l'assenza di una corretta configurazione di WinRM.
![](<../.gitbook/assets/image (162).png>)
### Esegui un comando
Per eseguire `ipconfig` in remoto su una macchina di destinazione e visualizzare il suo output, esegui:
```powershell
Invoke-Command -computername computer-name.domain.tld -ScriptBlock {ipconfig /all} [-credential DOMAIN\username]
```
![](<../.gitbook/assets/image (163) (1).png>)
Puoi anche **eseguire un comando dalla tua console PS corrente tramite** _**Invoke-Command**_. Supponiamo che tu abbia localmente una funzione chiamata _**enumeration**_ e desideri **eseguirla su un computer remoto**, puoi farlo:
```powershell
Invoke-Command -ComputerName -ScriptBLock ${function:enumeration} [-ArgumentList "arguments"]
```
### Esegui uno script
To execute a script on a target machine through WinRM, you can use the `Invoke-Command` cmdlet in PowerShell. This cmdlet allows you to run commands or scripts on remote machines.
```powershell
Invoke-Command -ComputerName -ScriptBlock {