# 5985,5986 - Pentesting WinRM
Lernen Sie AWS-Hacking von Grund auf mithtARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories senden.
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
**Hacking Insights**\
Beschäftigen Sie sich mit Inhalten, die sich mit dem Nervenkitzel und den Herausforderungen des Hackens befassen.
**Echtzeit-Hack-News**\
Bleiben Sie mit der schnelllebigen Hacking-Welt durch Echtzeit-Nachrichten und Einblicke auf dem Laufenden.
**Neueste Ankündigungen**\
Bleiben Sie über die neuesten Bug-Bounties und wichtige Plattformupdates informiert.
**Treten Sie uns auf** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginnen Sie noch heute mit Top-Hackern zusammenzuarbeiten!
## WinRM
[Windows Remote Management (WinRM)](https://msdn.microsoft.com/en-us/library/windows/desktop/aa384426\(v=vs.85\).aspx) wird von Microsoft als **Protokoll** hervorgehoben, das die **ferngesteuerte Verwaltung von Windows-Systemen** über HTTP(S) ermöglicht und dabei SOAP nutzt. Es wird grundlegend von WMI unterstützt und präsentiert sich als HTTP-basierte Schnittstelle für WMI-Operationen.
Das Vorhandensein von WinRM auf einer Maschine ermöglicht eine einfache Fernverwaltung über PowerShell, ähnlich wie SSH für andere Betriebssysteme funktioniert. Um festzustellen, ob WinRM aktiv ist, wird empfohlen, auf das Öffnen bestimmter Ports zu prüfen:
* **5985/tcp (HTTP)**
* **5986/tcp (HTTPS)**
Ein offener Port aus der obigen Liste zeigt an, dass WinRM eingerichtet wurde und somit Versuche zur Initiierung einer Remote-Sitzung ermöglicht.
### **Initiierung einer WinRM-Sitzung**
Um PowerShell für WinRM zu konfigurieren, kommt das `Enable-PSRemoting`-Cmdlet von Microsoft zum Einsatz, das den Computer für die Annahme von Remote-PowerShell-Befehlen einrichtet. Mit erhöhtem PowerShell-Zugriff können die folgenden Befehle ausgeführt werden, um diese Funktionalität zu aktivieren und einen beliebigen Host als vertrauenswürdig zu kennzeichnen:
```powershell
Enable-PSRemoting -Force
Set-Item wsman:\localhost\client\trustedhosts *
```
Dieser Ansatz beinhaltet das Hinzufügen eines Wildcards zur Konfiguration von `trustedhosts`, ein Schritt, der aufgrund seiner Auswirkungen vorsichtige Überlegungen erfordert. Es wird auch darauf hingewiesen, dass es möglicherweise erforderlich ist, den Netzwerktyp von "Öffentlich" auf "Arbeit" auf dem Angreiferrechner zu ändern.
Darüber hinaus kann WinRM **remote aktiviert** werden, indem der `wmic`-Befehl verwendet wird, wie folgt demonstriert:
```powershell
wmic /node: process call create "powershell enable-psremoting -force"
```
Diese Methode ermöglicht die Remote-Einrichtung von WinRM und erhöht die Flexibilität bei der Verwaltung von Windows-Maschinen aus der Ferne.
### Überprüfen der Konfiguration
Um die Einrichtung Ihrer Angriffsmaschine zu überprüfen, wird der Befehl `Test-WSMan` verwendet, um zu prüfen, ob das Ziel WinRM ordnungsgemäß konfiguriert hat. Durch Ausführen dieses Befehls sollten Sie Details zur Protokollversion und zur WSMID erhalten, die auf eine erfolgreiche Konfiguration hinweisen. Im Folgenden finden Sie Beispiele, die die erwartete Ausgabe für ein konfiguriertes Ziel im Vergleich zu einem nicht konfigurierten Ziel zeigen:
- Für ein Ziel, das **korrekt** konfiguriert ist, sieht die Ausgabe ähnlich aus wie:
```bash
Test-WSMan
```
Die Antwort sollte Informationen über die Protokollversion und die WSMID enthalten, die darauf hinweisen, dass WinRM korrekt eingerichtet ist.
![](<../.gitbook/assets/image (161) (1).png>)
- Im Gegensatz dazu würde bei einem Ziel, das nicht für WinRM konfiguriert ist, keine solche detaillierte Information angezeigt, was auf das Fehlen einer ordnungsgemäßen WinRM-Konfiguration hinweist.
![](<../.gitbook/assets/image (162).png>)
### Führen Sie einen Befehl aus
Um `ipconfig` remote auf einer Zielmaschine auszuführen und die Ausgabe anzuzeigen, tun Sie folgendes:
```powershell
Invoke-Command -computername computer-name.domain.tld -ScriptBlock {ipconfig /all} [-credential DOMAIN\username]
```
![](<../.gitbook/assets/image (163) (1).png>)
Sie können auch **einen Befehl Ihrer aktuellen PS-Konsole über** _**Invoke-Command**_ **ausführen**. Angenommen, Sie haben lokal eine Funktion namens _**enumeration**_ und möchten sie auf einem Remote-Computer ausführen, können Sie Folgendes tun:
```powershell
Invoke-Command -ComputerName -ScriptBLock ${function:enumeration} [-ArgumentList "arguments"]
```
### Skript ausführen
To execute a script on a target machine using WinRM, you can use the `Invoke-Command` cmdlet in PowerShell. This cmdlet allows you to run commands or scripts on remote computers.
```powershell
Invoke-Command -ComputerName -ScriptBlock {