07 Апр, 2023

Удаленный вызов процедуры Microsoft (MS-RPC)

Penetration Testing as a service (PTaaS)

Tests security measures and simulates attacks to identify weaknesses.

MS-RPC (удаленный вызов процедуры Microsoft) протокол - это проприетарный протокол, разработанный корпорацией Майкрософт для обмена данными между программными приложениями, работающими на разных устройствах в сетевой среде.
MS-RPC на основе DCE/RPC. Часто работает с SMB, поэтому эти данные могут быть полезны при атаке на SMB.

Общие порты MS-RPC

Port 135: Это хорошо известный порт, используемый службой сопоставления конечных точек MS-RPC для обеспечения сопоставления с динамическими портами, используемыми другими службами.

Динамические порты: службы MS-RPC используют динамические порты, что означает, что порты выделяются службой endpoint mapper по мере необходимости. Диапазон динамических портов, используемых MS-RPC, составляет 49152 Для 65535.

Некоторые из распространенных служб MS-RPC и связанных с ними портов являются:

Служба удаленного вызова процедур (RPC): Порт 135

Распределенная файловая система (DFS): Порт 445

Служба диспетчера очереди печати: Порт 135, 139, 445

Активный каталог: Порт 389, 636 (для SSL)

Инструментарий управления Windows (WMI): Порт 135, динамические порты

Протокол удаленного рабочего стола (RDP): Порт 3389

Стандартные команды от неавторизованных

rpcclient 46.163.74.38 rpcclient 46.163.74.38

Разведывательная или нестандартная команда

rpcinfo -p 46.163.74.38 (Определить, какие RPC запущены)

nmap -sV <target> (rpcinfo called)

Нулевое сеансовое соединение

rpcclient -U “” 46.163.74.38 <enter without input>

Связь с перечислением

https://github.com/SecureAuthCorp/impacket/blob/master/examples/rpcdump.py (не проверено)

Enumerating RPC interfaces by using rpcdump – rpcdump 46.163.74.38 -v

nmap <target> –script=msrpc-enum

enum4linux.pl -а 46.163.74.38

или

rpcclient -U “” 46.163.74.38 –command=<command>

Commands: enumprivs, srvinfo, netshareenumall, netsharegetinfo <netname from netshareenumall>, netfileenum, netsessenum, netdiskenum, netconnenum, enumdomusers, enumdomgroups, enumdomains, enumtrust

https://github.com/p33kab00/dcerpc-pipe-scan

Инструменты для использования протокола MS-RPC

Ручные Инструменты:

  • RPCPing: Инструмент Microsoft, используемый для тестирования подключения к RPC и выявления проблем. Он отправляет RPC-пакет на целевой сервер и ожидает ответа.

  • PortQry: Еще один инструмент Microsoft, который можно использовать для проверки того, прослушивают ли определенные службы RPC определенный порт в целевой системе.

  • RPCDump: Инструмент, используемый для сбора и анализа сетевого трафика между RPC-клиентом и сервером. Это может помочь выявить проблемы с вызовами RPC и может быть использовано для устранения неполадок.

  • RPCCrack: Инструмент, используемый для взлома паролей для служб RPC. Он может быть использован для тестирования безопасности служб RPC путем попытки взлома паролей.

  • RPCEcho: Инструмент, который отправляет базовое RPC-сообщение на целевой сервер и проверяет наличие ответа. Его можно использовать для тестирования подключения к RPC и выявления проблем.

  • WinRPC Checker: Инструмент, используемый для проверки конфигурации служб RPC в целевой системе. Его можно использовать для проверки правильности настройки и защиты служб RPC.

  • Impacket: Библиотека Python, используемая для создания и отправки пакетов по сети. Его можно использовать для создания пользовательских пакетов RPC в целях тестирования.

  • Metasploit Framework: Популярный инструмент тестирования на проникновение, который включает в себя модули для тестирования RPC-сервисов. Его можно использовать для проверки на наличие уязвимостей и использования их в случае обнаружения.

