Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
36534vor 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:

    root@kitploit:~
    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:

root@kitploit:~
> Run() output:
highest supported RPC version: 1.6

Konfiguration

Der RPC Investigator verfügt über mehrere Konfigurationseinstellungen.

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.

In einigen Fällen wird RPC Investigator von EDRs als bösartig erkannt, einschließlich einiger Fehlalarme auf Virus Total. Dies ist ein bekanntes Problem. Das liegt daran, dass RPC Investigator NtObjectManager enthält – ein von James Forshaw erstelltes Paket, das von vielen EDRs, einschließlich Windows Defender, fälschlicherweise erkannt wird.

Entwicklungsumgebung

  1. Installieren Sie Visual Studio Community 2022 und stellen Sie sicher, dass Sie den Workflow .NET-Desktopentwicklung auswählen.
  2. Laden Sie das neueste Windows 10 SDK herunter und installieren Sie es. Führen Sie eine vollständige Installation durch, damit .NET 4.8.1 und Debugging-Tools installiert werden.
  3. Öffnen Sie die Projektmappe und überprüfen Sie, ob die Projekte korrekt geladen wurden. Wenn ein Fehler wegen fehlendem .NET 4.8.1 Targeting Pack auftritt, laden Sie das .NET Framework 4.8.1 Developer Pack herunter und installieren Sie es, und starten Sie dann Visual Studio neu.

Weiterführende Literatur

Da Windows RPC seit weit über einem Jahrzehnt ein beliebtes Forschungsthema ist, gibt es zu viele verwandte Ressourcen und Forschungsarbeiten, um sie hier zu nennen. Wir haben im Folgenden einige aufgeführt, die uns beim Bau dieses Tools begegnet sind:

  • https://clearbluejar.github.io/posts/surveying-windows-rpc-discovery-tools/
  • https://www.powerofcommunity.net/poc2019/James.pdf
  • https://www.tiraniddo.dev/2022/06/finding-running-rpc-server-information.html
  • https://clearbluejar.github.io/posts/from-ntobjectmanager-to-petitpotam/
  • https://itm4n.github.io/from-rpcview-to-petitpotam/
  • https://learn.microsoft.com/en-us/windows/win32/rpc/rpc-security-essentials
  • https://www.cyberark.com/resources/threat-research-blog/understanding-windows-containers-communication
  • https://github.com/silverf0x/RpcView
  • https://github.com/xpn/RpcEnum
  • https://github.com/cyberark/RPCMon
  • https://github.com/tyranid/WindowsRpcClients

Wenn Sie mit RPC-Interna nicht vertraut sind oder eine technische Auffrischung benötigen, empfehlen wir eine der maßgeblichen Quellen zu diesem Thema – Alex Ionescus SyScan-Vortrag 2014 in Singapur, Alles über RPC, LRPC, ALPC und LPC in Ihrem PC.

Tool herunterladen
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