135, 593 - Pentesting MSRPC

Reading time: 5 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

Основна інформація

Протокол Microsoft Remote Procedure Call (MSRPC), клієнт-серверна модель, що дозволяє програмі запитувати послугу у програми, розташованої на іншому комп'ютері, не розуміючи специфіки мережі, спочатку був отриманий з програмного забезпечення з відкритим кодом, а пізніше розроблений і захищений авторським правом компанією Microsoft.

Картографічний кінцевий пункт RPC можна отримати через TCP і UDP порт 135, SMB на TCP 139 і 445 (з нульовою або автентифікованою сесією), а також як веб-сервіс на TCP порту 593.

135/tcp   open     msrpc         Microsoft Windows RPC

Як працює MSRPC?

Ініційований клієнтським додатком, процес MSRPC включає виклик локальної стуб-процедури, яка потім взаємодіє з бібліотекою виконання клієнта для підготовки та передачі запиту на сервер. Це включає перетворення параметрів у стандартний формат представлення даних мережі. Вибір транспортного протоколу визначається бібліотекою виконання, якщо сервер віддалений, що забезпечує доставку RPC через мережевий стек.

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

Визначення відкритих RPC-сервісів

Відкритість RPC-сервісів через TCP, UDP, HTTP та SMB можна визначити, запитуючи службу локатора RPC та окремі кінцеві точки. Інструменти, такі як rpcdump, полегшують ідентифікацію унікальних RPC-сервісів, позначених значеннями IFID, що розкриває деталі сервісу та зв'язки комунікації:

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]

Доступ до служби локатора RPC забезпечується через специфічні протоколи: ncacn_ip_tcp та ncadg_ip_udp для доступу через порт 135, ncacn_np для SMB з'єднань та ncacn_http для веб-орієнтованої RPC комунікації. Наступні команди ілюструють використання модулів Metasploit для аудиту та взаємодії з MSRPC службами, в основному зосереджуючись на порту 135:

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

Усі опції, крім tcp_dcerpc_auditor, спеціально розроблені для націлювання на MSRPC на порту 135.

Помітні RPC інтерфейси

  • IFID: 12345778-1234-abcd-ef00-0123456789ab
  • Named Pipe: \pipe\lsarpc
  • Опис: Інтерфейс LSA, використовується для перерахунку користувачів.
  • IFID: 3919286a-b10c-11d0-9ba8-00c04fd92ef5
  • Named Pipe: \pipe\lsarpc
  • Опис: Інтерфейс LSA Directory Services (DS), використовується для перерахунку доменів і довірчих відносин.
  • IFID: 12345778-1234-abcd-ef00-0123456789ac
  • Named Pipe: \pipe\samr
  • Опис: Інтерфейс LSA SAMR, використовується для доступу до елементів публічної бази даних SAM (наприклад, імена користувачів) і брутфорсу паролів користувачів незалежно від політики блокування облікових записів.
  • IFID: 1ff70682-0a51-30e8-076d-740be8cee98b
  • Named Pipe: \pipe\atsvc
  • Опис: Планувальник завдань, використовується для віддаленого виконання команд.
  • IFID: 338cd001-2244-31f1-aaaa-900038001003
  • Named Pipe: \pipe\winreg
  • Опис: Служба віддаленого реєстру, використовується для доступу та зміни системного реєстру.
  • IFID: 367abb81-9844-35f1-ad32-98f038001003
  • Named Pipe: \pipe\svcctl
  • Опис: Менеджер контролю служб і серверні служби, використовується для віддаленого запуску та зупинки служб і виконання команд.
  • IFID: 4b324fc8-1670-01d3-1278-5a47bf6ee188
  • Named Pipe: \pipe\srvsvc
  • Опис: Менеджер контролю служб і серверні служби, використовується для віддаленого запуску та зупинки служб і виконання команд.
  • IFID: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57
  • Named Pipe: \pipe\epmapper
  • Опис: Інтерфейс DCOM, використовується для брутфорсу паролів і збору інформації через WM.

Визначення IP-адрес

Використовуючи https://github.com/mubix/IOXIDResolver, що походить з дослідження Airbus, можливо зловживати методом ServerAlive2 всередині інтерфейсу IOXIDResolver.

Цей метод використовувався для отримання інформації про інтерфейс у вигляді IPv6 адреси з HTB боксу APT. Дивіться тут для опису 0xdf APT, він включає альтернативний метод, використовуючи rpcmap.py з Impacket з stringbinding (див. вище).

Виконання RCE з дійсними обліковими даними

Можливо виконати віддалений код на машині, якщо доступні облікові дані дійсного користувача, використовуючи dcomexec.py з фреймворку impacket.

Не забудьте спробувати з різними доступними об'єктами

  • ShellWindows
  • ShellBrowserWindow
  • MMC20

Порт 593

rpcdump.exe з rpctools може взаємодіяти з цим портом.

Посилання

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks