07 Кві, 2023

Віддалений виклик процедури Microsoft (MS-RPC)

Penetration Testing as a service (PTaaS)

Tests security measures and simulates attacks to identify weaknesses.

MS-RPC (віддалений виклик процедури Microsoft) протокол - це закритий протокол, розроблений корпорацією 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, і допомогти забезпечити безпеку своїх систем і даних.

Інші Послуги

Готові до безпеки?

зв'язатися з нами