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

137 lines
13 KiB
Markdown
Raw Normal View History

2023-06-05 18:33:24 +00:00
# 135, 593 - Pentesting MSRPC
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2023-06-05 18:33:24 +00:00
</details>
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
**HackenProof es el hogar de todas las recompensas por errores de criptografía.**
2023-06-05 18:33:24 +00:00
**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.
2023-06-05 18:33:24 +00:00
**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.
2023-06-05 18:33:24 +00:00
**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.
2023-06-05 18:33:24 +00:00
[**Regístrate en HackenProof**](https://hackenproof.com/register) ¡comienza a ganar con tus hacks!
{% embed url="https://hackenproof.com/register" %}
2023-06-05 18:33:24 +00:00
## Información básica
Microsoft Remote Procedure Call, también conocido como llamada de función o llamada de subrutina, es [un protocolo](http://searchmicroservices.techtarget.com/definition/Remote-Procedure-Call-RPC) 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.
2023-06-05 18:33:24 +00:00
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.
2023-06-05 18:33:24 +00:00
```
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.
2023-06-05 18:33:24 +00:00
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/](https://www.extrahop.com/resources/protocols/msrpc/)
2023-06-05 18:33:24 +00:00
![](<../.gitbook/assets/image (133).png>)
**Imagen del libro "**_**Network Security Assesment 3rd Edition**_**"**
2023-06-05 18:33:24 +00:00
## **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).
2023-06-05 18:33:24 +00:00
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:
2023-06-05 18:33:24 +00:00
```
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:
2023-06-05 18:33:24 +00:00
* 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)
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
```
_Nota que de las opciones mencionadas, todas excepto **`tcp_dcerpc_auditor`** solo se pueden ejecutar contra **msrpc** en el puerto **135**._
2023-06-05 18:33:24 +00:00
#### Interfaces RPC destacadas
2023-06-05 18:33:24 +00:00
| **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](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#idm139659172852688) |
| 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 y ejecutar comandos de forma remota |
| 4b324fc8-1670-01d3-1278-5a47bf6ee188 | \pipe\srvsvc | Administrador de control de servicios y servicios de servidor, utilizado para iniciar y detener servicios y ejecutar comandos de forma remota |
| 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57 | \pipe\epmapper | Interfaz DCOM, compatible con WMI |
2023-06-05 18:33:24 +00:00
### 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**_.
2023-06-05 18:33:24 +00:00
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í](https://0xdf.gitlab.io/2021/04/10/htb-apt.html) el informe de APT de 0xdf, que incluye un método alternativo utilizando rpcmap.py de [Impacket](https://github.com/SecureAuthCorp/impacket/) con _stringbinding_ (ver arriba).
2023-06-05 18:33:24 +00:00
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/)
## Puerto 593
El **rpcdump.exe** de [rpctools](https://resources.oreilly.com/examples/9780596510305/tree/master/tools/rpctools) puede interactuar con este puerto.
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
**HackenProof es el hogar de todas las recompensas por errores de cifrado.**
2023-06-05 18:33:24 +00:00
**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.
2023-06-05 18:33:24 +00:00
**Obtén experiencia en pentesting web3**\
¡Los protocolos de blockchain y los contratos inteligentes son el nuevo Internet! Domina la seguridad web3 en sus días de crecimiento.
2023-06-05 18:33:24 +00:00
**Conviértete en una leyenda de los hackers web3**\
Obtén puntos de reputación con cada error verificado y conquista la cima de la clasificación semanal.
2023-06-05 18:33:24 +00:00
[**Regístrate en HackenProof**](https://hackenproof.com/register) ¡comienza a ganar con tus hacks!
{% embed url="https://hackenproof.com/register" %}
2023-06-05 18:33:24 +00:00
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2023-06-05 18:33:24 +00:00
</details>