{"id":2006,"date":"2020-11-26T15:20:28","date_gmt":"2020-11-26T20:20:28","guid":{"rendered":"https:\/\/e-lexia.com\/blog\/?p=2006"},"modified":"2024-11-01T11:24:55","modified_gmt":"2024-11-01T16:24:55","slug":"solucion-vulnerabilidad-xmlrpc-php-wordpress","status":"publish","type":"post","link":"https:\/\/e-lexia.com\/blog\/solucion-vulnerabilidad-xmlrpc-php-wordpress\/","title":{"rendered":"Vulnerabilidad en xmlrpc.php de WordPress"},"content":{"rendered":"<p>En los \u00faltimos meses he identificado casi un centenar de intentos de acceso no autorizado a mi blog (que est\u00e1 soportado en WordPress). Afortunadamente, gracias a las medidas de seguridad que he implementado, las solicitudes solo han sido eso: intentos.<\/p>\n<p>Revisando a detalle el registro, he descubierto que los ataques est\u00e1n dirigidos al archivo <code>xmlrpc.php<\/code>, que se ubica en el directorio principal de WordPress. \u00bfPor qu\u00e9? Miremos.<\/p>\n<p><!-- Google Adsense --><\/p>\n<div class=\"adsense\">\n  <script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-7923590131153633\" crossorigin=\"anonymous\"><\/script><br \/>\n  <ins class=\"adsbygoogle\" style=\"display:block; text-align:center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-7923590131153633\" data-ad-slot=\"5345374831\"><\/ins><br \/>\n  <script>(adsbygoogle = window.adsbygoogle || []).push({});<\/script>\n<\/div>\n<h2>\u00bfCu\u00e1l es la funci\u00f3n del archivo xmlrpc.php?<\/h2>\n<p>En palabras sencillas, la tecnolog\u00eda XML-RPC permite que un sistema comparta datos con otro, utilizando HTTP como medio de transporte y XML como lenguaje de codificaci\u00f3n.<\/p>\n<p>La idea, para el caso de WordPress, es que los usuarios autores pudieran conectarse al <a href=\"https:\/\/e-lexia.com\/diccionario-tic\/blog\/\" rel=\"noopener\" target=\"_blank\">blog<\/a> desde aplicativos para m\u00f3viles; permitir los <em>trackbacks<\/em> y <em>pingbacks<\/em>, y algunas funciones propias de la extensi\u00f3n \u00abJetpack\u00bb.<\/p>\n<p>Esta opci\u00f3n tecnol\u00f3gica tuvo auge en la d\u00e9cada de 1990, cuando la velocidad de conexi\u00f3n entre cliente y servidor era lenta. Con XML-RPC, el usuario ten\u00eda la opci\u00f3n de producir el contenido en un gestor fuera de l\u00ednea y enviarlo cuando estuviese listo. Esto garantizaba la disponibilidad e integridad de los datos.<\/p>\n<p>Sin embargo, el panorama de hoy es diferente: las conexi\u00f3n son de alta velocidad y estabilidad. Adem\u00e1s, existen otros protocolos que permiten la conexi\u00f3n entre dispositivos y sistemas de informaci\u00f3n. Por cierto, WordPress est\u00e1 trabajando en una API que mejorar\u00e1 esta caracter\u00edstica.<\/p>\n<h2>\u00bfD\u00f3nde est\u00e1 el error del XML-RPC?<\/h2>\n<p>La debilidad de esta tecnolog\u00eda se ubica en dos lugares.<\/p>\n<p>La primera est\u00e1 relacionada con la \u00abfuerza bruta\u00bb. As\u00ed, un ciberdelincuente puede utilizar el archivo <code>xmlrpc.php<\/code> como una \u00abpuerta de acceso\u00bb para ingresar al sistema. A trav\u00e9s <em>scripts<\/em>, es posible generar miles de usuarios y contrase\u00f1as, en un intento por dar con el acceso.<\/p>\n<p>Lo anterior se facilita cuando el nombre de usuario del superadministrador es \u00ab<em>admin<\/em>\u00ab, \u00ab<em>administrator<\/em>\u00ab, \u00ab<em>administrador<\/em>\u00bb o similar. Ah\u00ed ya est\u00e1 un 50% de las credenciales logradas.<\/p>\n<p class=\"notas\">En \u00ab<a title=\"Consejos para Joomla y otros CMS\" href=\"https:\/\/e-lexia.com\/blog\/consejos-para-joomla-y-otros-cms\/\">Consejos para Joomla y otros CMS<\/a>\u00bb explico c\u00f3mo cambiar el nombre de usuario de WordPress.<\/p>\n<p>La segunda debilidad est\u00e1 en los ataques de Denegaci\u00f3n Distribuida de Servicio &#8211; DDoS. Este tipo de acci\u00f3n consiste en enviar varias solicitudes al sitio web, con el prop\u00f3sito de saturar su capacidad y provocar una falla.<\/p>\n<p><!-- ASESOR COMUNICATIVO --><\/p>\n<div class=\"destacado-asesor\">\n<div class=\"destacado-asesor__imagen\">\n    <a href=\"https:\/\/e-lexia.com\/contacto.html\"><br \/>\n      <img decoding=\"async\" src=\"https:\/\/e-lexia.com\/blog\/wp-content\/uploads\/2023\/01\/asesor-comunicativo-juancadotcom.png\" alt=\"Juan Carlos Morales S., asesor en comunicaci\u00f3n digital\"><br \/>\n    <\/a>\n   <\/div>\n<div class=\"destacado-asesor__desc\">\n<h2><a href=\"https:\/\/e-lexia.com\/contacto.html\">\u00bfNecesitas asesor\u00eda en comunicaci\u00f3n digital?<\/a><\/h2>\n<p>Dise\u00f1a y optimiza tus proyectos en comunicaci\u00f3n digital, entregando una mejor experiencia a tus usuarios y potenciando el valor de tu marca.<br \/>\n      <a class=\"cta-asesor\" href=\"https:\/\/e-lexia.com\/contacto.html\">Conversemos<\/a>\n     <\/p>\n<\/p><\/div>\n<\/div>\n<h2>\u00bfC\u00f3mo deshabilitar el archivo xmlrpc.php?<\/h2>\n<p>Hay dos caminos. Uno es a trav\u00e9s de extensiones y otro es modificar el archivo <code>.htaccess<\/code>.<\/p>\n<p>Las extensiones disponibles son:<\/p>\n<ul>\n<li><a href=\"https:\/\/es.wordpress.org\/plugins\/disable-xml-rpc\/\" target=\"_blank\" rel=\"noopener noreferrer\">Disable XML-RPC<\/a> (Philip Erb).<\/li>\n<li><a href=\"https:\/\/es.wordpress.org\/plugins\/stop-xml-rpc-attacks\/\" target=\"_blank\" rel=\"noopener noreferrer\">Stop XML-RPC Attacks<\/a> (Pascal Cescato).<\/li>\n<li><a href=\"https:\/\/es.wordpress.org\/plugins\/disable-xml-rpc-pingback\/\" target=\"_blank\" rel=\"noopener noreferrer\">Disable XML-RPC Pingback<\/a> (Samuel Aguilera).<\/li>\n<\/ul>\n<p>Existen otros <em>plugins<\/em> que realizan acciones similares. Algunos con mayor restricci\u00f3n, otros con algunas posibilidades de conexi\u00f3n y configuraci\u00f3n. La elecci\u00f3n depender\u00e1 de cada sitio web.<\/p>\n<p>Y la segunda opci\u00f3n, que es m\u00e1s estricta, se realiza directamente en servidor (sea desde cPanel o una conexi\u00f3n FTP).<\/p>\n<p>Aqu\u00ed se busca bloquear cualquier solicitud entrante desde <code>xmlrpc.php<\/code> e impedir su paso al sistema WordPress. Es una opci\u00f3n segura, pero que -de implementarse- requiere un seguimiento al sitio web para verificar la disponibilidad de todos los servicios.<\/p>\n<p>Lo que se debe hacer es ubicar el archivo <code>.htaccess<\/code> en el directorio principal y anexar la siguiente l\u00ednea de c\u00f3digo:<\/p>\n<pre># Block WordPress xmlrpc.php requests\r\n&lt;files xmlrpc.php&gt;\r\norder deny,allow\r\ndeny from all\r\nallow from xxx.xxx.xxx.xxx\r\n&lt;\/files&gt;\r\n<\/pre>\n<p>En la quinta l\u00ednea, <code>allow from xxx.xxx.xxx.xxx<\/code> puede escribirse una direcci\u00f3n IP a la que se permita el acceso v\u00eda XML-RPC. En caso que no exista, debe eliminarse.<\/p>\n<h2>A modo de cierre<\/h2>\n<p>La tecnolog\u00eda XML-RPC fue necesaria en su momento. Sin embargo, con el paso del tiempo, la misma evidenci\u00f3 sus debilidades y ahora es preciso hacerla a un lado.<\/p>\n<p>Afortunadamente, para el caso de WordPress, se est\u00e1 trabajando en una API que mejorar\u00e1 la sincronizaci\u00f3n entre dispositivos y el <em>core<\/em>, lo que ampliar\u00e1 las posibilidades, tanto para autores como para las extensiones.<\/p>\n<p>Por lo pronto, recomiendo deshabilitar el archivo <code>xmlrpc.php<\/code>, sea con un <em>plugin<\/em> o directamente en el <code>.htaccess<\/code>, haciendo claridad en identificar c\u00f3mo funciona el sitio en adelante, pues es posible que algunos servicios presenten inconvenientes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En los \u00faltimos meses he identificado casi un centenar de intentos de acceso no autorizado a mi blog (que est\u00e1 soportado en WordPress). Afortunadamente, gracias a las medidas de seguridad que he implementado, las solicitudes solo han sido eso: intentos. Revisando a detalle el registro, he descubierto que los ataques&hellip;<\/p>\n","protected":false},"author":1,"featured_media":1560,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[42,26],"class_list":["post-2006","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-produccion-web","tag-ciberseguridad","tag-wordpress","has-post-thumbnail-archive"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/e-lexia.com\/blog\/wp-json\/wp\/v2\/posts\/2006","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/e-lexia.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/e-lexia.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/e-lexia.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/e-lexia.com\/blog\/wp-json\/wp\/v2\/comments?post=2006"}],"version-history":[{"count":0,"href":"https:\/\/e-lexia.com\/blog\/wp-json\/wp\/v2\/posts\/2006\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/e-lexia.com\/blog\/wp-json\/wp\/v2\/media\/1560"}],"wp:attachment":[{"href":"https:\/\/e-lexia.com\/blog\/wp-json\/wp\/v2\/media?parent=2006"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/e-lexia.com\/blog\/wp-json\/wp\/v2\/categories?post=2006"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/e-lexia.com\/blog\/wp-json\/wp\/v2\/tags?post=2006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}