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

146 lines
8.9 KiB
Markdown
Raw Normal View History

2023-06-05 18:33:24 +00:00
# 135, 593 - Pentesting MSRPC
<details>
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2023-06-05 18:33:24 +00:00
Otras formas de apoyar a HackTricks:
2023-06-05 18:33:24 +00:00
* Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Obtén la [**oficial mercancía de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparte tus trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
2023-06-05 18:33:24 +00:00
</details>
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
2023-06-05 18:33:24 +00:00
Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers experimentados y cazadores de recompensas por errores!
2023-06-05 18:33:24 +00:00
**Perspectivas de Hacking**\
Involúcrate con contenido que profundiza en la emoción y desafíos del hacking
2023-06-05 18:33:24 +00:00
**Noticias de Hacking en Tiempo Real**\
Mantente actualizado con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real
2023-06-05 18:33:24 +00:00
**Últimos Anuncios**\
Mantente informado sobre los nuevos programas de recompensas por errores que se lanzan y las actualizaciones cruciales de la plataforma
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy!
2023-06-05 18:33:24 +00:00
## Información Básica
2023-06-05 18:33:24 +00:00
El protocolo de Llamada a Procedimiento Remoto de Microsoft (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 posteriormente fue desarrollado y protegido por derechos de autor por Microsoft.
2023-06-05 18:33:24 +00:00
El mapeador de puntos finales de RPC se puede acceder a través de los puertos 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.
2023-06-05 18:33:24 +00:00
```
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 de 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.
2023-06-05 18:33:24 +00:00
![https://0xffsec.com/handbook/images/msrpc.png](https://0xffsec.com/handbook/images/msrpc.png)
2023-06-05 18:33:24 +00:00
## **Identificación de Servicios RPC Expuestos**
La exposición de servicios RPC a través de TCP, UDP, HTTP y SMB puede determinarse consultando el servicio localizador de RPC y los puntos finales individuales. Herramientas como rpcdump facilitan la identificación de servicios RPC únicos, denotados por los valores de **IFID**, revelando detalles del servicio y enlaces de comunicación:
2023-06-05 18:33:24 +00:00
```
D:\rpctools> rpcdump [-p port] <IP>
**IFID**: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
2023-06-05 18:33:24 +00:00
Annotation: Messenger Service
UUID: 00000000-0000-0000-0000-000000000000
Binding: ncadg_ip_udp:<IP>[1028]
2023-06-05 18:33:24 +00:00
```
El acceso al servicio de localización de 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 servicios MSRPC, centrándose principalmente en el puerto 135:
2023-06-05 18:33:24 +00:00
```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
```
Todas las opciones excepto `tcp_dcerpc_auditor` están específicamente diseñadas para apuntar a MSRPC en el puerto 135.
2023-06-05 18:33:24 +00:00
#### Interfaces RPC destacadas
2023-06-05 18:33:24 +00:00
* **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 (DS) de LSA, utilizada para enumerar dominios y relaciones de confianza.
* **IFID**: 12345778-1234-abcd-ef00-0123456789ac
* **Named Pipe**: `\pipe\samr`
* **Descripción**: 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 independientemente de 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.
2023-06-05 18:33:24 +00:00
* **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.
2023-06-05 18:33:24 +00:00
* **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.
2023-06-05 18:33:24 +00:00
* **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 forzar contraseñas y recopilar información a través de WM.
### Identificación de direcciones IP
Utilizando [https://github.com/mubix/IOXIDResolver](https://github.com/mubix/IOXIDResolver), proveniente de la investigación de [Airbus](https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/), es posible abusar del método _**ServerAlive2**_ dentro de la interfaz _**IOXIDResolver**_.
Este método ha sido utilizado para obtener información de interfaz como la dirección **IPv6** de la máquina HTB _APT_. Ver [aquí](https://0xdf.gitlab.io/2021/04/10/htb-apt.html) el análisis de 0xdf sobre APT, incluye un método alternativo utilizando rpcmap.py de [Impacket](https://github.com/SecureAuthCorp/impacket/) con _stringbinding_ (ver arriba).
### Ejecutando un RCE con credenciales válidas
Es posible ejecutar código remoto en una máquina si se dispone de las credenciales de un usuario válido utilizando [dcomexec.py](https://github.com/fortra/impacket/blob/master/examples/dcomexec.py) del framework Impacket.
**Recuerda probar con los diferentes objetos disponibles**
* ShellWindows
* ShellBrowserWindow
* MMC20
2023-06-05 18:33:24 +00:00
## Puerto 593
El **rpcdump.exe** de [rpctools](https://resources.oreilly.com/examples/9780596510305/tree/master/tools/rpctools) puede interactuar con este puerto.
## Referencias
* [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-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://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/)
* [https://0xffsec.com/handbook/services/msrpc/](https://0xffsec.com/handbook/services/msrpc/)
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
2023-06-05 18:33:24 +00:00
Únete al servidor de [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para comunicarte con hackers y cazadores de bugs experimentados!
2023-06-05 18:33:24 +00:00
**Perspectivas de Hacking**\
Involúcrate con contenido que explora la emoción y los desafíos del hacking
2023-06-05 18:33:24 +00:00
**Noticias de Hacking en Tiempo Real**\
Mantente al día con el mundo del hacking a través de noticias e información en tiempo real
2023-06-05 18:33:24 +00:00
**Últimos Anuncios**\
Mantente informado sobre los nuevos programas de recompensas por bugs y actualizaciones importantes de plataformas
**Únete a nosotros en** [**Discord**](https://discord.com/invite/N3FrSbmwdy) y comienza a colaborar con los mejores hackers hoy!