it-swarm.com.de

Was ist RPC und warum ist es so wichtig?

Von Anfang an habe ich gehört, dass Sie den Remote Procedure Call-Dienst unter Windows niemals deaktivieren. Dies führt zu schrecklichen Dingen, die sich früher nur schwer umstürzen ließen (ich glaube, das ist nicht mehr einfach, aber jetzt viel einfacher zu beheben). Ich habe jedoch keine Ahnung, was es macht oder warum es so wichtig ist, im Grunde das gesamte Betriebssystem.

Kann man den Zweck des RPC-Dienstes zusammenfassen und warum hängen so viele andere Dienste/Anwendungen/Vorgänge davon ab, dass er ausgeführt wird?

14
redknightalex

Die Entwickler von Windows haben beschlossen, viele Dinge über RPC miteinander zu kommunizieren - damit sie entweder lokal oder über ein Netzwerk kommunizieren können.

Dies umfasst Dinge wie Active Directory, die meisten MMC Konsolen, die Funktionalität einiger Systemsteuerungs-Applets wie den Geräte-Manager, viele Dinge in der Verwaltung und möglicherweise interne Windows-Komponenten.

Ich glaube, auch wenn Sie auf eine MMC - Konsole zugreifen, wie compmgmt.msc, um Informationen über den lokalen Computer anzuzeigen, wird RPC an localhost gesendet (ich könnte mich jedoch irren).

Stellen Sie sich RPC als etwas vor, das eine Ebene über TCP/IP liegt und von vielen Windows-Komponenten als untergeordnetes (und unsicheres) netzwerkfähiges Kommunikationsframework verwendet wird. Warum nicht direkt TCP/IP verwenden? Zu der Zeit, als Windows NT entwickelt wurde (die erste Version wurde 1993 veröffentlicht), gab es neben TCP/IP noch andere Netzwerkprotokolle, wie beispielsweise Netware (SPX/IPX), NetBIOS und AppleTalk (ich glaube, Windows hat dies früher unterstützt) , könnte falsch sein ...) und so. Auf diese Weise können Windows-Komponenten netzwerkunabhängig mit anderen Komponenten auf dem lokalen Computer oder dem Remotecomputer kommunizieren.

23
LawrenceC

Die Wahrheit ist: RPC wird häufig in LOKALEN Maschinen verwendet, aber hauptsächlich für Host-zu-Host -Verwendung von Microsoft intern, wird nur selten von Dritten verwendet .


LOCAL RPC-Hauptnutzung:

  • Rohe RPC-Komponente, wie z. B. Registrierung, Netlogon, Firewall, Dienststeuerung, SQL Server ... Sie können einige davon in der Liste im Abschnitt "Host-to-Host" sehen.

  • viele DCOM-Komponenten (basierend auf RPC, wie ein C++ - Wrapper von C) enthalten COM + -Komponenten.

Sie können dcomcnfg ausführen, um festzustellen, wie viele DCOM-Komponenten sich auf Ihrem Computer befinden:

Excel, Internet Explorer, Visual Studio ... können automatisiert werden, da sie DCOM-Komponenten sind:

enter image description here

Sogar das Dialogfeld "Dateieigenschaften" des Explorers ist ebenfalls eine DCOM-Komponente. Wenn Sie alle ACLs aus "Edit Limits" der Startberechtigungen von DCOMCNFG entfernen, können Sie fast alles tun, nicht nur die Verwaltung, sondern auch die Dateieigenschaft im Explorer anzeigen!

enter image description here


Host-zu-Host RPC-Hauptnutzung:

  • Remoteverwaltungssachen wie "Computerverwaltung", "Registrierungseditor" können Sie es mit einem Remotecomputer verbinden lassen! Was unterstrichen geschieht, ist das Protokoll RPC over SMB (TCP-Port 445, bekannt als File Sharing).

    enter image description here

Sie können das Tool rpcdump oder ifids verwenden, um alle RPC-Schnittstellen auf dem Remotecomputer zu sichern. Die folgenden Ergebnisse zeigen viele Systemverwaltungsschnittstellen an (diese können natürlich auch lokal verwendet werden):

[MS-RSP]: Remote Shutdown Protocol 
[MS-TSCH]: Task Scheduler Service Remoting Protocol 
[MS-TSCH]: Task Scheduler Service Remoting Protocol 
[MS-TSCH]: Task Scheduler Service Remoting Protocol 
[MS-EVEN6]: EventLog Remoting Protocol 
Adh APIs
AppInfo
Base Firewall Engine API
DHCP Client LRPC Endpoint
DHCPv6 Client LRPC Endpoint
DfsDs service
EFSK RPC Interface
Event log TCPIP
Fw APIs
Group Policy RPC Interface
IP Transition Configuration endpoint
IdSegSrv service
Impl friendly name
KeyIso
LicenseManager
NRP server endpoint
NSI server endpoint
NetSetup API
Ngc Pop Key Service
Proxy Manager client server endpoint
Proxy Manager provider server endpoint
Secure Desktop LRPC interface
Security Center
UserMgrCli
WM_WindowManagerRPC\Server
WinHttp Auto-Proxy Service
Witness Client Test Interface
Witness Client Upcall Server
XactSrv service
...

Received 499 endpoints.

Warum ist RPC wichtig? Nur weil jedes ausgereifte System einen prozessübergreifenden Kommunikationsmechanismus benötigt, ein Toolset zum Generieren von Stub/Proxy, einen Standard zum Packen/Entpacken von Objekten. Jedes System hat ähnliche Dinge. Sie müssen Android kennen, seine Sammelmappe ist dem Design von DCOM sehr ähnlich.

Tatsächlich ist Host-zu-Host-RPC nicht weit verbreitet, vor allem, weil sie kompliziert und undurchsichtig sind, nicht für das Internet geeignet sind, da häufig 445 oder 135 Ports blockiert werden und die Authentifizierung schlecht ist. Die Leute bevorzugen es, einen HTTPS-Server zum Aufrufen einer Remote-Komponente zu wählen, da dieser einfacher und kontrollierbarer ist.

6
osexp2003