135, 593 - Pentesting MSRPC

Reading time: 5 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

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 et développé et protégé par Microsoft.

Le mappage des points de terminaison RPC peut ĂȘtre accessible via le port 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 stub locale 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 en un format standard de représentation de 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, garantissant que le RPC est livré à 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 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 :

bash
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 de la base de donnĂ©es SAM publique (par exemple, les noms d'utilisateur) et pour forcer les mots de passe des utilisateurs, indĂ©pendamment de la politique de verrouillage de compte.
  • 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 Ă  distance, 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Ă©s 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Ă©s 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 le craquage de mots de passe par force brute et la collecte d'informations via WM.

Identification des adresses IP

En utilisant https://github.com/mubix/IOXIDResolver, provenant de Airbus research, 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 sur l'interface sous forme d'adresse IPv6 de la boßte HTB APT. Voir ici pour le rapport 0xdf APT, il inclut une méthode alternative utilisant rpcmap.py de Impacket avec stringbinding (voir ci-dessus).

Exécution d'un 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

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks