9.9 KiB
135, 593 - Pentesting MSRPC
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
![](/Mirrors/hacktricks/media/commit/42803d811d6dc743d746b682e09b2fbe4494b7e4/.gitbook/assets/image%20%28380%29.png)
Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!
Hacking Insights
Engage with content that delves into the thrill and challenges of hacking
Real-Time Hack News
Keep up-to-date with fast-paced hacking world through real-time news and insights
Latest Announcements
Stay informed with the newest bug bounties launching and crucial platform updates
Join us on Discord and start collaborating with top hackers today!
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é de logiciels 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 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, garantissant que le RPC est livré à travers la pile réseau.
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 des détails sur le 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 :
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
Tous 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 de 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 de 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
- https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/
- https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/
- https://0xffsec.com/handbook/services/msrpc/
![](/Mirrors/hacktricks/media/commit/42803d811d6dc743d746b682e09b2fbe4494b7e4/.gitbook/assets/image%20%28380%29.png)
Rejoignez le serveur HackenProof Discord pour communiquer avec des hackers expérimentés et des chasseurs de bugs !
Aperçus de Hacking
Engagez-vous avec du contenu qui explore le frisson et les défis du hacking
Actualités de Hacking en Temps Réel
Restez à jour avec le monde du hacking en rapide évolution grâce à des nouvelles et des aperçus en temps réel
Dernières Annonces
Restez informé des nouveaux programmes de bug bounty lancés et des mises à jour cruciales de la plateforme
Rejoignez-nous sur Discord et commencez à collaborer avec les meilleurs hackers aujourd'hui !
{% hint style="success" %}
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
- Consultez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs aux dépôts github de HackTricks et HackTricks Cloud.