Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
RpcInvestigator — Outil de découverte et d'analyse des interfaces RPC Windows avec énumération visuelle des points de terminaison, analyse PE, résolution de symboles, reniflage ETW en temps réel et génération de code client à la volée pour l'audit de sécurité. | Kitploit
Outils/GitHubGitHub/trailofbits/rpcinvestigator
Analyse des VulnérabilitésRétro-ingénierieTests d'IntrusionAnalyse de Binaires
GitHubtrailofbits/rpcinvestigator

RpcInvestigator

Outil de découverte et d'analyse des interfaces RPC Windows avec énumération visuelle des points de terminaison, analyse PE, résolution de symboles, reniflage ETW en temps réel et génération de code client à la volée pour l'audit de sécurité.

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
36534il y a 2 ansVérifié par Kitploit

RPC Investigator

Veuillez lire notre annonce de billet de blog.

RPC Investigator (RPCI) est une application d'interface utilisateur Windows Forms en .NET/C# qui fournit une interface avancée de découverte et d'analyse des points de terminaison RPC Windows. L'outil offre une interface visuelle autour des capacités RPC de base de la plateforme NtApiDotNet, y compris :

  • Énumérer tous les serveurs RPC ALPC actifs
  • Analyser les serveurs RPC à partir de tout fichier PE
  • Analyser les serveurs RPC à partir des processus et de leurs modules chargés, y compris les services
  • Extraire les informations de symbole d'un serveur de symboles
  • Exporter les définitions de serveur RPC en tant qu'objets .NET sérialisés pour vos propres scripts

Au-delà de ces fonctionnalités de base, RPCI offre des capacités supplémentaires :

  • Le Client Workbench vous permet de créer et d'exécuter un binaire client RPC à la volée en cliquant avec le bouton droit sur un serveur RPC d'intérêt. Le workbench dispose d'un panneau d'éditeur de code C# qui vous permet d'éditer le client en temps réel et d'observer les résultats des procédures RPC exécutées dans votre code.
  • Les serveurs RPC découverts sont organisés dans une bibliothèque consultable, vous permettant d'exploiter les données des serveurs RPC de manière utile, comme la recherche de toutes les procédures RPC de tous les serveurs pour des routines intéressantes via une interface de recherche personnalisable.
  • L'outil RPC Sniffer ajoute une visibilité sur les données ETW liées à RPC pour fournir une vue quasi temps réel des appels RPC actifs. En combinant les données ETW avec les données des serveurs RPC de NtApiDotNet, nous pouvons construire une image plus complète de l'activité RPC en cours.

Flux de travail courants