Автоматизированные инструменты:

  • Nmap: Популярный инструмент сетевого сканирования, который включает в себя возможности сканирования RPC. Он может быть использован для идентификации служб RPC и связанных с ними портов в целевой системе.

  • OpenVAS: Инструмент сканирования уязвимостей с открытым исходным кодом, который включает модули для тестирования служб RPC. Он может быть использован для выявления уязвимостей в службах RPC и предоставления рекомендаций по устранению.

  • Qualys: Облачный инструмент сканирования уязвимостей, включающий модули для тестирования служб RPC. Он может быть использован для выявления уязвимостей в службах RPC и предоставления рекомендаций по устранению.

  • Nessus: Еще один популярный инструмент сканирования уязвимостей, который включает в себя модули для тестирования служб RPC. Он может быть использован для выявления уязвимостей в службах RPC и предоставления рекомендаций по устранению.

  • Retina CS: Инструмент сканирования уязвимостей, который включает модули для тестирования служб RPC. Он может быть использован для выявления уязвимостей в службах RPC и предоставления рекомендаций по устранению.

  • Rapid7: Инструмент управления уязвимостями, который включает модули для тестирования служб RPC. Он может быть использован для выявления уязвимостей в службах RPC и предоставления рекомендаций по устранению.

  • Burp Suite: Популярный инструмент тестирования веб-приложений, включающий модули для тестирования служб RPC. Его можно использовать для тестирования безопасности служб RPC, запущенных в веб-приложениях.

  • ZAP: Еще один популярный инструмент тестирования веб-приложений, который включает в себя модули для тестирования служб RPC. Его можно использовать для выявления уязвимостей в службах RPC, работающих в веб-приложениях.

  • Acunetix: Инструмент тестирования веб-приложений, включающий модули для тестирования служб RPC. Его можно использовать для выявления уязвимостей в службах RPC, работающих в веб-приложениях.

  • AppSpider: Инструмент тестирования веб-приложений, включающий модули для тестирования служб RPC. Его можно использовать для выявления уязвимостей в службах RPC, работающих в веб-приложениях.

  • Nexpose: Инструмент сканирования уязвимостей, который включает модули для тестирования служб RPC. Он может быть использован для выявления уязвимостей в службах RPC и предоставления рекомендаций по устранению.

  • Core Impact: Коммерческий инструмент тестирования на проникновение, который включает модули для тестирования служб RPC. Его можно использовать для проверки на наличие уязвимостей и использования их в случае обнаружения.

Все известные CVE для MS-RPC

• CVE-2017-10608: На любом устройстве серии Juniper Networks SRX с одним или несколькими включенными ALGS может произойти сбой flowd при обработке трафика с помощью ALGS Sun / MS-RPC. Эта уязвимость в компоненте служб Sun / MS-RPC ALG ОС Junos позволяет злоумышленнику вызывать повторный отказ в обслуживании цели. Повторяющийся трафик в кластере может привести к повторным сбоям триггера или полному отказу демона flowd, останавливающему трафик на всех узлах. Эта проблема затрагивает только трафик IPv6. Трафик IPv4 не затронут. Эта проблема не связана с трафиком на хост. Эта проблема не имеет никакого отношения к самим службам HA, только к службе ALG. Эта проблема не затрагивает никакие другие продукты или платформы Juniper Networks. Затронутыми версиями являются Juniper Networks Junos OS 12.1X46 до 12.1X46-D55 на SRX; 12.1X47 до 12.1X47-D45 на SRX; 12.3X48 до 12.3X48-D32, 12.3X48-D35 на SRX; 15.1X49 до 15.1X49-D60 на SRX. 

• CVE-2007-4044: ** ОТКЛОНИТЬ ** Функциональность MS-RPC в smbd в Samba 3 на SUSE Linux до 20070720 не включает "один символ в обработке экранирования оболочки”. ПРИМЕЧАНИЕ: эта проблема первоначально характеризовалась как проблема с метасимволами оболочки из-за неполного исправления для CVE-2007-2447, которое было интерпретировано CVE как относящееся к безопасности. Однако SUSE и Red Hat оспорили проблему, заявив, что единственное влияние заключается в том, что скрипты не будут выполняться, если в их названии есть буква “c”, но даже этого ограничения может не существовать. Это не имеет последствий для безопасности, поэтому не должно быть включено в CVE. 

• CVE-2007-2447: Функциональность MS-RPC в smbd в Samba с 3.0.0 по 3.0.25rc3 позволяет удаленным злоумышленникам выполнять произвольные команды с помощью метасимволов оболочки, включающих (1) функцию SamrChangePassword, когда включена опция smb.conf “сценарий сопоставления имени пользователя”, и позволяет удаленным аутентифицированным пользователям выполнять команды с помощью метасимволов оболочки, включающих другие функции MS-RPC в (2) удаленном принтере и (3) управлении общим файлом. 

• CVE-2007-2446: Множественные переполнения буфера на основе кучи при анализе NDR в smbd в Samba с 3.0.0 по 3.0.25rc3 позволяют удаленным злоумышленникам выполнять произвольный код с помощью обработанных запросов MS-RPC, включающих (1) DFSEnum (netdfs_io_dfs_EnumInfo_d), (2) RFNPCNEX (smb_io_notify_option_type_data), (3) LsarAddPrivilegesToAccount (lsa_io_privilege_set), (4) NetSetFileSecurity (sec_io_acl), или (5) LsarLookupSids/LsarLookupSids2 (lsa_io_trans_names). 

Полезная информация

– MS-RPC (удаленный вызов процедур Microsoft) - это протокол, используемый операционными системами Windows, позволяющий программам отправлять запросы и получать ответы от других программ по сети.

– MS-RPC использует архитектуру клиент-сервер, где клиентская программа отправляет запрос серверной программе, которая обрабатывает запрос и отправляет ответ обратно клиенту.

– MS-RPC поддерживает широкий спектр служб, включая общий доступ к файлам и принтерам, удаленный доступ к реестру и службы удаленного вызова процедур для различных служб Windows.

– MS-RPC по умолчанию использует порт 135, но также может использовать динамические порты выше 1024.

– MS-RPC использует уникальный идентификатор (UUID) для идентификации каждой службы, а преобразователь сетевых адресов (NAT) может сопоставить UUID с определенным номером порта.

– MS-RPC может быть уязвим для целого ряда атак, включая атаки типа "отказ в обслуживании" (DoS), переполнение буфера и атаки типа "человек посередине" (MITM).

– Некоторые распространенные инструменты для тестирования и использования уязвимостей MS-RPC включают Metasploit, rpcclient и Responder.

– Для устранения уязвимостей MS-RPC рекомендуется использовать брандмауэры для блокирования трафика на порту 135 и обеспечения того, чтобы все системы Windows обновлялись последними исправлениями безопасности.

– Системы Windows также могут быть настроены на использование ограниченного набора служб, которым разрешено использовать MS-RPC, что может помочь уменьшить поверхность атаки.

– Кроме того, администраторы могут использовать средства мониторинга сетевой безопасности для обнаружения и блокирования трафика MS-RPC, который не авторизован или указывает на атаку.

Книги для изучения удаленного вызова процедур Microsoft (MS-RPC)

“Руководство по программированию Microsoft RPC” автор: Марко Хаверкорн: Эта книга представляет собой исчерпывающее руководство по программированию на MS-RPC, включая то, как использовать API, как создавать распределенные приложения и как устранять распространенные проблемы.

“Ссылка на собственный API для Windows NT / 2000” автор Гэри Неббетт: Эта книга содержит подробную информацию о собственном API, который включает реализацию MS-RPC.

“Внутренняя отладка Windows” автор Тарик Соулами: В этой книге рассматриваются передовые методы отладки для Windows, включая отладку MS-RPC.

“Книга драйверов устройств Windows 2000: руководство для программистов” Арт Бейкер и Джерри Лозано: В этой книге представлен обзор драйверов устройств Windows 2000, в том числе о том, как использовать MS-RPC для обмена данными между драйверами.

“Внутренние компоненты Windows, часть 2 (6-е издание)” автор: Марк Руссинович, Дэвид Соломон и Алекс Ионеску: В этой книге рассказывается о внутренней работе Windows, включая MS-RPC.

“Сетевое программирование Windows” Ричард Блюм: В этой книге подробно рассматривается сетевое программирование Windows, включая MS-RPC.

“Внутренние компоненты файловой системы Windows NT” автор Раджив Нагар: В этой книге рассказывается о файловой системе Windows NT, в том числе о том, как MS-RPC используется для обмена данными между компонентами файловой системы.

