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

9 KiB

135, 593 - Pentesting MSRPC

Lernen Sie AWS-Hacking von Null auf Held 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 Echtzeit-Nachrichten und Einblicke auf dem Laufenden

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

Treten Sie uns auf Discord bei 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 Network Data Representation-Format. 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 eindeutiger RPC-Dienste, 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

  • Named Pipe: \pipe\lsarpc

  • Beschreibung: LSA-Schnittstelle, die zur Auflistung von Benutzern verwendet wird.

  • IFID: 3919286a-b10c-11d0-9ba8-00c04fd92ef5

  • Named Pipe: \pipe\lsarpc

  • Beschreibung: LSA-Verzeichnisdienste (DS)-Schnittstelle, die zur Auflistung von Domänen und Vertrauensbeziehungen verwendet wird.

  • IFID: 12345778-1234-abcd-ef00-0123456789ac

  • Named 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

  • Named Pipe: \pipe\atsvc

  • Beschreibung: Taskplaner, der zur Remoteausführung von Befehlen verwendet wird.

  • IFID: 338cd001-2244-31f1-aaaa-900038001003

  • Named Pipe: \pipe\winreg

  • Beschreibung: Remote-Registrierungsdienst, der zum Zugriff auf und Ändern der Systemregistrierung verwendet wird.

  • IFID: 367abb81-9844-35f1-ad32-98f038001003

  • Named Pipe: \pipe\svcctl

  • Beschreibung: Dienstkontrollmanager und Serverdienste, die zum Remote-Starten und Stoppen von Diensten und Ausführen von Befehlen verwendet werden.

  • IFID: 4b324fc8-1670-01d3-1278-5a47bf6ee188

  • Named Pipe: \pipe\srvsvc

  • Beschreibung: Dienstkontrollmanager und Serverdienste, die zum Remote-Starten und Stoppen von Diensten und Ausführen von Befehlen verwendet werden.

  • IFID: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57

  • Named 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 Schnittstelleninformationen 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!