Troubleshooting RPC Connectivity Using Portquery
The Remote Procedure Call (RPC) protocol is used in Windows to communicate between computers over a network. Many built-in Windows services use RPC (Distributed File System, AD Replication, DCOM services, MSSQL, Exchange, SCOM, SCCM, NLB, Microsoft Cluster Services, Certificate services, etc.).
The RPC protocol is based on a client-server model. The RPC server accepts and processes connections using the RpcSs service. Windows dynamic ports are used for communication between clients and the RCP server (TCP Range from 49152 and up to 65535).
The static TCP port 135 is used as the starting point for RPC communication. This port is listened by the RPC Endpoint Mapper (RpcEptMapper) service. In a normal RPC session, the client connects to the RPC endpoint mapper service on the server on port 135 and requests the dynamic port number assigned to the particular service. RpcEptMapper responds with the IP address and service port number (a random dynamic port is assigned when the service starts).
The most common causes of RPC errors are:
- Disabled RPC service;
- Name resolution errors (DNS or NetBIOS);
- Network connectivity issues;
- RPC traffic is blocked by the firewall.
You can use the portquery tools to diagnose the availability of the RPC and RPC Port Mapper services (PortQry Command Line Port Scanner).
To check the availability of the RPC Port Mapper port on a remote computer, run the command:
portqry -n <problem_server> -e 135
In this example, you can see that the RPC Port Mapper service is available on TCP port 135. The service also service returns a list of running RPC endpoints and the ports associated with them (in square brackets). Check if the service you are troubleshooting is on this list. Check that the port assigned to your TCP service is not blocked by firewalls between the client and server.
portqry -n <problem_server> -p tcp -e 49666
Pingbacks from XML-RPC sources
- In this situation, an attacker can use the default XML-RPC API to perform callbacks for the following reasons:
- Distributed denial-of-service (DDoS) attacks: The pingback is used by an attacker. If excessive packets are sent by the attacker the system will be overwhelmed and the resultant is DDoS attack.
- Cloudflare Protection Bypass: Most companies think that after deploying firewall, it will monitor the inbound traffic. Unfortunately, due to XML-RPC the cloud fare can be surpassed and the attacker can enter in.
- Cross-Site Port Attack (XSPA): Cross Site Port Attack is what XSPA stands for. In this attack, a user enters URL and sends to the application, but the application doesn’t check or sanitize the back-end response from remote servers before sending it back to the client. An attacker can use a vulnerable web application to launch attacks on other servers, intranet devices, and the web server itself by sending specially crafted queries to it. In some cases, the responses can be looked at to find out what kinds of services are available, such as open ports, banner versions, etc… and exploit it.
An example request utilising the URL supplied by burp collaborator as a callback is shown in the following:
Example response:
burp collaborator Output:
Поддержка и дальнейшие шаги
Вот несколько рекомендаций, которые могут помочь вам в решении проблемы:
- Убедитесь, что вы используете правильные имя пользователя и пароль для доступа к XML-RPC серверу. Проверьте правильность введенных данных и убедитесь, что они соответствуют требованиям сервера. Если вы не уверены в правильности данных, свяжитесь с администратором сервера или поставщиком услуги.
- Проверьте, что вы используете правильный URL сервера. Убедитесь, что URL указывает на правильное место и не содержит опечаток или ошибок.
- Проверьте, что вы используете правильный метод вызова. Убедитесь, что вы используете поддерживаемые сервером методы и передаете правильные данные в запросе.
- Проверьте, что у вас есть необходимые права для доступа к серверу и выполнения запрошенных операций. Обратитесь к администратору сервера или поставщику услуги, чтобы узнать, есть ли какие-либо ограничения или требования.
- Проверьте, что у вас установлена и работает последняя версия библиотеки XML-RPC. Устаревшие или неполадки в этой библиотеке могут вызвать ошибку.
Если после предпринятых действий проблема не решена, рекомендуется обратиться за поддержкой к команде разработчиков или сообществу пользователей, связанных с вашим сервером или программным обеспечением. Они могут помочь вам выяснить причину ошибки и предложить дополнительные шаги решения проблемы.
Не стоит паниковать, если вы столкнулись с ошибкой «invalid payload received from xml rpc server». Следуя указанным выше рекомендациям и обратившись за поддержкой, вы сможете исправить эту проблему и продолжить работу с XML-RPC сервером.
Способы решения
При запуске или установке некоторых программ вы можете получить сообщение «Сервер RPC недоступен». Это часто связано с синхронизацией времени, необходимой для запуска программы. Без этого некоторые приложения могут работать неправильно или не запускаться вообще. Что делать, чтобы сообщение больше не появлялось, рассмотрим далее.
Код ошибки 1722
Ошибка 1722 «Сервер PRC недоступен» может возникать при использовании сетевого принтера или звуковых устройств в седьмой версии Windows. Причиной может быть антивирусная программа, блокирующая коммуникационные порты – для её устранения нужно найти параметры управления доверенными программами в настройках антивируса.
Отключение брандмауэра Windows
- Это один из самых простых способов отключения сетевого брандмауэра. Для этого используйте вкладку «Параметры системы».
- Из списка доступных опций выберите «Сеть и Интернет».
- Перейдите на вкладку Ethernet и выберите «Брандмауэр Windows» с правой стороны окна.
- Выберите включение и отключение брандмауэра.
- В списке доступных операций выберите параметр «Отключить брандмауэр Windows» (не рекомендуется).
- Нажмите «ОК». Брандмауэр выключен.
Следующий способ – редактор локальной групповой политики (GPO):
Для более опытных пользователей вышеупомянутый сценарий можно выполнить с помощью редактора реестра.
- нажмите пуск и введите «regedit», запустите приложение от имени администратора;
- в окне редактора найдите каталог
- найдите параметр EnableFirewall и измените его значение с 1 на 0;
- таким же образом отредактируйте ключ EnableFirewall в следующем каталоге
и последний каталог с ключом EnableFirewall
Закройте редактор реестра и перезагрузите компьютер. С этого момента брандмауэр Windows отключается. Чтобы снова возобновить брандмауэр с помощью редактора реестра, просто измените указанные выше значения с названием EnableFirewall с 0 на 1, и перезапустите компьютер.
Ручной запуск задачи services.msc
При запуске или установке некоторых программ вы можете получить сообщение «Сервер RPC недоступен». Это часто связано с синхронизацией времени, необходимой для запуска программы. Без этого некоторые приложения могут работать неправильно или не запускаться вообще. При недоступности функции может произойти сбой, для исправления необходимо включить службу синхронизации:
- сначала нажмите меню «Пуск» и в строке поиска введите «Выполнить», нажмите «Enter»;
- в следующем окне введите services.msc и подтвердите кнопкой «OK»;
- найдите в списке элемент «Служба времени Windows»;
- дважды щёлкните эту службу. Откроется меню, в котором вы должны нажать кнопку «Выполнить».
Микрофинансирование → Микрокредиты → Специальные предложения → Скачать файлы → Обзор Быстроденег → Предмет договора → Ответственность сторон → Отличные наличные→ Экспресс займы
Работа через маршрутизатор.
Оказалось что очень удобно работать по схеме, когда компьютер и оба «С2000-Ethernet» подключены к маршрутизатору.
«С2000-Ethernet» уже подключены к маршрутизаторам одной сети: каждый в своем месте.
В любом месте мы ставим на стол ноутбук, садимся на стул, и подключаемся к локальной сети — и теперь мы можем конфигурировать все С2000-Ethernet и подключенные к ним приборы, в том числе и заливать конфигурацию в С2000М (хотя это не пробовал).
Никаких тебе проводов с интерфейсом RS485.
Кроме того, UPrug стал меньше глючить и зависать при записи конфигурации, возможно, после перехода к такому способу конфигурации через сеть, а не напрямую.
Теперь смешно, когда колдовал с «С2000-Ethernet» на коленках под шкафом с маршрутизаторами.
Глючность «UProg» при работе с» С2000-Ethernet».
Сразу же столкнулся с зависаниями «UProg».
Через раз UPrug не показывал, что «С2000-Ethernet» онлайн или не читал или не записывал конфигурацию.
Запись настроек происходила не понятно: то ли запись произошла — то-ли нет.
Чтобы увидеть актуальные настройки из «С2000-Ethernet», необходимо прочитать их.
Но после перезапуска «Uprog» или изменении конфигурации устройства были не онлайн — не горят зеленые кружочки и не активны кнопки чтения/записи (см. скриншот выше), и мы не видим именно текущую конфигурацию «С2000-Ethernet»:
Мы можем видеть текущие настройки конфигурации из кэша, а не из самих «С2000-Ethernet» и эти настройки могут оказаться «левыми».
К слову, UProg информирует о том, что настройки взяты из кэша:
Способ работы при глюках был найден: необходимо было удалить, а затем вновь добавить линию.
Чуть что — удалять/добавлять линию и перезапускать перезапускать «UProg».
Какой-то из следующих шагов привел к стабильной работе «UProg» с «С2000-Ethernet» почти без глюков и зависаний.
Причины возникновения ошибки «invalid payload received from xml rpc server»
Ошибка «invalid payload received from xml rpc server» возникает при попытке обработать некорректный запрос к XML-RPC серверу. Эта ошибка может быть вызвана различными причинами. Рассмотрим некоторые из них:
- Неверный формат запроса. Если запрос не соответствует требованиям XML-RPC протокола, то сервер не сможет обработать его и вернет ошибку «invalid payload received from xml rpc server». Например, если в запросе отсутствует необходимый элемент или он имеет неверный формат, то это может вызвать ошибку.
- Отсутствие или неверный формат заголовков. XML-RPC сервер может требовать определенные заголовки в запросе. Если заголовки отсутствуют или имеют неверный формат, то сервер может вернуть ошибку «invalid payload received from xml rpc server». Например, заголовок Content-Type должен быть установлен в «text/xml».
- Проблемы с соединением. Если соединение с сервером было прервано или произошла ошибка при отправке или получении данных, то это может вызвать ошибку «invalid payload received from xml rpc server». Например, сервер может вернуть эту ошибку, если запрос не был отправлен или ответ не был получен вовремя.
- Проблемы с настройками сервера. Некоторые настройки сервера могут повлиять на обработку запросов XML-RPC. Например, если сервер не поддерживает определенные методы или если они были неправильно настроены, то это может вызвать ошибку «invalid payload received from xml rpc server».
Чтобы исправить ошибку «invalid payload received from xml rpc server», следует принять следующие меры:
- Проверить формат запроса и убедиться, что он соответствует требованиям XML-RPC протокола. Если запрос содержит ошибки, их следует исправить.
- Проверить заголовки запроса и убедиться, что они установлены в правильном формате. Если заголовки отсутствуют или имеют неверный формат, их следует скорректировать.
- Проверить соединение с сервером и убедиться, что оно работает исправно. Если возникают проблемы с соединением, следует их решить.
- Проверить настройки сервера и убедиться, что они правильно настроены для обработки запросов XML-RPC. Если настройки сервера вызывают проблемы, их следует скорректировать.
Исправление ошибки «invalid payload received from xml rpc server» требует внимательного анализа и исправления всех возможных проблем, связанных с запросом, заголовками, соединением и настройками сервера. После исправления проблемы запрос к XML-RPC серверу должен быть обработан успешно.
Причины и последствия ошибки валидации данных от xml rpc сервера
Ошибки валидации данных, получаемых от xml rpc сервера Orion, могут возникать по разным причинам и иметь различные последствия. В этом разделе мы рассмотрим основные причины таких ошибок и как они могут повлиять на работу системы.
Одной из причин ошибок валидации данных является некорректный формат или структура данных, возвращаемых сервером. Если xml rpc сервер возвращает данные, которые не соответствуют ожидаемому формату или содержат ошибки в структуре, это может вызвать ошибку валидации. Например, если сервер возвращает данные в формате XML, но они содержат неправильно вложенные теги или отсутствуют обязательные элементы, это может вызвать ошибку валидации при их обработке.
Другой причиной ошибок валидации данных может быть несоответствие типов данных. Если сервер возвращает данные определенного типа (например, числа), а клиент ожидает данные другого типа (например, строки), это также может вызвать ошибку валидации. Неправильное преобразование или интерпретация типов данных может привести к некорректной обработке данных и ошибкам в работе системы.
Последствия ошибки валидации данных от xml rpc сервера могут быть разными. Во-первых, ошибка валидации может привести к некорректной обработке или отбрасыванию данных, что может привести к неполной или некорректной работе системы. Например, если приложение ожидает определенные данные от сервера, но они не проходят валидацию, то эти данные не будут использованы, что может привести к неправильной работе системы или ошибкам в выводе данных.
Во-вторых, ошибка валидации может привести к сбою системы или даже ее отказу. Если данные, возвращаемые сервером, содержат вредоносный код или некорректные данные, которые не проходят валидацию, это может привести к ошибкам в обработке данных или даже выполнению некорректных операций. Например, если сервер возвращает данные с SQL-инъекцией или кодом, который может привести к ошибке на стороне клиента, это может вызвать крах системы или нарушение ее работоспособности.
Поэтому, для предотвращения ошибок валидации данных от xml rpc сервера, необходимо уделить особое внимание правильной проверке и обработке данных, а также регулярно обновлять и анализировать систему и сервер на наличие возможных уязвимостей или ошибок в работе
Verify Your Drivers
After you have verified that you have all the appropriate items installed in your internet connection, the next thing you’ll want to do is ensure that they are all working correctly. This can be done by doing the following.
1. First, ensure you’ve logged into your computer with administrative rights.
2. Then click on Start -> Run, type cmd and click on OK. [Windows Vista/7: Start -> Type cmd (into the Search programs and files box) and Press CTRL + Shift + Enter, then click on Continue]
3. When Command Prompt loads up, type Verifier /Driver and hit Enter.
4. Once the process has finished, restart your computer.
You should then check to see whether the issue has been rectified. If not, proceed to the next step.
Как работает XML-RPC сервер Орион
Когда клиент отправляет запрос на сервер Орион, он использует формат XML для кодирования вызова. Запрос содержит имя метода, который нужно вызвать, и параметры, передаваемые этому методу. Сервер Орион принимает запрос, декодирует его и находит соответствующую ему процедуру для выполнения.
После выполнения вызываемого метода сервер Орион генерирует ответ, который также представлен в формате XML. Ответ содержит результат выполнения метода, информацию об ошибках (если таковые возникли) и другую дополнительную информацию. Клиент получает ответ от сервера, декодирует его и обрабатывает результаты выполнения метода.
XML-RPC сервер Орион предоставляет различные методы для взаимодействия с удаленными процедурами. Это может быть вызов удаленных функций, получение информации о системе, работа с базами данных и другими протоколами.
Все запросы и ответы, обрабатываемые сервером Орион, передаются по сети с использованием протокола HTTP. Поэтому для работы с сервером Орион необходимо иметь доступ к сети и знать адрес сервера, на котором он запущен. Также можно использовать различные библиотеки и клиентские программы для облегчения взаимодействия с сервером.
XML-RPC сервер Орион предоставляет удобный способ взаимодействия с удаленными процедурами, позволяет передавать данные между клиентом и сервером и обрабатывать результаты выполнения методов. Он широко используется в различных областях, таких как веб-разработка, автоматизация систем и другие.
Устранение ошибок RPC
Программа
PortQry предоставляет краткие сведения о том, как работает RPC, прежде чем углубляться в данные трассировки сети. Вы можете быстро определить, можно ли установить подключение, выполнив на клиентском компьютере следующую команду:
Примечание.
В этой команде <ServerIP> представляет IP-адрес сервера, с которым вы обращаетесь.
Например, рассмотрим следующую команду:
Эта команда создает выходные данные, аналогичные следующему фрагменту:
Изучив эти выходные данные, можно определить следующие сведения:
- DNS работает правильно (он разрешил IP-адрес в полное доменное имя (FQDN)).
- PortQry связался с портом RPC (135) на целевом компьютере.
- EPM ответил на PortQry и назначил динамический порт 49664 (заключенный в квадратные скобки) для последующего взаимодействия.
- PortQry повторно подключен к порту 49664.
Если какой-либо из этих шагов завершается ошибкой, обычно можно начать сбор одновременных трассировок сети, как описано в следующем разделе.
Дополнительные сведения о PortQry см. в разделе Использование средства командной строки PortQry.
Netsh
Средство Windows netsh можно использовать для одновременного сбора данных трассировки сети на клиенте и сервере.
Чтобы собрать одновременные трассировки сети, откройте окно командной строки с повышенными привилегиями как на клиенте, так и на сервере.
На клиенте выполните следующую команду:
На сервере выполните следующую команду:
Теперь попробуйте воспроизвести проблему на клиентском компьютере. Затем выполните следующую команду в командной строке в обоих окнах, чтобы остановить трассировку:
Откройте файлы трассировки в Microsoft Network Monitor 3.4 или анализаторе сообщений и отфильтруйте данные трассировки по IP-адресу сервера или клиентских компьютеров и TCP-порту 135. Например, используйте строки фильтра, такие как:
-
Ipv4.address==<client-ip> и ipv4.address==<server-ip> и tcp.port==135
В этой строке < фильтра client-ip> представляет IP-адрес клиента, а <server-ip> — IP-адрес сервера.
-
tcp.port==135
В отфильтрованных данных найдите запись EPM в столбце Протокол .
Найдите ответ от EPM (на сервере), который содержит динамический номер порта. Если динамический номер порта присутствует, запишите его для дальнейшего использования.
Перепроверяйте данные трассировки для динамического номера порта и IP-адреса сервера. Например, используйте строку фильтра, например tcp.port==<dynamic-port-allocated> и ipv4.address=<server-ip>. В этой строке фильтра dynamic-port-allocated> представляет динамический номер порта, < а <server-ip> — IP-адрес сервера.
В отфильтрованных данных найдите доказательства успешного подключения клиента к динамическому порту, или найдите все проблемы с сетью, которые могли возникнуть.
Порт недоступен
Наиболее распространенной причиной ошибок «сервер RPC недоступен» является то, что клиент не может подключиться к выделенному динамическому порту. Затем трассировка на стороне клиента будет отображать повторную передачу TCP SYN для динамического порта.
Это поведение указывает на то, что одно из следующих условий блокирует обмен данными:
- Динамический диапазон портов заблокирован в брандмауэре в среде.
- Среднее устройство удаляет пакеты.
- Целевой сервер удаляет пакеты. Это условие может быть вызвано такими конфигурациями, как удаление пакетов платформы фильтрации Windows (ВПП), удаление пакетов сетевой карты (NIC) или изменение драйвера фильтрации .
XML-RPC brute force attacks
In a brute-force attack against a WordPress site, the XML-RPC API is sometimes the only way to bypass request limits or blocks.
The most common brute force attack is the one shown below:
Burp Intruder, for example, can send the above request with different sets of credentials. Note that the response code will always be 200, whether you guess the password or not. I strongly suggest looking for mistakes or messages in the body of the answer.
Worried that you’ll send too many requests to the target?
-No worries.By default, WordPress XML-RPC lets an attacker use a single request to try hundreds of passwords at once.
This request needs access to both the system.multicall and wp.getUsersBlogs methods:
The response will look like:
A single request was used to test four unique sets of credentials in the previous example.Your username and password can be replaced with your own personal details.
Verify the RPC Related Services
The RPC requires a few services to be running in the background before it can function. The steps below will outline the exact services that should be running on your operating system before you can expect not to receive the RPC server is unavailable error message.
1. First, ensure you’ve logged into your computer with administrative rights.
2. Then click on Start -> Run, type services.msc and click on OK. [Windows Vista/7: Start -> Control Panel -> Administrative Tools -> Services]
3. This will bring up the Services applet. From here you’ll want to verify that the appropriate services are running on your computer.
4. If you find that a required item is not running on your computer, then you should double click on it to bring up its Properties applet. Then on the General Tab, select Automatic from the drop menu next to Startup type: and then click on the Start button followed by Apply and OK.
The following are the services that should be running on your computer based on the version of Windows your using:
OS | Service | Startup type |
Remote Procedure Call (RPC) | Automatic | |
Remote Procedure Call (RPC) | Automatic | |
DCOM Server Process Launcher | Automatic | |
Remote Procedure Call (RPC) | Automatic | |
DCOM Server Process Launcher | Automatic | |
RPC Endpoint Mapper | Automatic |
After you have verified that all the required services are running, you should then attempt to use the RPC services. If you’re no longer getting the RPC server is unavailable error message, then the issue has been solved. However, if it persists, the continue reading.
Четвертый шаг: Проверьте целостность XML-RPC сервера
После установки и настройки XML-RPC сервера может возникнуть ошибка «invalid payload received from xml rpc server». Чтобы решить эту проблему, необходимо проверить целостность сервера и убедиться, что он работает корректно.
Существует несколько способов проверки целостности XML-RPC сервера:
1. Проверьте подключение к серверу. Убедитесь, что ваш компьютер или сервер, на котором установлен XML-RPC сервер, имеет доступ к Интернету и нет проблем с интернет-соединением. Проверьте настройки сети и убедитесь, что все настройки правильны.
2. Проверьте правильность установки и настройки XML-RPC сервера. Убедитесь, что все необходимые пакеты и зависимости установлены и сконфигурированы правильно. Проверьте лог-файлы сервера на наличие ошибок или предупреждений, которые могут указывать на проблемы с установкой или настройкой.
3. Проверьте работоспособность сервера с помощью тестового клиента. Используйте тестового клиента для отправки запросов на сервер и проверьте, получаете ли вы ожидаемые ответы. Если тестовый клиент не работает или вы получаете ошибки или некорректные ответы, скорее всего, проблема связана с сервером.
4. Проверьте наличие обновлений и патчей. Возможно, разработчики XML-RPC сервера выпустили обновления или патчи, которые исправляют известные проблемы или уязвимости. Установите все доступные обновления и патчи и выполните процедуру проверки целостности снова.
В случае продолжения ошибки «invalid payload received from xml rpc server» рекомендуется обратиться к документации или технической поддержке разработчиков XML-RPC сервера для получения дополнительной помощи и советов по устранению проблемы.