Plusieurs flux de travail sont pris en charge par RPC Investigator :

  • Audit
    • Énumérer tous les serveurs RPC ALPC actifs dans tous les processus qui communiquent avec un point de terminaison ALPC
    • Énumérer tous les serveurs RPC en cours d'exécution dans un service Windows
    • Charger des serveurs RPC hors ligne définis dans un fichier PE (tel qu'un EXE ou DLL)
  • Interactif
    • Client Workbench : Générer automatiquement un code client RPC qui peut être personnalisé et utilisé pour appeler n'importe quel service RPC.
    • RPC Sniffer : Surveillance en temps réel des données ETW (Event Tracing for Windows) liées à RPC.

Exemple de flux de travail : Analyse du RPC du Planificateur de tâches

Dans cet exemple, nous allons inspecter le service RPC du Planificateur de tâches Windows, qui est utilisé pour gérer et exécuter des tâches planifiées. Nous allons trouver le service, générer le code client, puis personnaliser le client pour interagir avec l'une des procédures exposées.

Tout d'abord, chargez la liste des services Windows en cliquant sur Fichier -> Charger depuis un service. Cela ouvre une nouvelle fenêtre de liste de services :

Trouvez le service Schedule, qui est le Planificateur de tâches Windows, sélectionnez le service et cliquez sur Go.

Il vous sera demandé avant que RPCI charge toutes les DLL RPC associées. Cliquez sur Oui pour continuer. Une fois chargé, vous verrez une liste de tous les serveurs RPC découverts dans tous les modules chargés dans le processus du service. Le serveur RPC du Planificateur de tâches Windows a un ID d'interface de 86D35949-83C9-4044-B424-DB363231FD0C. Trouvez la ligne dans la liste qui a cet ID d'interface, qui devrait avoir un service en cours nommé Planificateur de tâches, faites un clic droit sur la ligne et sélectionnez Nouveau client.

La partie gauche de la fenêtre du client montre les métadonnées du serveur RPC et la sortie de la ligne de commande du code client. Le côté droit montre deux onglets :

  • Code client - Code client C# généré automatiquement qui peut être personnalisé pour interagir avec une ou plusieurs procédures.
  • Procédures - Liste des procédures RPC exposées.

Dans cet exemple, nous allons appeler la procédure SchRpcHighestVersion. Cette méthode accepte un seul argument, out int version, qui, après avoir appelé la procédure, contiendra la version de protocole la plus élevée du Planificateur de tâches prise en charge par l'interface RPC. Les 16 bits de poids fort sont la version majeure et les 16 bits de poids faible sont la version mineure.

Pour appeler cette procédure :

  1. Dans la fenêtre Code client, trouvez la méthode Run, qui est le point d'entrée principal du client RPC.

  2. Modifiez le corps de la méthode Run pour appeler la procédure :

    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. Après avoir ajouté ce code, exécutez le client en cliquant sur le bouton Run. Cela compilera le code C# puis exécutera la méthode Run.

    • Vous verrez une fenêtre contextuelle avec les erreurs de compilation si le code client n'a pas pu être compilé.

Si la compilation réussit, vous verrez quelque chose de similaire dans la boîte Sortie :

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

Configuration

RPC Investigator dispose de plusieurs paramètres de configuration.

Les paramètres de configuration peuvent être modifiés dans l'application via le menu Édition -> Paramètres.

Dépannage

Après sa sortie initiale, RPC Investigator a été converti d'une application .NET Framework à une application .NET 7. Si vous rencontrez des problèmes de build, assurez-vous que Visual Studio est à jour. Il est recommandé de vider tous les dossiers de sortie de build avant de compiler à partir de la version .NET Framework.

De plus, en raison du passage de la classe BinaryFormatter (non sécurisée) à protobuf-net, les bibliothèques RPC générées avec la version .NET Framework sont incompatibles avec la version .NET.

Si vous rencontrez des plantages aléatoires dans RPC Investigator, vous pourriez trouver une solution en demandant à votre administrateur d'ajuster votre EDR. Nous avons constaté que certains EDR ne se comportent pas raisonnablement avec les langages JIT.

Dans certains cas, RPC Investigator est détecté comme malveillant par les EDR, y compris certains faux positifs sur Virus Total. C'est un problème connu. Cela est dû au fait que RPC Investigator contient NtObjectManager - un package créé par James Forshaw qui est connu pour être détecté (faux positif) par de nombreux EDR, y compris Windows Defender.

Environnement de développement

  1. Installez Visual Studio Community 2022, assurez-vous de sélectionner le workflow Développement .NET Desktop.
  2. Téléchargez et installez le dernier SDK Windows 10. Effectuez une installation complète pour que .NET 4.8.1 et les outils de débogage soient installés.
  3. Ouvrez la solution et vérifiez que les projets se sont chargés correctement. S'il y a une erreur concernant le pack de ciblage .NET 4.8.1 manquant, téléchargez et installez .NET Framework 4.8.1 Developer Pack puis redémarrez Visual Studio.

Lectures complémentaires

Parce que le RPC Windows est un sujet de recherche populaire depuis bien plus d'une décennie, il y a trop de ressources et d'efforts de recherche connexes pour les nommer ici. Nous en avons listé quelques-uns ci-dessous que nous avons rencontrés lors de la construction de cet outil :

  • 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

Si vous n'êtes pas familier avec les internes de RPC ou avez besoin d'une remise à niveau technique, nous recommandons l'une des sources faisant autorité sur le sujet - la conférence SyScan 2014 d'Alex Ionescu à Singapour, Tout sur le RPC, LRPC, ALPC et LPC dans votre PC.

Télécharger l’outil
ParamètreDescriptionPar défaut
dbghelp.dllEmplacement du fichier du module dbghelp.dllTrouver la dernière version dans les Kits Windows installés.
Chemin des symbolesChemin vers les symboles Windows, qui peut être un serveur de symboles ou un répertoire localServeur Windows public par défaut : srv*c:\symbols*https://msdl.microsoft.com/download/symbols
Niveau de traceLe niveau de trace de journalisationinfo