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

13 KiB
Raw Blame History

135, 593 - Pentesting MSRPC

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

HackenProof es el hogar de todas las recompensas por errores de criptografía.

Obtén recompensas sin demoras
Las recompensas de HackenProof se lanzan solo cuando sus clientes depositan el presupuesto de recompensa. Obtendrás la recompensa después de que se verifique el error.

Obtén experiencia en pentesting web3
¡Los protocolos blockchain y los contratos inteligentes son el nuevo Internet! Domina la seguridad web3 en sus días de crecimiento.

Conviértete en la leyenda del hacker web3
Gana puntos de reputación con cada error verificado y conquista la cima de la clasificación semanal.

Regístrate en HackenProof ¡comienza a ganar con tus hacks!

{% embed url="https://hackenproof.com/register" %}

Información básica

Microsoft Remote Procedure Call, también conocido como llamada de función o llamada de subrutina, es un protocolo que utiliza el modelo cliente-servidor para permitir que un programa solicite un servicio a un programa en otra computadora sin tener que entender los detalles de la red de esa computadora. MSRPC se derivó originalmente de software de código abierto, pero ha sido desarrollado y protegido por derechos de autor por Microsoft.

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

135/tcp   open     msrpc         Microsoft Windows RPC

¿Cómo funciona MSRPC?

El proceso de MSRPC comienza en el lado del cliente, con la aplicación del cliente llamando a un procedimiento de stub local en lugar de implementar el código del procedimiento. El código de stub del cliente recupera los parámetros requeridos del espacio de direcciones del cliente y los entrega a la biblioteca de tiempo de ejecución del cliente, que luego traduce los parámetros a un formato estándar de Representación de Datos de Red para transmitirlos al servidor.

El stub del cliente luego llama a funciones en la biblioteca de tiempo de ejecución del cliente RPC para enviar la solicitud y los parámetros al servidor. Si el servidor se encuentra de forma remota, la biblioteca de tiempo de ejecución especifica un protocolo de transporte y un motor adecuados y pasa el RPC a la pila de red para su transporte al servidor.
Desde aquí: https://www.extrahop.com/resources/protocols/msrpc/

Imagen del libro "Network Security Assesment 3rd Edition"

Identificación de servicios RPC expuestos

Sección extraída del libro "Network Security Assesment 3rd Edition"

Puede consultar el servicio de localizador de RPC y los puntos finales de RPC individuales para catalogar servicios interesantes que se ejecutan sobre TCP, UDP, HTTP y SMB (a través de named pipes). Cada valor IFID recopilado a través de este proceso denota un servicio RPC (por ejemplo, 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc es la interfaz de Messenger).

Las utilidades de Windows rpcdump e ifids de Todd Sabin consultan tanto el localizador de RPC como los puntos finales de RPC específicos para enumerar los valores IFID. La sintaxis de rpcdump es la siguiente:

D:\rpctools> rpcdump [-p port] 192.168.189.1
IfId: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
Annotation: Messenger Service
UUID: 00000000-0000-0000-0000-000000000000
Binding: ncadg_ip_udp:192.168.189.1[1028]

Puedes acceder al servicio de localización de RPC utilizando cuatro secuencias de protocolo:

  • ncacn_ip_tcp y ncadg_ip_udp (puerto TCP y UDP 135)
  • ncacn_np (la tubería con nombre \pipe\epmapper a través de SMB)
  • ncacn_http (RPC sobre HTTP a través de los puertos TCP 80, 593 y otros)
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

Nota que de las opciones mencionadas, todas excepto tcp_dcerpc_auditor solo se pueden ejecutar contra msrpc en el puerto 135.

Interfaces RPC destacadas

Valor IFID Named pipe Descripción
12345778-1234-abcd-ef00-0123456789ab \pipe\lsarpc Interfaz LSA, utilizada para enumerar usuarios
3919286a-b10c-11d0-9ba8-00c04fd92ef5 \pipe\lsarpc Interfaz de Servicios de Directorio (DS) de LSA, utilizada para enumerar dominios y relaciones de confianza
12345778-1234-abcd-ef00-0123456789ac \pipe\samr Interfaz SAMR de LSA, utilizada para acceder a elementos públicos de la base de datos SAM (por ejemplo, nombres de usuario) y forzar contraseñas de usuario sin importar la política de bloqueo de cuentas Biblioteca Oreilly
1ff70682-0a51-30e8-076d-740be8cee98b \pipe\atsvc Programador de tareas, utilizado para ejecutar comandos de forma remota
338cd001-2244-31f1-aaaa-900038001003 \pipe\winreg Servicio de registro remoto, utilizado para acceder al registro del sistema
367abb81-9844-35f1-ad32-98f038001003 \pipe\svcctl Administrador de control de servicios y servicios de servidor, utilizado para iniciar y detener servicios de forma remota y ejecutar comandos
4b324fc8-1670-01d3-1278-5a47bf6ee188 \pipe\srvsvc Administrador de control de servicios y servicios de servidor, utilizado para iniciar y detener servicios de forma remota y ejecutar comandos
4d9f4ab8-7d1c-11cf-861e-0020af6e7c57 \pipe\epmapper Interfaz DCOM, compatible con WMI

Identificación de direcciones IP

Utilizando https://github.com/mubix/IOXIDResolver, proveniente de la investigación de Airbus, 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 máquina HTB APT. Consulta aquí el informe de APT de 0xdf, que incluye un método alternativo utilizando rpcmap.py de Impacket con stringbinding (ver arriba).

Referencias:

Puerto 593

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

HackenProof es el hogar de todas las recompensas por errores de criptografía.

Obtén recompensas sin demoras
Las recompensas de HackenProof se lanzan solo cuando los clientes depositan el presupuesto de recompensa. Recibirás la recompensa después de que se verifique el error.

Obtén experiencia en pentesting web3
¡Los protocolos blockchain y los contratos inteligentes son el nuevo Internet! Domina la seguridad web3 en sus días de crecimiento.

Conviértete en una leyenda del hacker web3
Gana puntos de reputación con cada error verificado y conquista la cima de la clasificación semanal.

Regístrate en HackenProof ¡comienza a ganar con tus hacks!

{% embed url="https://hackenproof.com/register" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