hacktricks/network-services-pentesting/135-pentesting-msrpc.md

9 KiB

135, 593 - Pentesting MSRPC

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Treten Sie dem HackenProof Discord Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!

Hacking-Einblicke
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 Echtzeitnachrichten und Einblicke auf dem Laufenden

Neueste Ankündigungen
Bleiben Sie über die neuesten Bug-Bounties und wichtigen Plattformupdates informiert

Treten Sie uns bei auf Discord und beginnen Sie noch heute mit der Zusammenarbeit mit Top-Hackern!

Grundlegende Informationen

Das Microsoft Remote Procedure Call (MSRPC)-Protokoll, ein Client-Server-Modell, das es einem Programm ermöglicht, einen Dienst von einem Programm auf einem anderen Computer anzufordern, ohne die spezifischen Details des Netzwerks zu verstehen, wurde ursprünglich aus Open-Source-Software abgeleitet und später von Microsoft entwickelt und urheberrechtlich geschützt.

Der RPC-Endpunktmapper kann über TCP- und UDP-Port 135, SMB über TCP 139 und 445 (mit einer Null- oder authentifizierten Sitzung) und als Webservice über TCP-Port 593 zugegriffen werden.

135/tcp   open     msrpc         Microsoft Windows RPC

Wie funktioniert MSRPC?

Initiiert durch die Client-Anwendung, beinhaltet der MSRPC-Prozess das Aufrufen einer lokalen Stubb-Prozedur, die dann mit der Client-Laufzeitbibliothek interagiert, um die Anfrage an den Server vorzubereiten und zu übertragen. Dies beinhaltet die Umwandlung von Parametern in ein standardisiertes Netzwerkdatenrepräsentationsformat. Die Wahl des Transportprotokolls wird von der Laufzeitbibliothek bestimmt, wenn der Server entfernt ist, um sicherzustellen, dass die RPC über den Netzwerkstack übertragen wird.

https://0xffsec.com/handbook/images/msrpc.png

Identifizierung von freigegebenen RPC-Diensten

Die Freigabe von RPC-Diensten über TCP, UDP, HTTP und SMB kann durch Abfragen des RPC-Lokalisierungsdienstes und einzelner Endpunkte bestimmt werden. Tools wie rpcdump erleichtern die Identifizierung von eindeutigen RPC-Diensten, die durch IFID-Werte gekennzeichnet sind, und offenbaren Dienstdetails und Kommunikationsbindungen:

D:\rpctools> rpcdump [-p port] <IP>
**IFID**: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
Annotation: Messenger Service
UUID: 00000000-0000-0000-0000-000000000000
Binding: ncadg_ip_udp:<IP>[1028]

Der Zugriff auf den RPC-Lokalisierungsdienst wird über spezifische Protokolle ermöglicht: ncacn_ip_tcp und ncadg_ip_udp für den Zugriff über Port 135, ncacn_np für SMB-Verbindungen und ncacn_http für webbasierte RPC-Kommunikation. Die folgenden Befehle veranschaulichen die Verwendung von Metasploit-Modulen zur Überprüfung und Interaktion mit MSRPC-Diensten, wobei der Schwerpunkt hauptsächlich auf Port 135 liegt:

use auxiliary/scanner/dcerpc/endpoint_mapper
use auxiliary/scanner/dcerpc/hidden
use auxiliary/scanner/dcerpc/management
use auxiliary/scanner/dcerpc/tcp_dcerpc_auditor
rpcdump.py <IP> -p 135

Alle Optionen außer tcp_dcerpc_auditor sind speziell für das Targeting von MSRPC auf Port 135 konzipiert.

Bemerkenswerte RPC-Schnittstellen

  • IFID: 12345778-1234-abcd-ef00-0123456789ab
  • Benannte Pipe: \pipe\lsarpc
  • Beschreibung: LSA-Schnittstelle, die zur Auflistung von Benutzern verwendet wird.
  • IFID: 3919286a-b10c-11d0-9ba8-00c04fd92ef5
  • Benannte Pipe: \pipe\lsarpc
  • Beschreibung: LSA-Verzeichnisdienste (DS)-Schnittstelle, die zur Auflistung von Domänen und Vertrauensbeziehungen verwendet wird.
  • IFID: 12345778-1234-abcd-ef00-0123456789ac
  • Benannte Pipe: \pipe\samr
  • Beschreibung: LSA SAMR-Schnittstelle, die zum Zugriff auf öffentliche SAM-Datenbankelemente (z. B. Benutzernamen) und zum Brute-Forcing von Benutzerpasswörtern unabhängig von der Kontosperrrichtlinie verwendet wird.
  • IFID: 1ff70682-0a51-30e8-076d-740be8cee98b
  • Benannte Pipe: \pipe\atsvc
  • Beschreibung: Taskplaner, der zur Remoteausführung von Befehlen verwendet wird.
  • IFID: 338cd001-2244-31f1-aaaa-900038001003
  • Benannte Pipe: \pipe\winreg
  • Beschreibung: Remote-Registrierungsdienst, der zum Zugriff auf das Systemregister und zur Modifikation verwendet wird.
  • IFID: 367abb81-9844-35f1-ad32-98f038001003
  • Benannte Pipe: \pipe\svcctl
  • Beschreibung: Dienstkontrollmanager und Serverdienste, die zum Remote-Starten und Stoppen von Diensten und zur Ausführung von Befehlen verwendet werden.
  • IFID: 4b324fc8-1670-01d3-1278-5a47bf6ee188
  • Benannte Pipe: \pipe\srvsvc
  • Beschreibung: Dienstkontrollmanager und Serverdienste, die zum Remote-Starten und Stoppen von Diensten und zur Ausführung von Befehlen verwendet werden.
  • IFID: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57
  • Benannte Pipe: \pipe\epmapper
  • Beschreibung: DCOM-Schnittstelle, die für Brute-Force-Passwort-Cracking und Informationsbeschaffung über WM verwendet wird.

Identifizierung von IP-Adressen

Mit https://github.com/mubix/IOXIDResolver, das von Airbus-Forschung stammt, ist es möglich, die ServerAlive2-Methode innerhalb der IOXIDResolver-Schnittstelle zu missbrauchen.

Diese Methode wurde verwendet, um Interface-Informationen als IPv6-Adresse vom HTB-Box APT zu erhalten. Siehe hier für den 0xdf APT-Bericht, der eine alternative Methode mit rpcmap.py von Impacket mit stringbinding enthält (siehe oben).

Ausführen eines RCE mit gültigen Anmeldeinformationen

Es ist möglich, Remote-Code auf einer Maschine auszuführen, wenn die Anmeldeinformationen eines gültigen Benutzers verfügbar sind, indem dcomexec.py aus dem Impacket-Framework verwendet werden.

Denken Sie daran, mit den verschiedenen verfügbaren Objekten zu versuchen

  • ShellWindows
  • ShellBrowserWindow
  • MMC20

Port 593

Das rpcdump.exe von rpctools kann mit diesem Port interagieren.

Referenzen

Treten Sie dem HackenProof Discord 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 Echtzeitnachrichten und Einblicke auf dem Laufenden

Neueste Ankündigungen
Bleiben Sie über die neuesten Bug-Bounties und wichtigen Plattformupdates informiert

Treten Sie uns bei Discord bei und beginnen Sie noch heute mit der Zusammenarbeit mit Top-Hackern!