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

8.9 KiB

135, 593 - Pentesting MSRPC

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)!

Autres façons de soutenir HackTricks:

Rejoignez le serveur HackenProof Discord pour communiquer avec des pirates expérimentés et des chasseurs de primes en bugs !

Perspectives de piratage
Engagez-vous avec du contenu qui explore le frisson et les défis du piratage

Actualités de piratage en temps réel
Restez à jour avec le monde du piratage en évolution rapide grâce aux actualités et aux informations en temps réel

Dernières annonces
Restez informé des dernières primes de bugs lancées et des mises à jour cruciales de la plateforme

Rejoignez-nous sur Discord et commencez à collaborer avec les meilleurs pirates dès aujourd'hui !

Informations de base

Le protocole Microsoft Remote Procedure Call (MSRPC), un modèle client-serveur permettant à un programme de demander un service à un programme situé sur un autre ordinateur sans comprendre les spécificités du réseau, a été initialement dérivé d'un logiciel open source, puis développé et protégé par des droits d'auteur par Microsoft.

Le gestionnaire de points de terminaison RPC peut être accédé via les ports TCP et UDP 135, SMB sur TCP 139 et 445 (avec une session nulle ou authentifiée), et en tant que service web sur le port TCP 593.

135/tcp   open     msrpc         Microsoft Windows RPC

Comment fonctionne MSRPC?

Initié par l'application cliente, le processus MSRPC implique l'appel d'une procédure locale de stub qui interagit ensuite avec la bibliothèque d'exécution cliente pour préparer et transmettre la demande au serveur. Cela inclut la conversion des paramètres dans un format standard de représentation des données réseau. Le choix du protocole de transport est déterminé par la bibliothèque d'exécution si le serveur est distant, assurant que la RPC est délivrée à travers la pile réseau.

https://0xffsec.com/handbook/images/msrpc.png

Identification des services RPC exposés

L'exposition des services RPC à travers TCP, UDP, HTTP et SMB peut être déterminée en interrogeant le service de localisation RPC et les points de terminaison individuels. Des outils tels que rpcdump facilitent l'identification des services RPC uniques, désignés par des valeurs IFID, révélant les détails du service et les liaisons de communication:

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]

L'accès au service de localisation RPC est activé via des protocoles spécifiques : ncacn_ip_tcp et ncadg_ip_udp pour y accéder via le port 135, ncacn_np pour les connexions SMB, et ncacn_http pour la communication RPC basée sur le web. Les commandes suivantes illustrent l'utilisation des modules Metasploit pour auditer et interagir avec les services MSRPC, en se concentrant principalement sur le port 135 :

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

Toutes les options sauf tcp_dcerpc_auditor sont spécifiquement conçues pour cibler MSRPC sur le port 135.

Interfaces RPC notables

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

  • Named Pipe: \pipe\lsarpc

  • Description: Interface LSA, utilisée pour énumérer les utilisateurs.

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

  • Named Pipe: \pipe\lsarpc

  • Description: Interface LSA Directory Services (DS), utilisée pour énumérer les domaines et les relations de confiance.

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

  • Named Pipe: \pipe\samr

  • Description: Interface LSA SAMR, utilisée pour accéder aux éléments publics de la base de données SAM (par ex., noms d'utilisateur) et forcer les mots de passe des utilisateurs indépendamment de la politique de verrouillage des comptes.

  • IFID: 1ff70682-0a51-30e8-076d-740be8cee98b

  • Named Pipe: \pipe\atsvc

  • Description: Planificateur de tâches, utilisé pour exécuter des commandes à distance.

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

  • Named Pipe: \pipe\winreg

  • Description: Service de registre distant, utilisé pour accéder et modifier le registre système.

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

  • Named Pipe: \pipe\svcctl

  • Description: Gestionnaire de contrôle de service et services serveur, utilisé pour démarrer et arrêter des services à distance et exécuter des commandes.

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

  • Named Pipe: \pipe\srvsvc

  • Description: Gestionnaire de contrôle de service et services serveur, utilisé pour démarrer et arrêter des services à distance et exécuter des commandes.

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

  • Named Pipe: \pipe\epmapper

  • Description: Interface DCOM, utilisée pour forcer le hachage de mots de passe et recueillir des informations via WM.

Identification des adresses IP

En utilisant https://github.com/mubix/IOXIDResolver, provenant de la recherche d'Airbus, il est possible d'abuser de la méthode ServerAlive2 à l'intérieur de l'interface IOXIDResolver.

Cette méthode a été utilisée pour obtenir des informations d'interface en tant qu'adresse IPv6 de la boîte HTB APT. Voir ici pour l'analyse APT de 0xdf, elle inclut une méthode alternative utilisant rpcmap.py d'Impacket avec stringbinding (voir ci-dessus).

Exécution d'une RCE avec des identifiants valides

Il est possible d'exécuter du code à distance sur une machine si les identifiants d'un utilisateur valide sont disponibles en utilisant dcomexec.py du framework Impacket.

N'oubliez pas d'essayer avec les différents objets disponibles

  • ShellWindows
  • ShellBrowserWindow
  • MMC20

Port 593

Le rpcdump.exe de rpctools peut interagir avec ce port.

Références

Rejoignez le serveur HackenProof Discord pour communiquer avec des hackers expérimentés et des chasseurs de primes en sécurité !

Perspectives sur le piratage
Engagez-vous avec du contenu qui explore l'excitation et les défis du piratage

Actualités sur le piratage en temps réel
Restez informé du monde du piratage à travers des actualités et des informations en temps réel

Dernières annonces
Restez informé des dernières primes de bugs lancées et des mises à jour cruciales de la plateforme

Rejoignez-nous sur Discord et commencez à collaborer avec les meilleurs hackers dès aujourd'hui !