Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
RpcInvestigator — Windows-RPC-Schnittstellenerkennungs- und Analysetool mit visueller Endpunktaufzählung, PE-Analyse, Symbolauflösung, Echtzeit-ETW-Sniffing und dynamischer Client-Code-Generierung für Sicherheitsaudits. | Kitploit
Tools/GitHubGitHub/trailofbits/rpcinvestigator
SchwachstellenanalyseReverse EngineeringPenetrationstestsBinäranalyse
GitHubtrailofbits/rpcinvestigator

RpcInvestigator

Windows-RPC-Schnittstellenerkennungs- und Analysetool mit visueller Endpunktaufzählung, PE-Analyse, Symbolauflösung, Echtzeit-ETW-Sniffing und dynamischer Client-Code-Generierung für Sicherheitsaudits.

Repository anzeigen
3653410vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

RPC Investigator

Bitte lesen Sie unsere Ankündigung des Blogbeitrags.

RPC Investigator (RPCI) ist eine .NET/C# Windows Forms UI-Anwendung, die eine erweiterte Erkennungs- und Analyseschnittstelle für Windows RPC-Endpunkte bereitstellt. Das Tool bietet eine visuelle Schnittstelle um die vorhandenen Kern-RPC-Fähigkeiten der NtApiDotNet-Plattform, einschließlich:

  • Auflistung aller aktiven ALPC RPC-Server
  • Parsen von RPC-Servern aus jeder PE-Datei
  • Parsen von RPC-Servern aus Prozessen und deren geladenen Modulen, einschließlich Diensten
  • Abrufen von Symbolinformationen von einem Symbolserver
  • Exportieren von RPC-Serverdefinitionen als serialisierte .NET-Objekte für eigene Skripte

Über diese Kernfunktionen hinaus bietet RPCI zusätzliche Funktionen:

  • Der Client-Workbench ermöglicht es Ihnen, ein RPC-Client-Binary spontan zu erstellen und auszuführen, indem Sie mit der rechten Maustaste auf einen interessierenden RPC-Server klicken. Die Workbench verfügt über einen C#-Code-Editor-Bereich, der es Ihnen ermöglicht, den Client in Echtzeit zu bearbeiten und die Ergebnisse von in Ihrem Code ausgeführten RPC-Prozeduren zu beobachten.
  • Erkannte RPC-Server werden in einer durchsuchbaren Bibliothek organisiert, sodass Sie RPC-Serverdaten auf nützliche Weise umschwenken können, z. B. durch die Suche nach interessanten Routinen in allen RPC-Prozeduren aller Server über eine anpassbare Suchoberfläche.
  • Das RPC-Sniffer-Tool fügt Transparenz in RPC-bezogene ETW-Daten hinzu, um eine nahezu Echtzeit-Ansicht aktiver RPC-Aufrufe zu bieten. Durch die Kombination von ETW-Daten mit RPC-Serverdaten von NtApiDotNet können wir ein vollständigeres Bild der laufenden RPC-Aktivität erstellen.

Häufige Arbeitsabläufe

Es gibt mehrere Arbeitsabläufe, die der RPC Investigator unterstützt:

  • Überwachung
    • Auflistung aller aktiven ALPC RPC-Server über alle Prozesse hinweg, die mit einem ALPC-Endpunkt kommunizieren
    • Auflistung aller in einem Windows-Dienst ausgeführten RPC-Server
    • Laden von offline RPC-Servern, die in einer PE-Datei (z. B. einer EXE oder DLL) definiert sind
  • Interaktiv
    • Client-Workbench: Automatische Generierung von RPC-Clientcode, der angepasst und zum Aufrufen eines beliebigen RPC-Dienstes verwendet werden kann.
    • RPC-Sniffer: Echtzeitüberwachung von RPC-bezogenen ETW-Daten (Event Tracing for Windows).

Beispiel-Workflow: Analyse des Taskplaner-RPC

In diesem Beispiel werden wir den Windows-Taskplaner-RPC-Dienst untersuchen, der zum Verwalten und Ausführen geplanter Aufgaben verwendet wird. Wir werden den Dienst finden, Clientcode generieren und dann den Client anpassen, um mit einer der bereitgestellten Prozeduren zu interagieren.

Laden Sie zunächst die Windows-Dienstliste, indem Sie auf Datei -> Aus Dienst laden klicken. Dadurch wird ein neues Dienstlistenfenster geöffnet:

Suchen Sie den Dienst Schedule (Windows-Taskplaner), wählen Sie den Dienst aus und klicken Sie auf Weiter.

