135, 593 - Pentesting MSRPC

Support HackTricks

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!

Información Básica

El protocolo Microsoft Remote Procedure Call (MSRPC), un modelo cliente-servidor que permite a un programa solicitar un servicio de un programa ubicado en otra computadora sin entender los detalles de la red, se derivó inicialmente de software de código abierto y luego fue desarrollado y protegido por Microsoft.

El mapeador de puntos finales RPC se puede acceder a través del puerto TCP y UDP 135, SMB en TCP 139 y 445 (con una sesión nula o autenticada), y como un servicio web en el puerto TCP 593.

135/tcp   open     msrpc         Microsoft Windows RPC

¿Cómo funciona MSRPC?

Iniciado por la aplicación cliente, el proceso MSRPC implica llamar a un procedimiento stub local que luego interactúa con la biblioteca de tiempo de ejecución del cliente para preparar y transmitir la solicitud al servidor. Esto incluye convertir parámetros en un formato estándar de Representación de Datos de Red. La elección del protocolo de transporte es determinada por la biblioteca de tiempo de ejecución si el servidor es remoto, asegurando que el RPC se entregue a través de la pila de red.

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

Identificación de Servicios RPC Expuestos

La exposición de servicios RPC a través de TCP, UDP, HTTP y SMB se puede determinar consultando el servicio de localización RPC y puntos finales individuales. Herramientas como rpcdump facilitan la identificación de servicios RPC únicos, denotados por valores IFID, revelando detalles del servicio y enlaces de comunicación:

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]

El acceso al servicio de localización RPC está habilitado a través de protocolos específicos: ncacn_ip_tcp y ncadg_ip_udp para acceder a través del puerto 135, ncacn_np para conexiones SMB, y ncacn_http para comunicación RPC basada en web. Los siguientes comandos ejemplifican la utilización de módulos de Metasploit para auditar e interactuar con los servicios MSRPC, centrándose principalmente en el puerto 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

All options except tcp_dcerpc_auditor are specifically designed for targeting MSRPC on port 135.

Interfaz RPC notable

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

  • Named Pipe: \pipe\lsarpc

  • Descripción: Interfaz LSA, utilizada para enumerar usuarios.

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

  • Named Pipe: \pipe\lsarpc

  • Descripción: Interfaz de Servicios de Directorio LSA (DS), utilizada para enumerar dominios y relaciones de confianza.

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

  • Named Pipe: \pipe\samr

  • Descripción: Interfaz LSA SAMR, utilizada para acceder a elementos públicos de la base de datos SAM (por ejemplo, nombres de usuario) y realizar ataques de fuerza bruta a contraseñas de usuario sin importar la política de bloqueo de cuentas.

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

  • Named Pipe: \pipe\atsvc

  • Descripción: Programador de tareas, utilizado para ejecutar comandos de forma remota.

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

  • Named Pipe: \pipe\winreg

  • Descripción: Servicio de registro remoto, utilizado para acceder y modificar el registro del sistema.

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

  • Named Pipe: \pipe\svcctl

  • Descripción: Administrador de control de servicios y servicios de servidor, utilizado para iniciar y detener servicios de forma remota y ejecutar comandos.

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

  • Named Pipe: \pipe\srvsvc

  • Descripción: Administrador de control de servicios y servicios de servidor, utilizado para iniciar y detener servicios de forma remota y ejecutar comandos.

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

  • Named Pipe: \pipe\epmapper

  • Descripción: Interfaz DCOM, utilizada para ataques de fuerza bruta a contraseñas y recopilación de información a través de WM.

Identificación de direcciones IP

Usando https://github.com/mubix/IOXIDResolver, que proviene de Airbus research, es posible abusar del método ServerAlive2 dentro de la interfaz IOXIDResolver.

Este método se ha utilizado para obtener información de la interfaz como la dirección IPv6 de la caja HTB APT. Consulta aquí para el informe de 0xdf APT, que incluye un método alternativo utilizando rpcmap.py de Impacket con stringbinding (ver arriba).

Ejecutando un RCE con credenciales válidas

Es posible ejecutar código remoto en una máquina, si las credenciales de un usuario válido están disponibles utilizando dcomexec.py del marco impacket.

Recuerda probar con los diferentes objetos disponibles

  • ShellWindows

  • ShellBrowserWindow

  • MMC20

Puerto 593

El rpcdump.exe de rpctools puede interactuar con este puerto.

Referencias

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!

Support HackTricks

Last updated