“Системное программирование Windows, Четвертое издание” Джонсон М. Харт: Эта книга посвящена системному программированию Windows, включая MS-RPC.

“Windows Forensic Analysis Toolkit, четвертое издание: Расширенные методы анализа для Windows 8” автор Харлан Карви: В этой книге рассматриваются передовые методы криминалистического анализа Windows, в том числе как использовать MS-RPC для удаленных вызовов процедур во время расследований.

“Программирование безопасности Windows” Кит Браун: В этой книге рассказывается о программировании безопасности Windows, в том числе о том, как MS-RPC можно использовать для аутентификации и контроля доступа.

Список полезной нагрузки для удаленного вызова процедуры Microsoft (MS-RPC)

  • Служба удаленного вызова процедур (RPC): Полезная нагрузка для службы RPC может включать в себя такие параметры, как идентификатор интерфейса, идентификатор операции и данные, подлежащие передаче.

  • Распределенная файловая система (DFS): Полезная нагрузка для DFS включает информацию о файле или каталоге, к которому осуществляется доступ, такую как путь, дескриптор файла и права доступа.

  • Служба диспетчера очереди печати: Полезная нагрузка для службы диспетчера очереди печати включает данные о задании печати, такие как идентификатор задания, имя принтера и данные печати.

  • Активный Каталог: Полезная нагрузка для Active Directory может включать запросы на создание, изменение или удаление объектов, а также запросы на получение информации об объектах и их атрибутах.

  • Инструментарий управления Windows (WMI): Полезная нагрузка для WMI включает запросы и команды для извлечения или изменения системной информации, такой как конфигурация оборудования, производительность системы и журналы событий.

  • Протокол удаленного рабочего стола (RDP): Полезная нагрузка для RDP включает в себя такие данные, как ввод с клавиатуры и мыши, аудио- и видеопотоки и содержимое буфера обмена, которые передаются между клиентом и сервером во время сеансов удаленного рабочего стола.

Смягчение последствий

  1. Постоянно обновляйте системы: убедитесь, что все системы, на которых работает MS-RPC, обновлены последними исправлениями безопасности от поставщика.

  2. Внедрять правила брандмауэра: Используйте брандмауэры для блокирования трафика на порты, связанные с MS-RPC, и из них, которые не требуются для бизнес-целей.

  3. Внедрите контроль доступа: Ограничьте доступ к службам MS-RPC только тем пользователям, которым это необходимо для выполнения их рабочих обязанностей.

  4. Отключить ненужные службы: отключите все ненужные службы MS-RPC, запущенные в системах, чтобы уменьшить поверхность атаки.

  5. Используйте сегментацию сети: сегментируйте сети, чтобы ограничить доступ служб MS-RPC только к тем системам, которые в них нуждаются.

  6. Внедрите надежную аутентификацию: используйте надежные методы аутентификации, такие как многофакторная аутентификация, для предотвращения несанкционированного доступа к службам MS-RPC.

  7. Мониторинг системных журналов: Регулярно просматривайте системные журналы на предмет любых признаков подозрительной активности, таких как неудачные попытки входа в систему или попытки несанкционированного доступа.

  8. Используйте системы обнаружения вторжений: Используйте системы обнаружения вторжений для обнаружения любых попыток использования уязвимостей MS-RPC и оповещения о них.

  9. Выполняйте регулярные оценки безопасности: Регулярно выполняйте оценки безопасности для выявления и устранения любых уязвимостей во внедрении MS-RPC.

Заключение

МС-RPC это широко используемый протокол для удаленных вызовов процедур в средах Microsoft Windows. Хотя он обеспечивает удобный способ взаимодействия программных приложений по сети, он также имеет историю уязвимостей, которыми могут воспользоваться злоумышленники. Чтобы уменьшить эти уязвимости, организации могут предпринять такие шаги, как постоянное обновление систем, внедрение средств контроля доступа, использование сегментации сети и выполнение регулярных оценок безопасности. Внедряя эти меры, организации могут снизить риск атак, нацеленных на MS-RPC, и помочь обеспечить безопасность своих систем и данных.

Другие Услуги

Готовы к безопасности?

Связаться с нами