Sie werden aufgefordert, bevor RPCI alle zugehörigen RPC-DLLs lädt. Klicken Sie auf Ja, um fortzufahren. Sobald geladen, sehen Sie eine Liste aller RPC-Server, die über alle im Dienstprozess geladenen Module gefunden wurden. Der Windows-Taskplaner-RPC-Server hat eine Schnittstellen-ID 86D35949-83C9-4044-B424-DB363231FD0C. Suchen Sie die Zeile in der Liste mit dieser Schnittstellen-ID, die einen ausgeführten Dienst namens Task Scheduler haben sollte, klicken Sie mit der rechten Maustaste auf die Zeile und wählen Sie Neuer Client.

Der linke Teil des Clientfensters zeigt RPC-Servermetadaten und Befehlszeilenausgabe des Clientcodes. Die rechte Seite zeigt zwei Registerkarten:

  • Clientcode – Automatisch generierter C#-Clientcode, der angepasst werden kann, um mit einer oder mehreren Prozeduren zu interagieren.
  • Prozeduren – Liste der bereitgestellten RPC-Prozeduren.

In diesem Beispiel rufen wir die Prozedur SchRpcHighestVersion auf. Diese Methode akzeptiert ein einzelnes Argument, out int version, das nach dem Aufruf der Prozedur die höchste vom RPC-Interface unterstützte Taskplaner-Protokollversion enthält. Die hohen 16 Bits sind die Hauptversion und die niedrigen 16 Bits die Nebenversion.

Um diese Prozedur aufzurufen:

  1. Suchen Sie im Fenster Clientcode die Methode Run, die der Haupteinstiegspunkt für den RPC-Client ist.

  2. Bearbeiten Sie den Rumpf der Methode Run, um die Prozedur aufzurufen:

    public async Task<bool> Run()
    {
        int version;
        int status = SchRpcHighestVersion(out version);
        if (status == 0) {
            long major = (version & 0xffff0000) >> 16;
            long minor = version & 0x0000ffff;
            Console.WriteLine("highest supported RPC version: {0}.{1}", major, minor);
        } else {
            Console.WriteLine("call to SchRpcHighestVersion failed with error: {0:X}", status);
        }
        return true;
    }
    
  3. Nach dem Hinzufügen dieses Codes führen Sie den Client aus, indem Sie auf die Schaltfläche Run klicken. Dadurch wird der C#-Code kompiliert und dann die Methode Run ausgeführt.

    • Sie sehen ein Popup-Fenster mit etwaigen Kompilierungsfehlern, falls der Clientcode nicht kompiliert werden konnte.

Bei erfolgreicher Kompilierung sehen Sie im Ausgabe-Fenster etwas Ähnliches wie das Folgende:

> Run() output:
highest supported RPC version: 1.6

Konfiguration

Der RPC Investigator verfügt über mehrere Konfigurationseinstellungen.

EinstellungBeschreibungStandard
dbghelp.dllDateispeicherort des Moduls dbghelp.dllNeueste Version in installierten Windows Kits finden.
Symbol-PfadPfad zu Windows-Symbolen, der ein Symbolserver oder ein lokales Verzeichnis sein kannStandardmäßiger öffentlicher Windows-Server: srv*c:\symbols*https://msdl.microsoft.com/download/symbols
AblaufverfolgungsstufeDie Protokollierungs-Ablaufverfolgungsstufeinfo

Die Konfigurationseinstellungen können innerhalb der Anwendung über das Menü Bearbeiten -> Einstellungen geändert werden.

Fehlerbehebung

Nach seiner ersten Veröffentlichung wurde RPC Investigator von einer .NET Framework-Anwendung in eine .NET 7-Anwendung umgewandelt. Wenn Sie auf Build-Probleme stoßen, stellen Sie sicher, dass Visual Studio auf dem neuesten Stand ist. Es ist eine gute Idee, alle Build-Ausgabeordner vor dem Build aus der .NET Framework-Version zu löschen.

Aufgrund des Wechsels von der unsicheren BinaryFormatter-Klasse zu protobuf-net sind mit der .NET Framework-Version generierte RPC-Bibliotheken nicht mit der .NET-Version kompatibel.

Wenn Sie in RPC Investigator zufällige Abstürze erleben, finden Sie möglicherweise eine Lösung, indem Sie Ihren Administrator bitten, Ihr EDR anzupassen. Wir haben festgestellt, dass einige EDRs nicht vernünftig mit JIT-kompilierten Sprachen umgehen.

Tool herunterladen